SlideShare a Scribd company logo
Integrate Flink with Kubernetes
natively
Yang Wang
Software Engineer @ Alibaba
Agenda
● Kubernetes introduction
● Evolution of Flink on Kubernetes
● Deep dive into the technicals
● Demo
● Production optimizations
Agenda
● Kubernetes introduction
● Evolution of Flink on Kubernetes
● Deep dive into the technicals
● Demo
● Production optimizations
What is Kubernetes?
Kubernetes (K8s) is an open-source system for automating deployment, scaling,
and management of containerized applications.
• Resource management
• Container orchestration
• Operation automation
• Cloud native
2000 2006
2011
2013 20172015
2018
2014
Kubernetes Architecture
Kubernetes Master
API Server
Scheduler
ETCD
Controllers
Node1
Kube proxyPlugins
Kubelet Docker
Pod
Pod
Pod
Container
Container
Node 2
Docker Registry
API
UI
DashBoard
CLI
kubectl
• ConfigMap is a dictionary of configuration settings. This dictionary consists of
key-value pairs of strings.
• Service is an abstract way to expose an application running on a set of Pods
as a network service.
• Pod, smallest deployable unit, consist of one or more containers.
• Deployment is a higher-level abstraction to manage a set of identical pods.
Kubernetes Concepts
More and more workloads run on Kubernetes
Com puting
ECS, EBM, GPU, FPGA, ECI
Network
VPC, ENI, RDMA, SLB, DNS
Public Cloud Edge Computing Private Cloud
Storage
EBS, NAS, CPFS, OSS
Kubernetes (EKS @ Amazon, ACK @ Alibaba Cloud, GKE @ Google, etc.)
Web/mobile applications
 Stateless
 Idempotent
 Horizontal scalable
Kafka
Elastic
Search
Tensor
Flow
Spark FlinkRedismysql
Agenda
● Kubernetes introduction
● Evolution of Flink on Kubernetes
● Deep dive into the technicals
● Demo
● Production optimizations
• Container environment, easy to setup, cleanup, reproduce
• Multiple tenants, better resource/network isolation, security
• Mixed workloads, running beside with online webservices, machine learning,
search engine, etc. to get better resource utilization
• Leverage the rich Kubernetes ecosystem, e.g. logging, monitoring, etc.
Why Flink on Kubernetes?
How to work together?+
Standalone session on Kubernetes
Flink Master Deployment
2
7
3
65
2
4
4
Kubectl
K8s Master
Dispatcher K8sResMngr
JobMaster
Deployment
ConfigMap
TaskManager
TaskManager
SVC
1
2
8
Flink Client
2
TaskManager
Deployment
• Standalone Flink cluster
• No efforts to change Flink
• Static resource
Standalone perjob on Kubernetes
• User jar and dependencies are built in the image
• Start a dedicated Flink cluster for each job
• One step submission
• User main run in the cluster
Standalone
JobCluster
EntryPoint
Dispatcher
ResourceManager
JobMaster
Retrieve JobGraph
from classpath Recover Job
Helm is the first application package manager running atop Kubernetes.
Helm chart
Flink Kubernetes Operator
Kubernetes Operator
• Easy to use
• Multiple Flink clusters management
• Application whole lifecycle management
- Restart, upgrade
• Each Flink application runs a single job
• Picture from https://github.com/lyft/flinkk8soperator
• lyft/flinkk8soperator
• GoogleCloudPlatform/flink-on-k8s-operator
• Flink is not aware of Kubernetes cluster
• Static resource allocation
• Users require some upfront knowledge about containers, operators and environment-
specific tools like “kubectl”
• Not convenient for batch job and multiple jobs in session
Now it’s time for native integration. We are NOT going to
• Replace standalone on K8s
• Replace flink-k8s-operator
Current limitation
Agenda
● Kubernetes introduction
● Evolution of Flink on Kubernetes
● Deep dive into the technicals
● Demo
● Production optimizations
What does native mean?
• Self contained
- Embedded K8s client inside
- Do not need external tools to start/stop Flink cluster
• Flink client natively contact to Kubernetes API server to create JobManager
• Flink ResourceManager natively contact to Kubernetes to create
TaskManager Pod on demand
- Similar to YARN, Mesos integration
Native Kubernetes session
Flink Master Deployment
2
9
8
54
7
33
Flink Client
K8s Master
Dispatcher K8sResMngr
JobMaster
Pod
ConfigMap
TaskManager
Pod
TaskManager
SVC
K8s Client
1
2
10
Flink
DashBoard
Docker RegistryDistributedStorage(HDFS, S3)
2
6
Native Kubernetes perjob
Flink Master Deployment
2
9
8
5
4
7
Flink Client
K8s Master
Dispatcher K8sResMngr
JobMaster
Pod
ConfigMap
TaskManager
Pod
TaskManager
SVC
K8s Client
1
2
10
Flink
DashBoard
Docker RegistryDistributedStorage(HDFS, S3)
2
6
Cluster
Entrypoint
3
3
Session VS Perjob
• Where the user main code is executed?
- Session: Client
- Perjob: Cluster
• How the job graph and user jars are distributed?
- Session: Upload via rest client and localized by Flink distributed cache
- Perjob: Built-in the image or downloaded by init container
• Isolation between different jobs
• Cluster lifecycle
• Session: Manually start stop
• Perjob: Bound to the only one job
Let’s have a taste.
Demo: native Kubernetes session and perjob cluster
Agenda
● Kubernetes introduction
● Evolution of Flink on Kubernetes
● Deep dive into the technicals
● Demo
● Production optimizations
Native Kubernetes high availability
Job Manager
(Leader)
Lock for contending
leader
(ConfigMap)
Leader RPC address
(ConfigMap)
Kubernetes API Server
Task Manager
retrieve and watch
Job Statuses
(ConfigMap)
Job Graph Meta
(ConfigMap)
Checkpoint Meta
(ConfigMap)
Job Graphs Checkpoints
Task Manager
Job Manager
(Standby)
Job Manager
(Standby)
...
...
filereferences
Deployment
Pod
High availability
• No external dependency
• Multiple JobManager
• Fast recovery
• Session and per-job
DistributedStorage(HDFS, S3, OSS)
Log and metrics
Kubernetes Pod
Flink TaskManager
Metrics
Resporter
Shared Volume
Sidecar Container(fluentd, etc.)
Promethus
HDFS/S3/ES
Log4j2
Appender
• Log4j2 Appender
• Sidecar Container
• DaemonSet
• Push gateway
• Multiple replica
Logging collector
Metrics collector
Network
Network plugin
• Flannel
• Host
• Cloud CNI plugin
- AWS
- Azure
- Alibaba Cloud
- Google Cloud
- …
● Kubernetes Session
- FLINK-9953
- Released in 1.10
● Kubernetes per-job
- FLINK-10934
- In progress, planned in 1.11
● Native high availability
- FLINK-12884
- Internal implementation, will
contribute to community soon
Current State
● Advanced features
- FLINK-14460
- All have been planned in 1.11
- Label, annotation, node-selector
- Toleration
- Sidecar container
- Init container
- Pod template
- …
Thanks and question please!

More Related Content

PDF
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
PDF
The MySQL Query Optimizer Explained Through Optimizer Trace
PDF
Understanding Query Plans and Spark UIs
PPTX
Exactly-Once Financial Data Processing at Scale with Flink and Pinot
PDF
Tiered Compilation in Hotspot JVM
PDF
Incremental View Maintenance with Coral, DBT, and Iceberg
PPTX
Using the New Apache Flink Kubernetes Operator in a Production Deployment
PDF
Deep Dive into Stateful Stream Processing in Structured Streaming with Tathag...
Dynamically Scaling Data Streams across Multiple Kafka Clusters with Zero Fli...
The MySQL Query Optimizer Explained Through Optimizer Trace
Understanding Query Plans and Spark UIs
Exactly-Once Financial Data Processing at Scale with Flink and Pinot
Tiered Compilation in Hotspot JVM
Incremental View Maintenance with Coral, DBT, and Iceberg
Using the New Apache Flink Kubernetes Operator in a Production Deployment
Deep Dive into Stateful Stream Processing in Structured Streaming with Tathag...

What's hot (20)

PDF
Apache Spark Core—Deep Dive—Proper Optimization
PDF
Connection Pooling in PostgreSQL using pgbouncer
PDF
아파치 카프카_애플리케이션 프로그래밍 with 자바_202204.pdf
PDF
Magnet Shuffle Service: Push-based Shuffle at LinkedIn
PPTX
PostGreSQL Performance Tuning
PPTX
Dynamic Rule-based Real-time Market Data Alerts
PPTX
Evening out the uneven: dealing with skew in Flink
PDF
MyRocks Deep Dive
PDF
ClickHouse Intro
PDF
Bucketing 2.0: Improve Spark SQL Performance by Removing Shuffle
PDF
Tame the small files problem and optimize data layout for streaming ingestion...
PDF
Top 5 mistakes when writing Spark applications
PDF
Spark shuffle introduction
PDF
Fine Tuning and Enhancing Performance of Apache Spark Jobs
PDF
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
PDF
YOW2020 Linux Systems Performance
PPTX
Modern Linux Tracing Landscape
PDF
InfluxDB IOx Tech Talks: Intro to the InfluxDB IOx Read Buffer - A Read-Optim...
PDF
Building large scale transactional data lake using apache hudi
PDF
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
Apache Spark Core—Deep Dive—Proper Optimization
Connection Pooling in PostgreSQL using pgbouncer
아파치 카프카_애플리케이션 프로그래밍 with 자바_202204.pdf
Magnet Shuffle Service: Push-based Shuffle at LinkedIn
PostGreSQL Performance Tuning
Dynamic Rule-based Real-time Market Data Alerts
Evening out the uneven: dealing with skew in Flink
MyRocks Deep Dive
ClickHouse Intro
Bucketing 2.0: Improve Spark SQL Performance by Removing Shuffle
Tame the small files problem and optimize data layout for streaming ingestion...
Top 5 mistakes when writing Spark applications
Spark shuffle introduction
Fine Tuning and Enhancing Performance of Apache Spark Jobs
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
YOW2020 Linux Systems Performance
Modern Linux Tracing Landscape
InfluxDB IOx Tech Talks: Intro to the InfluxDB IOx Read Buffer - A Read-Optim...
Building large scale transactional data lake using apache hudi
InfluxDB IOx Tech Talks: Query Engine Design and the Rust-Based DataFusion in...
Ad

Similar to Virtual Flink Forward 2020: Integrate Flink with Kubernetes natively - Yang Wang (20)

PDF
Flink Forward San Francisco 2019: Managing Flink on Kubernetes - FlinkK8sOper...
PDF
Kubermatic.pdf
PDF
Kubermatic CNCF Webinar - start.kubermatic.pdf
PPTX
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
PDF
18th Athens Big Data Meetup - 2nd Talk - Run Spark and Flink Jobs on Kubernetes
PDF
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
PDF
Flink on Kubernetes operator
PPTX
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
PPTX
Ultimate Guide to Microservice Architecture on Kubernetes
PPTX
Adf with docker
PDF
Kubernetes and Cloud Native Meetup - March, 2019
PDF
Introduction to Kubernetes Workshop
PPTX
Container orchestration and microservices world
PDF
How to build a tool for operating Flink on Kubernetes
PPTX
Kubernetes: від знайомства до використання у CI/CD
PDF
Introduction to kubernetes
PDF
AKS: k8s e azure
PPTX
Kubernetes Overview 101.pptxKubernetes Overview 101.pptx
PDF
Get you Java application ready for Kubernetes !
PPTX
Aks: k8s e azure
Flink Forward San Francisco 2019: Managing Flink on Kubernetes - FlinkK8sOper...
Kubermatic.pdf
Kubermatic CNCF Webinar - start.kubermatic.pdf
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
18th Athens Big Data Meetup - 2nd Talk - Run Spark and Flink Jobs on Kubernetes
DevOps Days Boston 2017: Real-world Kubernetes for DevOps
Flink on Kubernetes operator
Develop and deploy Kubernetes applications with Docker - IBM Index 2018
Ultimate Guide to Microservice Architecture on Kubernetes
Adf with docker
Kubernetes and Cloud Native Meetup - March, 2019
Introduction to Kubernetes Workshop
Container orchestration and microservices world
How to build a tool for operating Flink on Kubernetes
Kubernetes: від знайомства до використання у CI/CD
Introduction to kubernetes
AKS: k8s e azure
Kubernetes Overview 101.pptxKubernetes Overview 101.pptx
Get you Java application ready for Kubernetes !
Aks: k8s e azure
Ad

More from Flink Forward (20)

PDF
Building a fully managed stream processing platform on Flink at scale for Lin...
PPTX
“Alexa, be quiet!”: End-to-end near-real time model building and evaluation i...
PDF
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
PDF
Introducing the Apache Flink Kubernetes Operator
PPTX
Autoscaling Flink with Reactive Mode
PPTX
One sink to rule them all: Introducing the new Async Sink
PPTX
Tuning Apache Kafka Connectors for Flink.pptx
PDF
Flink powered stream processing platform at Pinterest
PPTX
Apache Flink in the Cloud-Native Era
PPTX
Where is my bottleneck? Performance troubleshooting in Flink
PPTX
The Current State of Table API in 2022
PDF
Flink SQL on Pulsar made easy
PPTX
Processing Semantically-Ordered Streams in Financial Services
PDF
Batch Processing at Scale with Flink & Iceberg
PPTX
Welcome to the Flink Community!
PPTX
Practical learnings from running thousands of Flink jobs
PPTX
Extending Flink SQL for stream processing use cases
PPTX
The top 3 challenges running multi-tenant Flink at scale
PPTX
Using Queryable State for Fun and Profit
PDF
Changelog Stream Processing with Apache Flink
Building a fully managed stream processing platform on Flink at scale for Lin...
“Alexa, be quiet!”: End-to-end near-real time model building and evaluation i...
Introducing BinarySortedMultiMap - A new Flink state primitive to boost your ...
Introducing the Apache Flink Kubernetes Operator
Autoscaling Flink with Reactive Mode
One sink to rule them all: Introducing the new Async Sink
Tuning Apache Kafka Connectors for Flink.pptx
Flink powered stream processing platform at Pinterest
Apache Flink in the Cloud-Native Era
Where is my bottleneck? Performance troubleshooting in Flink
The Current State of Table API in 2022
Flink SQL on Pulsar made easy
Processing Semantically-Ordered Streams in Financial Services
Batch Processing at Scale with Flink & Iceberg
Welcome to the Flink Community!
Practical learnings from running thousands of Flink jobs
Extending Flink SQL for stream processing use cases
The top 3 challenges running multi-tenant Flink at scale
Using Queryable State for Fun and Profit
Changelog Stream Processing with Apache Flink

Recently uploaded (20)

PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
Cloud computing and distributed systems.
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Encapsulation theory and applications.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Big Data Technologies - Introduction.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
20250228 LYD VKU AI Blended-Learning.pptx
sap open course for s4hana steps from ECC to s4
Empathic Computing: Creating Shared Understanding
Understanding_Digital_Forensics_Presentation.pptx
Cloud computing and distributed systems.
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Review of recent advances in non-invasive hemoglobin estimation
Encapsulation theory and applications.pdf
Network Security Unit 5.pdf for BCA BBA.
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Big Data Technologies - Introduction.pptx
The AUB Centre for AI in Media Proposal.docx
Chapter 3 Spatial Domain Image Processing.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Spectral efficient network and resource selection model in 5G networks
Advanced methodologies resolving dimensionality complications for autism neur...
Dropbox Q2 2025 Financial Results & Investor Presentation
Reach Out and Touch Someone: Haptics and Empathic Computing
Per capita expenditure prediction using model stacking based on satellite ima...

Virtual Flink Forward 2020: Integrate Flink with Kubernetes natively - Yang Wang

  • 1. Integrate Flink with Kubernetes natively Yang Wang Software Engineer @ Alibaba
  • 2. Agenda ● Kubernetes introduction ● Evolution of Flink on Kubernetes ● Deep dive into the technicals ● Demo ● Production optimizations
  • 3. Agenda ● Kubernetes introduction ● Evolution of Flink on Kubernetes ● Deep dive into the technicals ● Demo ● Production optimizations
  • 4. What is Kubernetes? Kubernetes (K8s) is an open-source system for automating deployment, scaling, and management of containerized applications. • Resource management • Container orchestration • Operation automation • Cloud native 2000 2006 2011 2013 20172015 2018 2014
  • 5. Kubernetes Architecture Kubernetes Master API Server Scheduler ETCD Controllers Node1 Kube proxyPlugins Kubelet Docker Pod Pod Pod Container Container Node 2 Docker Registry API UI DashBoard CLI kubectl
  • 6. • ConfigMap is a dictionary of configuration settings. This dictionary consists of key-value pairs of strings. • Service is an abstract way to expose an application running on a set of Pods as a network service. • Pod, smallest deployable unit, consist of one or more containers. • Deployment is a higher-level abstraction to manage a set of identical pods. Kubernetes Concepts
  • 7. More and more workloads run on Kubernetes Com puting ECS, EBM, GPU, FPGA, ECI Network VPC, ENI, RDMA, SLB, DNS Public Cloud Edge Computing Private Cloud Storage EBS, NAS, CPFS, OSS Kubernetes (EKS @ Amazon, ACK @ Alibaba Cloud, GKE @ Google, etc.) Web/mobile applications  Stateless  Idempotent  Horizontal scalable Kafka Elastic Search Tensor Flow Spark FlinkRedismysql
  • 8. Agenda ● Kubernetes introduction ● Evolution of Flink on Kubernetes ● Deep dive into the technicals ● Demo ● Production optimizations
  • 9. • Container environment, easy to setup, cleanup, reproduce • Multiple tenants, better resource/network isolation, security • Mixed workloads, running beside with online webservices, machine learning, search engine, etc. to get better resource utilization • Leverage the rich Kubernetes ecosystem, e.g. logging, monitoring, etc. Why Flink on Kubernetes? How to work together?+
  • 10. Standalone session on Kubernetes Flink Master Deployment 2 7 3 65 2 4 4 Kubectl K8s Master Dispatcher K8sResMngr JobMaster Deployment ConfigMap TaskManager TaskManager SVC 1 2 8 Flink Client 2 TaskManager Deployment • Standalone Flink cluster • No efforts to change Flink • Static resource
  • 11. Standalone perjob on Kubernetes • User jar and dependencies are built in the image • Start a dedicated Flink cluster for each job • One step submission • User main run in the cluster Standalone JobCluster EntryPoint Dispatcher ResourceManager JobMaster Retrieve JobGraph from classpath Recover Job
  • 12. Helm is the first application package manager running atop Kubernetes. Helm chart
  • 13. Flink Kubernetes Operator Kubernetes Operator • Easy to use • Multiple Flink clusters management • Application whole lifecycle management - Restart, upgrade • Each Flink application runs a single job • Picture from https://github.com/lyft/flinkk8soperator • lyft/flinkk8soperator • GoogleCloudPlatform/flink-on-k8s-operator
  • 14. • Flink is not aware of Kubernetes cluster • Static resource allocation • Users require some upfront knowledge about containers, operators and environment- specific tools like “kubectl” • Not convenient for batch job and multiple jobs in session Now it’s time for native integration. We are NOT going to • Replace standalone on K8s • Replace flink-k8s-operator Current limitation
  • 15. Agenda ● Kubernetes introduction ● Evolution of Flink on Kubernetes ● Deep dive into the technicals ● Demo ● Production optimizations
  • 16. What does native mean? • Self contained - Embedded K8s client inside - Do not need external tools to start/stop Flink cluster • Flink client natively contact to Kubernetes API server to create JobManager • Flink ResourceManager natively contact to Kubernetes to create TaskManager Pod on demand - Similar to YARN, Mesos integration
  • 17. Native Kubernetes session Flink Master Deployment 2 9 8 54 7 33 Flink Client K8s Master Dispatcher K8sResMngr JobMaster Pod ConfigMap TaskManager Pod TaskManager SVC K8s Client 1 2 10 Flink DashBoard Docker RegistryDistributedStorage(HDFS, S3) 2 6
  • 18. Native Kubernetes perjob Flink Master Deployment 2 9 8 5 4 7 Flink Client K8s Master Dispatcher K8sResMngr JobMaster Pod ConfigMap TaskManager Pod TaskManager SVC K8s Client 1 2 10 Flink DashBoard Docker RegistryDistributedStorage(HDFS, S3) 2 6 Cluster Entrypoint 3 3
  • 19. Session VS Perjob • Where the user main code is executed? - Session: Client - Perjob: Cluster • How the job graph and user jars are distributed? - Session: Upload via rest client and localized by Flink distributed cache - Perjob: Built-in the image or downloaded by init container • Isolation between different jobs • Cluster lifecycle • Session: Manually start stop • Perjob: Bound to the only one job
  • 20. Let’s have a taste. Demo: native Kubernetes session and perjob cluster
  • 21. Agenda ● Kubernetes introduction ● Evolution of Flink on Kubernetes ● Deep dive into the technicals ● Demo ● Production optimizations
  • 22. Native Kubernetes high availability Job Manager (Leader) Lock for contending leader (ConfigMap) Leader RPC address (ConfigMap) Kubernetes API Server Task Manager retrieve and watch Job Statuses (ConfigMap) Job Graph Meta (ConfigMap) Checkpoint Meta (ConfigMap) Job Graphs Checkpoints Task Manager Job Manager (Standby) Job Manager (Standby) ... ... filereferences Deployment Pod High availability • No external dependency • Multiple JobManager • Fast recovery • Session and per-job DistributedStorage(HDFS, S3, OSS)
  • 23. Log and metrics Kubernetes Pod Flink TaskManager Metrics Resporter Shared Volume Sidecar Container(fluentd, etc.) Promethus HDFS/S3/ES Log4j2 Appender • Log4j2 Appender • Sidecar Container • DaemonSet • Push gateway • Multiple replica Logging collector Metrics collector
  • 24. Network Network plugin • Flannel • Host • Cloud CNI plugin - AWS - Azure - Alibaba Cloud - Google Cloud - …
  • 25. ● Kubernetes Session - FLINK-9953 - Released in 1.10 ● Kubernetes per-job - FLINK-10934 - In progress, planned in 1.11 ● Native high availability - FLINK-12884 - Internal implementation, will contribute to community soon Current State ● Advanced features - FLINK-14460 - All have been planned in 1.11 - Label, annotation, node-selector - Toleration - Sidecar container - Init container - Pod template - …

Editor's Notes

  • #14: Operators extend Kubernetes functionality Operators systematize human knowledge as code
  • #25: Amazon EKS supports native VPC networking via the Amazon VPC CNI plugin for Kubernetes. Using this CNI plugin allows Kubernetes pods to have the same IP address inside the pod as they do on the VPC network. This CNI plugin is an open-source project that is maintained on GitHub https://docs.aws.amazon.com/eks/latest/userguide/pod-networking.html Elastic network interface and secondary IP address limitations by Amazon EC2 instance types are applicable. In general, larger instances can support more IP addresses. For more information, see IP Addresses Per Network Interface Per Instance Type in the Amazon EC2 User Guide for Linux Instances.