SlideShare a Scribd company logo
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Kubernetes Networking in Amazon EKS
C O N 4 1 2
Liwen Wu
Software Engineer
Amazon Web Services
Sri Saran Balaji Vellore Rajakumar
Software Engineer
Amazon Web Services
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Agenda
• Overview of Amazon EKS Architecture
• How Kubernetes networking abstractions are implemented in
Amazon Elastic Container Service for Kubernetes (Amazon EKS)
• Pod-to-pod communication (CNI)
• Pod-to-service communication (Elastic Load Balancing, Amazon Network Load
Balancer [NLB], Kube-Proxy/IPTables)
• External-to service-communication (ingress ALB)
• How pods communicate with Kubernetes masters in Amazon EKS
• Cross-account ENIs
• Kubectl logs/execs
• Pods read/write/watch Kubernetes API servers objects
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Overview of Amazon EKS Architecture
W o r k e r
V P C
Availability Zone 2
Kubelet
Kubelet
Availability Zone 1
M a s t e r
V P C
APIServer
Availability Zone 1
Availability Zone 2
Etcd
Etcd
APIServer
EKS-Owned
ENI
EKS-Owned
ENI
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
amazon-vpc-cni-k8s Container Networking
Interface(CNI) Tenets
• Integrates Amazon Virtual Private Cloud networking into Kubernetes
• Should use Amazon VPC networking natively to forward pod-to-pod traffic
• Use AWS routable IP addresses for Pods
• Pods is 1st class citizen in Amazon VPC networking
• There is NO on-ramp/off-ramp for
• Pod to AWS services (e.g. Amazon S3, Amazon DynamoDB) communication
• Pod to on-premises communication (e.g. VPN/direct-connect)
• Should make sure Pods have fast startup time such that: Pods/Containers MUST be able to send
and receive traffic in the matter of seconds (compare to minutes for VM)
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
VPC network
Amazon EC2
PodPod Pod Pod Pod
CNI networking internals - DataPlane
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Life of a packet: pod1-to-pod2, inside node
EC2
Pod1
eth0
Pod2
eth0
ENI
root
veth-pod1 veth-pod2
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Life of a packet: pod1-to-pod2, inside node
EC2
Pod1
eth0
Pod2
eth0
ENI
root
veth-pod1 veth-pod2
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Life of a packet: pod1-to-pod2, inside node
EC2
Pod1
eth0
Pod2
eth0
ENI
root
veth-pod1 veth-pod2
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Life of a packet: pod1-to-pod2, inside node
EC2
Pod1
eth0
Pod2
eth0
ENI
root
veth-pod1 veth-pod2
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Life of a packet: pod1-to-pod2, inside node
EC2
Pod1
eth0
Pod2
eth0
ENI
root
veth-pod1 veth-pod2
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Life of a packet: pod1-to-pod3, across nodes
ENI
EC2
node1
Pod1
eth0
Pod2
eth0
root
veth-pod1 veth-pod2
EC2
node2
Pod3
eth0
Pod4
eth0
root
veth-pod3 veth-pod4
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Life of a packet: pod1-to-pod3, across nodes
ENI
EC2
node1
Pod1
eth0
Pod2
eth0
root
veth-pod1 veth-pod2
EC2
node2
Pod3
eth0
Pod4
eth0
root
veth-pod3 veth-pod4
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Life of a packet: pod1-to-pod3, across nodes
ENI
EC2
node1
Pod1
eth0
Pod2
eth0
root
veth-pod1 veth-pod2
EC2
node2
Pod3
eth0
Pod4
eth0
root
veth-pod3 veth-pod4
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Life of a packet: pod1-to-pod3, across nodes
ENI
EC2
node1
Pod1
eth0
Pod2
eth0
root
veth-pod1 veth-pod2
EC2
node2
Pod3
eth0
Pod4
eth0
root
veth-pod3 veth-pod4
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Life of a packet: pod1-to-pod3, across nodes
ENI
EC2
node1
Pod1
eth0
Pod2
eth0
root
veth-pod1 veth-pod2
EC2
node2
Pod3
eth0
Pod4
eth0
root
veth-pod3 veth-pod4
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Life of a packet: pod1-to-pod3, across nodes
ENI
EC2
node1
Pod1
eth0
Pod2
eth0
root
veth-pod1 veth-pod2
EC2
node2
Pod3
eth0
Pod4
eth0
root
veth-pod3 veth-pod4
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Life of a packet: pod1-to-pod3, across nodes
ENI
EC2
node1
Pod1
eth0
Pod2
eth0
root
veth-pod1 veth-pod2
EC2
node2
Pod3
eth0
Pod4
eth0
root
veth-pod3 veth-pod4
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Life of a packet: pod1-to-pod3, across nodes
ENI
EC2
node1
Pod1
eth0
Pod2
eth0
root
veth-pod1 veth-pod2
EC2
node2
Pod3
eth0
Pod4
eth0
root
veth-pod3 veth-pod4
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
CNI networking internals - Control plane
• Kubelet invokes CNI add or delete commands for pods
• CNI request secondary IPs from ipamD and setups networking stack for
pod
• For fast pods startup time, ipamD creates a secondary IP warm pool
with one more ENI and its IP address
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
CNI networking internals - Control plane
Amazon EC2
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Inside pod – IP address
# ip addr show
1; lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
3: eth0@if231: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
state UP
link/ether 56:41:95:26:17:41 brd ff:ff:ff:ff:ff:ff
inet 10.0.97.30/32 brd 10.0.97.226 scope global eth0 <<<<<<< ENI's secondary IP
address
valid_lft forever preferred_lft forever
inet6 fe80::5441:95ff:fe26:1741/64 scope link
valid_lft forever preferred_lft forever
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Inside pod, routes, static ARP
# ip route show
default via 169.254.1.1 dev eth0
169.254.1.1 dev eth0
# arp -a
? (169.254.1.1) at 2a:09:74:cd:c4:62 [ether] PERM on eth0
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
On host side
# ip route show
default via 10.0.96.1 dev eth0
10.0.96.0/19 dev eth0 proto kernel scope link src 10.0.104.183
10.0.97.30 dev aws8db0408c9a8 scope link <------------------------Pod's IP
10.0.97.159 dev awsbcd978401eb scope link
10.0.97.226 dev awsc2f87dc4cdd scope link
10.0.102.98 dev aws4914061689b scope link
...
# ip route show table eni-1
default via 10.0.96.1 dev eth1
10.0.96.1 dev eth1 scope link
# ip rule list
0: from all lookup local
512: from all to 10.0.97.30 lookup main <---------- to Pod's traffic
1025: not from all to 10.0.0.0/16 lookup main
1536: from 10.0.97.30 lookup eni-1 <-------------- from Pod's traffic
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Kubernetes service
• A logical set of pods
• A policy by which to access them
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Kubernetes service
Service
PodPodPod
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Services in Kubernetes
[ec2-user@ip-172-31-9-36 ~]$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 2d
[ec2-user@ip-172-31-9-36 ~]$ kubectl describe svc
Name: kubernetes
Namespace: default
Labels: component=apiserver
provider=kubernetes
Annotations: <none>
Selector: <none>
Type: ClusterIP
IP: 10.100.0.1
Port: https 443/TCP
TargetPort: 443/TCP
Endpoints: 192.168.119.102:443,192.168.154.135:443
Session Affinity: ClientIP
Events: <none>
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
IPtables (pod to services)
kubectl describe svc
Name: kubernetes
Namespace: default
Labels: component=apiserver
provider=kubernetes
Annotations: <none>
Selector: <none>
Type: ClusterIP
IP: 10.100.0.1
Port: https 443/TCP
TargetPort: 443/TCP
Endpoints: 192.168.131.23:443,192.168.85.200:443  Endpoint IPs
Session Affinity: ClientIP
Events: <none>
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Implement Kubernetes service by
Kube-proxy, Linux IPtables
• Kube-proxy
• Watch services, end-points
• Program Linux IPtables
• Pod to service
• IPtable, pre-routing phase
• Pod  service IP  IPtables  one of end-point IPs
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Implement Kubernetes service by
Kube-proxy, Linux IPtables
Amazon EC2
Pod
Pod
Pod
Kube-proxy
API Server
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
IPtables (pod to services)
*nat
:PREROUTING ACCEPT [1:60]
-A PREROUTING -m comment --comment "kubernetes service portals" -j KUBE-SERVICES // 1
-A OUTPUT -m comment --comment "kubernetes service portals" -j KUBE-SERVICES
-A POSTROUTING -m comment --comment "kubernetes postrouting rules" -j KUBE-POSTROUTING
-A KUBE-POSTROUTING -m comment --comment "kubernetes service traffic requiring SNAT" -
m mark --mark 0x4000/0x4000 -j MASQUERADE
-A KUBE-SEP-SIZTKALRBUTOHR3N -s 192.168.131.23/32 -m comment --comment
"default/kubernetes:https" -j KUBE-MARK-MASQ
-A KUBE-SEP-SIZTKALRBUTOHR3N -p tcp -m comment --comment "default/kubernetes:https" -m
recent --set --name KUBE-SEP-SIZTKALRBUTOHR3N --mask 255.255.255.255 --rsource -m tcp
-j DNAT --to-destination 192.168.131.23:443 //4
-A KUBE-SEP-U7WSV5R4I437O3C7 -s 192.168.85.200/32 -m comment --comment
"default/kubernetes:https" -j KUBE-MARK-MASQ
-A KUBE-SEP-U7WSV5R4I437O3C7 -p tcp -m comment --comment "default/kubernetes:https" -m
recent --set --name KUBE-SEP-U7WSV5R4I437O3C7 --mask 255.255.255.255 --rsource -m tcp
-j DNAT --to-destination 192.168.85.200:443 //6
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
IPtables (Pod to Services)
-A KUBE-SERVICES -d 10.100.0.10/32 -p udp -m comment --comment "kube-system/kube-
dns:dns cluster IP" -m udp --dport 53 -j KUBE-SVC-TCOU7JCQXEZGVUNU
-A KUBE-SERVICES -d 10.100.0.10/32 -p tcp -m comment --comment "kube-system/kube-
dns:dns-tcp cluster IP" -m tcp --dport 53 -j KUBE-SVC-ERIFXISQEP7F7OF4
-A KUBE-SERVICES -d 10.100.0.1/32 -p tcp -m comment --comment
"default/kubernetes:https cluster IP" -m tcp --dport 443 -j KUBE-SVC-
NPX46M4PTMTKRN6Y // 2
-A KUBE-SVC-NPX46M4PTMTKRN6Y -m comment --comment "default/kubernetes:https" -m
recent --rcheck --seconds 10800 --reap --name KUBE-SEP-SIZTKALRBUTOHR3N --mask
255.255.255.255 --rsource -j KUBE-SEP-SIZTKALRBUTOHR3N //3
-A KUBE-SVC-NPX46M4PTMTKRN6Y -m comment --comment "default/kubernetes:https" -m
recent --rcheck --seconds 10800 --reap --name KUBE-SEP-U7WSV5R4I437O3C7 --mask
255.255.255.255 --rsource -j KUBE-SEP-U7WSV5R4I437O3C7 // 5
-A KUBE-SVC-NPX46M4PTMTKRN6Y -m comment --comment "default/kubernetes:https" -m
statistic --mode random --probability 0.50000000000 -j KUBE-SEP-SIZTKALRBUTOHR3N
-A KUBE-SVC-NPX46M4PTMTKRN6Y -m comment --comment "default/kubernetes:https" -j
KUBE-SEP-U7WSV5R4I437O3C7
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Kubernetes DNS Pod (kube-dns)
• Kubernetes schedules a DNS Pod (kube-dns) and Service on
the cluster
• Configures the Kubelets to tell individual containers to use
the DNS Service’s IP to resolve DNS names
• DNS Pod communicate with Kubernetes Service IP (e.g
10.100.0.1) and build map of Service Name and Service IP
[ec2-user@ip-172-31-9-36 ~]$ kubectl get pod kube-dns-fcd468cb-cbz8z -n kube-system
NAME READY STATUS RESTARTS AGE
kube-dns-fcd468cb-cbz8z 3/3 Running 0 5d
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Life of a packet: pod (kube-dns)-to-service
(Kubernetes service)
ENI
EC2
node1
Kube-dns
eth0
Pod2
eth0
root
veth-dns-pod veth-pod2
EKS-Owned ENI
192.168.119.102
EKS-Owned EN
192.168.154.135I
Customer VPC EKS VPC
10.100.0.1
APIServer
Availability Zone 1
APIServer
Availability Zone 2
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Life of a packet: pod (kube-dns)-to-service
(Kubernetes service)
ENI
EC2
node1
Kube-dns
eth0
Pod2
eth0
root
veth-dns-pod veth-pod2
EKS-Owned ENI
192.168.119.102
EKS-Owned EN
192.168.154.135I
Customer VPC EKS VPC
10.100.0.1
APIServer
Availability Zone 1
APIServer
Availability Zone 2
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Life of a packet: pod (kube-dns)-to-service
(Kubernetes service)
ENI
EC2
node1
Kube-dns
eth0
Pod2
eth0
root
veth-dns-pod veth-pod2
EKS-Owned ENI
192.168.119.102
EKS-Owned EN
192.168.154.135I
Customer VPC EKS VPC
10.100.0.1
APIServer
Availability Zone 1
APIServer
Availability Zone 2
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Life of a packet: pod (kube-dns)-to-service
(Kubernetes service)
ENI
EC2
node1
Kube-dns
eth0
Pod2
eth0
root
veth-dns-pod veth-pod2
EKS-Owned ENI
192.168.119.102
EKS-Owned EN
192.168.154.135
Customer VPC EKS VPC
APIServer
Availability Zone 1
APIServer
Availability Zone 2
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Life of a packet: pod (kube-dns)-to-service
(Kubernetes service)
ENI
EC2
node1
Kube-dns
eth0
Pod2
eth0
root
veth-dns-pod veth-pod2
EKS-Owned ENI
192.168.119.102
EKS-Owned EN
192.168.154.135I
Customer VPC EKS VPC
APIServer
Availability Zone 1
APIServer
Availability Zone 2
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Life of a packet: pod (kube-dns)-to-service
(Kubernetes service)
ENI
EC2
node1
Kube-dns
eth0
Pod2
eth0
root
veth-dns-pod veth-pod2
EKS-Owned ENI
192.168.119.102
EKS-Owned EN
192.168.154.135I
Customer VPC EKS VPC
APIServer
Availability Zone 1
APIServer
Availability Zone 2
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Life of a packet: pod (kube-dns)-to-service
(Kubernetes service)
ENI
EC2
node1
Kube-dns
eth0
Pod2
eth0
root
veth-dns-pod veth-pod2
EKS-Owned ENI
192.168.119.102
EKS-Owned EN
192.168.154.135I
Customer VPC EKS VPC
APIServer
Availability Zone 1
APIServer
Availability Zone 2
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Implement Kubernetes service by
Amazon Classic Load Balancer
apiVersion: v1
kind: Service
metadata:
name: nginx
namespace: default
annotations: {}
spec:
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Implement Kubernetes service by
Classic Load Balancer
Pod
Pod
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Implement Kubernetes service by
Amazon Network Load Balancer (NLB) (Linux IPtables-as-a-service for VPCS)
apiVersion: v1
kind: Service
metadata:
name: nginx
namespace: default
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
spec:
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Implement Kubernetes service by
Amazon Network Load Balancer (NLB)
Pod
Pod
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Kubernetes ingress
• A collection of rules
• Allow inbound connections to reach the cluster services
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Kubernetes ingress
Service (foo)
Pod Pod Pod
Service (bar)
Pod Pod Pod
Foo.example.com example.com/bar
ingress
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Ingress in Kubernetes
#apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: echoserver
namespace: echoserver
annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/subnets: subnet-0061ab916d8e0f34f
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: echoserver
servicePort: 80
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Ingress in Kubernetes
# kubectl describe ingress -n echoserver
Name: echoserver
Namespace: echoserver
Address: 23604d3e-echoserver-echose-2ad7-1066162608.us-west-
2.elb.amazonaws.com
Default backend: default-http-backend:80 (<none>)
Rules:
Host Path Backends
---- ---- --------
*
/ echoserver:80 (<none>)
Annotations:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/subnets: subnet-0061ab916d8e0f34f,subnet-
08dc85488dba37eda,
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Service reached through ingress in Kubernetes
# kubectl get service -n echoserver
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
echoserver ClusterIP 10.100.193.12 <none> 80/TCP 1d
# kubectl describe service echoserver -n echoserver
Name: echoserver
Namespace: echoserver
Selector: app=echoserver
Type: ClusterIP
IP: 10.100.193.12
Port: <unset> 80/TCP
TargetPort: 8080/TCP
Endpoints: 192.168.164.97:8080
Session Affinity: None
Events: <none>
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Implement Kubernetes ingress by
Amazon Application Load Balancer (ALB)
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Kubernetes cluster
Implement Kubernetes ingress by
L7 load balancers (for example, Envoy, Ngnix)
Service (bar)
Pod
Pod
Pod
Service (foo)
Pod
Pod
Pod
L7 Envoy, Ngnix
L7 Envoy, Ngnix
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Kubernetes Exec and Logs implementation
EKS VPCCustomer VPC
Worker Nodes
EKS-Owned
ENI
Kubernetes
API calls
Communication
across VPCs
Internet
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Troubleshooting Networking issues
• Misconfigured control plane
security group
• Control plane security group is assigned to
ENIs created in the worker node subnets.
• When launching worker nodes, control
plane security group is configured to receive
packets from worker nodes.
• if different control plane security group is
specified while creating worker nodes, pods
will not be able to communicate with
master
W o r k e r
V P C
Kubelet
ENI
Pods
Worker
Node
Worker Node
Security Group
Control Plane
Security Group
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Troubleshooting Networking issues
• Amazon VPC related issues
• Deleting subnets in your Amazon VPC
• Removing Ingress and Egress required for Master and Worker node
communication.
• Reaching ENI limits for an AWS Account.
• Exhausting IPs available in the control plane subnets.
• Incorrect permissions on the role could stop Amazon EKS from
managing Kubernetes clusters.
• Use Managed policy provided by Amazon EKS.
• Avoid attaching deny permissions on APIs required by Amazon EKS for
managing ENIs in your Amazon VPC.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Thank you!
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

More Related Content

What's hot

Kafka 101
Kafka 101Kafka 101
Kafka 101
Clement Demonchy
 
Intelligent Auto-scaling of Kafka Consumers with Workload Prediction | Ming S...
Intelligent Auto-scaling of Kafka Consumers with Workload Prediction | Ming S...Intelligent Auto-scaling of Kafka Consumers with Workload Prediction | Ming S...
Intelligent Auto-scaling of Kafka Consumers with Workload Prediction | Ming S...
HostedbyConfluent
 
AWS networking fundamentals
AWS networking fundamentalsAWS networking fundamentals
AWS networking fundamentals
Amazon Web Services
 
Amazon Virtual Private Cloud (VPC)
Amazon Virtual Private Cloud (VPC)Amazon Virtual Private Cloud (VPC)
Amazon Virtual Private Cloud (VPC)
Tejoy Vachhrajani
 
[NEW LAUNCH!] Introducing Amazon Managed Streaming for Kafka (Amazon MSK) (AN...
[NEW LAUNCH!] Introducing Amazon Managed Streaming for Kafka (Amazon MSK) (AN...[NEW LAUNCH!] Introducing Amazon Managed Streaming for Kafka (Amazon MSK) (AN...
[NEW LAUNCH!] Introducing Amazon Managed Streaming for Kafka (Amazon MSK) (AN...
Amazon Web Services
 
AWS Networking – Advanced Concepts and new capabilities | AWS Summit Tel Aviv...
AWS Networking – Advanced Concepts and new capabilities | AWS Summit Tel Aviv...AWS Networking – Advanced Concepts and new capabilities | AWS Summit Tel Aviv...
AWS Networking – Advanced Concepts and new capabilities | AWS Summit Tel Aviv...
Amazon Web Services
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
Jeff Holoman
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack Architecture
Mirantis
 
AWS VPC & Networking basic concepts
AWS VPC & Networking basic conceptsAWS VPC & Networking basic concepts
AWS VPC & Networking basic concepts
Abhinav Kumar
 
(DEV307) Introduction to Version 3 of the AWS SDK for Python (Boto) | AWS re:...
(DEV307) Introduction to Version 3 of the AWS SDK for Python (Boto) | AWS re:...(DEV307) Introduction to Version 3 of the AWS SDK for Python (Boto) | AWS re:...
(DEV307) Introduction to Version 3 of the AWS SDK for Python (Boto) | AWS re:...
Amazon Web Services
 
Kubernetes on AWS with Amazon EKS
Kubernetes on AWS with Amazon EKSKubernetes on AWS with Amazon EKS
Kubernetes on AWS with Amazon EKS
Amazon Web Services
 
Implementation &amp; Comparison Of Rdma Over Ethernet
Implementation &amp; Comparison Of Rdma Over EthernetImplementation &amp; Comparison Of Rdma Over Ethernet
Implementation &amp; Comparison Of Rdma Over Ethernet
James Wernicke
 
Elastic Load Balancing Deep Dive - AWS Online Tech Talk
Elastic  Load Balancing Deep Dive - AWS Online Tech TalkElastic  Load Balancing Deep Dive - AWS Online Tech Talk
Elastic Load Balancing Deep Dive - AWS Online Tech Talk
Amazon Web Services
 
Introducing AWS Elastic Beanstalk
Introducing AWS Elastic BeanstalkIntroducing AWS Elastic Beanstalk
Introducing AWS Elastic Beanstalk
Amazon Web Services
 
Apache Kafka in the Airline, Aviation and Travel Industry
Apache Kafka in the Airline, Aviation and Travel IndustryApache Kafka in the Airline, Aviation and Travel Industry
Apache Kafka in the Airline, Aviation and Travel Industry
Kai Wähner
 
Overview of kubernetes network functions
Overview of kubernetes network functionsOverview of kubernetes network functions
Overview of kubernetes network functions
HungWei Chiu
 
Amazon Aurora: Under the Hood
Amazon Aurora: Under the HoodAmazon Aurora: Under the Hood
Amazon Aurora: Under the Hood
Amazon Web Services
 
Amazon Elastic Fabric Adapter: Anatomy, Capabilities, and the Road Ahead
Amazon Elastic Fabric Adapter: Anatomy, Capabilities, and the Road AheadAmazon Elastic Fabric Adapter: Anatomy, Capabilities, and the Road Ahead
Amazon Elastic Fabric Adapter: Anatomy, Capabilities, and the Road Ahead
inside-BigData.com
 
Serverless data and analytics on AWS for operations
Serverless data and analytics on AWS for operations Serverless data and analytics on AWS for operations
Serverless data and analytics on AWS for operations
CloudHesive
 

What's hot (20)

Kafka 101
Kafka 101Kafka 101
Kafka 101
 
Intelligent Auto-scaling of Kafka Consumers with Workload Prediction | Ming S...
Intelligent Auto-scaling of Kafka Consumers with Workload Prediction | Ming S...Intelligent Auto-scaling of Kafka Consumers with Workload Prediction | Ming S...
Intelligent Auto-scaling of Kafka Consumers with Workload Prediction | Ming S...
 
AWS networking fundamentals
AWS networking fundamentalsAWS networking fundamentals
AWS networking fundamentals
 
Amazon Virtual Private Cloud (VPC)
Amazon Virtual Private Cloud (VPC)Amazon Virtual Private Cloud (VPC)
Amazon Virtual Private Cloud (VPC)
 
[NEW LAUNCH!] Introducing Amazon Managed Streaming for Kafka (Amazon MSK) (AN...
[NEW LAUNCH!] Introducing Amazon Managed Streaming for Kafka (Amazon MSK) (AN...[NEW LAUNCH!] Introducing Amazon Managed Streaming for Kafka (Amazon MSK) (AN...
[NEW LAUNCH!] Introducing Amazon Managed Streaming for Kafka (Amazon MSK) (AN...
 
AWS Networking – Advanced Concepts and new capabilities | AWS Summit Tel Aviv...
AWS Networking – Advanced Concepts and new capabilities | AWS Summit Tel Aviv...AWS Networking – Advanced Concepts and new capabilities | AWS Summit Tel Aviv...
AWS Networking – Advanced Concepts and new capabilities | AWS Summit Tel Aviv...
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
 
AWS Networking Fundamentals
AWS Networking FundamentalsAWS Networking Fundamentals
AWS Networking Fundamentals
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack Architecture
 
AWS VPC & Networking basic concepts
AWS VPC & Networking basic conceptsAWS VPC & Networking basic concepts
AWS VPC & Networking basic concepts
 
(DEV307) Introduction to Version 3 of the AWS SDK for Python (Boto) | AWS re:...
(DEV307) Introduction to Version 3 of the AWS SDK for Python (Boto) | AWS re:...(DEV307) Introduction to Version 3 of the AWS SDK for Python (Boto) | AWS re:...
(DEV307) Introduction to Version 3 of the AWS SDK for Python (Boto) | AWS re:...
 
Kubernetes on AWS with Amazon EKS
Kubernetes on AWS with Amazon EKSKubernetes on AWS with Amazon EKS
Kubernetes on AWS with Amazon EKS
 
Implementation &amp; Comparison Of Rdma Over Ethernet
Implementation &amp; Comparison Of Rdma Over EthernetImplementation &amp; Comparison Of Rdma Over Ethernet
Implementation &amp; Comparison Of Rdma Over Ethernet
 
Elastic Load Balancing Deep Dive - AWS Online Tech Talk
Elastic  Load Balancing Deep Dive - AWS Online Tech TalkElastic  Load Balancing Deep Dive - AWS Online Tech Talk
Elastic Load Balancing Deep Dive - AWS Online Tech Talk
 
Introducing AWS Elastic Beanstalk
Introducing AWS Elastic BeanstalkIntroducing AWS Elastic Beanstalk
Introducing AWS Elastic Beanstalk
 
Apache Kafka in the Airline, Aviation and Travel Industry
Apache Kafka in the Airline, Aviation and Travel IndustryApache Kafka in the Airline, Aviation and Travel Industry
Apache Kafka in the Airline, Aviation and Travel Industry
 
Overview of kubernetes network functions
Overview of kubernetes network functionsOverview of kubernetes network functions
Overview of kubernetes network functions
 
Amazon Aurora: Under the Hood
Amazon Aurora: Under the HoodAmazon Aurora: Under the Hood
Amazon Aurora: Under the Hood
 
Amazon Elastic Fabric Adapter: Anatomy, Capabilities, and the Road Ahead
Amazon Elastic Fabric Adapter: Anatomy, Capabilities, and the Road AheadAmazon Elastic Fabric Adapter: Anatomy, Capabilities, and the Road Ahead
Amazon Elastic Fabric Adapter: Anatomy, Capabilities, and the Road Ahead
 
Serverless data and analytics on AWS for operations
Serverless data and analytics on AWS for operations Serverless data and analytics on AWS for operations
Serverless data and analytics on AWS for operations
 

Similar to Kubernetes Networking in Amazon EKS (CON412) - AWS re:Invent 2018

Mastering Kubernetes on AWS (CON301-R1) - AWS re:Invent 2018
Mastering Kubernetes on AWS (CON301-R1) - AWS re:Invent 2018Mastering Kubernetes on AWS (CON301-R1) - AWS re:Invent 2018
Mastering Kubernetes on AWS (CON301-R1) - AWS re:Invent 2018
Amazon Web Services
 
使用 AWS EKS 打造高效原生雲端 (Cloud Native ) 設計 (Level 400)
使用 AWS EKS 打造高效原生雲端 (Cloud Native ) 設計 (Level 400)使用 AWS EKS 打造高效原生雲端 (Cloud Native ) 設計 (Level 400)
使用 AWS EKS 打造高效原生雲端 (Cloud Native ) 設計 (Level 400)
Amazon Web Services
 
Expert Tips for Successful Kubernetes Deployment on AWS
Expert Tips for Successful Kubernetes Deployment on AWSExpert Tips for Successful Kubernetes Deployment on AWS
Expert Tips for Successful Kubernetes Deployment on AWS
Amazon Web Services
 
Expert Tips for Successful Kubernetes Deployment - AWS Summit Sydney 2018
Expert Tips for Successful Kubernetes Deployment - AWS Summit Sydney 2018Expert Tips for Successful Kubernetes Deployment - AWS Summit Sydney 2018
Expert Tips for Successful Kubernetes Deployment - AWS Summit Sydney 2018
Amazon Web Services
 
具備高可用性和可擴展性的 Kubernetes 服務 (Amazon EKS)
具備高可用性和可擴展性的 Kubernetes 服務 (Amazon EKS)具備高可用性和可擴展性的 Kubernetes 服務 (Amazon EKS)
具備高可用性和可擴展性的 Kubernetes 服務 (Amazon EKS)
Amazon Web Services
 
Black Belt Tips for IT Operations
Black Belt Tips for IT OperationsBlack Belt Tips for IT Operations
Black Belt Tips for IT Operations
Amazon Web Services
 
Run Kubernetes with Amazon EKS - SRV318 - Chicago AWS Summit
Run Kubernetes with Amazon EKS - SRV318 - Chicago AWS SummitRun Kubernetes with Amazon EKS - SRV318 - Chicago AWS Summit
Run Kubernetes with Amazon EKS - SRV318 - Chicago AWS Summit
Amazon Web Services
 
CON411-R - Advanced network resource management on Amazon EKS
CON411-R - Advanced network resource management on Amazon EKSCON411-R - Advanced network resource management on Amazon EKS
CON411-R - Advanced network resource management on Amazon EKS
Claes Mogren
 
CMP315_Optimizing Network Performance for Amazon EC2 Instances
CMP315_Optimizing Network Performance for Amazon EC2 InstancesCMP315_Optimizing Network Performance for Amazon EC2 Instances
CMP315_Optimizing Network Performance for Amazon EC2 Instances
Amazon Web Services
 
Deep Dive into Container Networking (CON410-R1) - AWS re:Invent 2018
Deep Dive into Container Networking (CON410-R1) - AWS re:Invent 2018Deep Dive into Container Networking (CON410-R1) - AWS re:Invent 2018
Deep Dive into Container Networking (CON410-R1) - AWS re:Invent 2018
Amazon Web Services
 
Container Networking Deep Dive with Amazon ECS - CON401 - re:Invent 2017
Container Networking Deep Dive with Amazon ECS - CON401 - re:Invent 2017Container Networking Deep Dive with Amazon ECS - CON401 - re:Invent 2017
Container Networking Deep Dive with Amazon ECS - CON401 - re:Invent 2017
Amazon Web Services
 
CON410 - Deep Dive into Container Networking (re:Invent 2018)
CON410 - Deep Dive into Container Networking (re:Invent 2018)CON410 - Deep Dive into Container Networking (re:Invent 2018)
CON410 - Deep Dive into Container Networking (re:Invent 2018)
aniait
 
Running Kubernetes with Amazon EKS - AWS Online Tech Talks
Running Kubernetes with Amazon EKS - AWS Online Tech TalksRunning Kubernetes with Amazon EKS - AWS Online Tech Talks
Running Kubernetes with Amazon EKS - AWS Online Tech Talks
Amazon Web Services
 
Deep Dive into AWS Fargate - CON333 - re:Invent 2017
Deep Dive into AWS Fargate - CON333 - re:Invent 2017Deep Dive into AWS Fargate - CON333 - re:Invent 2017
Deep Dive into AWS Fargate - CON333 - re:Invent 2017
Amazon Web Services
 
게임 고객사를 위한 ‘AWS 컨테이너 교육’ 자료 - 유재석 솔루션즈 아키텍트, AWS :: Gaming Immersion Day 201...
게임 고객사를 위한 ‘AWS 컨테이너 교육’ 자료 -  유재석 솔루션즈 아키텍트, AWS :: Gaming Immersion Day 201...게임 고객사를 위한 ‘AWS 컨테이너 교육’ 자료 -  유재석 솔루션즈 아키텍트, AWS :: Gaming Immersion Day 201...
게임 고객사를 위한 ‘AWS 컨테이너 교육’ 자료 - 유재석 솔루션즈 아키텍트, AWS :: Gaming Immersion Day 201...
Amazon Web Services Korea
 
Kubernetes on AWS
Kubernetes on AWSKubernetes on AWS
Kubernetes on AWS
Amazon Web Services
 
DCEU 18: Docker Container Networking
DCEU 18: Docker Container NetworkingDCEU 18: Docker Container Networking
DCEU 18: Docker Container Networking
Docker, Inc.
 
Migrating to AWS Fargate (CON311-R1) - AWS re:Invent 2018
Migrating to AWS Fargate (CON311-R1) - AWS re:Invent 2018Migrating to AWS Fargate (CON311-R1) - AWS re:Invent 2018
Migrating to AWS Fargate (CON311-R1) - AWS re:Invent 2018
Amazon Web Services
 
Expert Tips for Successful Kubernetes Deployments on AWS
Expert Tips for Successful Kubernetes Deployments on AWSExpert Tips for Successful Kubernetes Deployments on AWS
Expert Tips for Successful Kubernetes Deployments on AWS
Amazon Web Services
 
From One to Many: Diving Deeper into Evolving VPC Design (ARC310-R2) - AWS re...
From One to Many: Diving Deeper into Evolving VPC Design (ARC310-R2) - AWS re...From One to Many: Diving Deeper into Evolving VPC Design (ARC310-R2) - AWS re...
From One to Many: Diving Deeper into Evolving VPC Design (ARC310-R2) - AWS re...
Amazon Web Services
 

Similar to Kubernetes Networking in Amazon EKS (CON412) - AWS re:Invent 2018 (20)

Mastering Kubernetes on AWS (CON301-R1) - AWS re:Invent 2018
Mastering Kubernetes on AWS (CON301-R1) - AWS re:Invent 2018Mastering Kubernetes on AWS (CON301-R1) - AWS re:Invent 2018
Mastering Kubernetes on AWS (CON301-R1) - AWS re:Invent 2018
 
使用 AWS EKS 打造高效原生雲端 (Cloud Native ) 設計 (Level 400)
使用 AWS EKS 打造高效原生雲端 (Cloud Native ) 設計 (Level 400)使用 AWS EKS 打造高效原生雲端 (Cloud Native ) 設計 (Level 400)
使用 AWS EKS 打造高效原生雲端 (Cloud Native ) 設計 (Level 400)
 
Expert Tips for Successful Kubernetes Deployment on AWS
Expert Tips for Successful Kubernetes Deployment on AWSExpert Tips for Successful Kubernetes Deployment on AWS
Expert Tips for Successful Kubernetes Deployment on AWS
 
Expert Tips for Successful Kubernetes Deployment - AWS Summit Sydney 2018
Expert Tips for Successful Kubernetes Deployment - AWS Summit Sydney 2018Expert Tips for Successful Kubernetes Deployment - AWS Summit Sydney 2018
Expert Tips for Successful Kubernetes Deployment - AWS Summit Sydney 2018
 
具備高可用性和可擴展性的 Kubernetes 服務 (Amazon EKS)
具備高可用性和可擴展性的 Kubernetes 服務 (Amazon EKS)具備高可用性和可擴展性的 Kubernetes 服務 (Amazon EKS)
具備高可用性和可擴展性的 Kubernetes 服務 (Amazon EKS)
 
Black Belt Tips for IT Operations
Black Belt Tips for IT OperationsBlack Belt Tips for IT Operations
Black Belt Tips for IT Operations
 
Run Kubernetes with Amazon EKS - SRV318 - Chicago AWS Summit
Run Kubernetes with Amazon EKS - SRV318 - Chicago AWS SummitRun Kubernetes with Amazon EKS - SRV318 - Chicago AWS Summit
Run Kubernetes with Amazon EKS - SRV318 - Chicago AWS Summit
 
CON411-R - Advanced network resource management on Amazon EKS
CON411-R - Advanced network resource management on Amazon EKSCON411-R - Advanced network resource management on Amazon EKS
CON411-R - Advanced network resource management on Amazon EKS
 
CMP315_Optimizing Network Performance for Amazon EC2 Instances
CMP315_Optimizing Network Performance for Amazon EC2 InstancesCMP315_Optimizing Network Performance for Amazon EC2 Instances
CMP315_Optimizing Network Performance for Amazon EC2 Instances
 
Deep Dive into Container Networking (CON410-R1) - AWS re:Invent 2018
Deep Dive into Container Networking (CON410-R1) - AWS re:Invent 2018Deep Dive into Container Networking (CON410-R1) - AWS re:Invent 2018
Deep Dive into Container Networking (CON410-R1) - AWS re:Invent 2018
 
Container Networking Deep Dive with Amazon ECS - CON401 - re:Invent 2017
Container Networking Deep Dive with Amazon ECS - CON401 - re:Invent 2017Container Networking Deep Dive with Amazon ECS - CON401 - re:Invent 2017
Container Networking Deep Dive with Amazon ECS - CON401 - re:Invent 2017
 
CON410 - Deep Dive into Container Networking (re:Invent 2018)
CON410 - Deep Dive into Container Networking (re:Invent 2018)CON410 - Deep Dive into Container Networking (re:Invent 2018)
CON410 - Deep Dive into Container Networking (re:Invent 2018)
 
Running Kubernetes with Amazon EKS - AWS Online Tech Talks
Running Kubernetes with Amazon EKS - AWS Online Tech TalksRunning Kubernetes with Amazon EKS - AWS Online Tech Talks
Running Kubernetes with Amazon EKS - AWS Online Tech Talks
 
Deep Dive into AWS Fargate - CON333 - re:Invent 2017
Deep Dive into AWS Fargate - CON333 - re:Invent 2017Deep Dive into AWS Fargate - CON333 - re:Invent 2017
Deep Dive into AWS Fargate - CON333 - re:Invent 2017
 
게임 고객사를 위한 ‘AWS 컨테이너 교육’ 자료 - 유재석 솔루션즈 아키텍트, AWS :: Gaming Immersion Day 201...
게임 고객사를 위한 ‘AWS 컨테이너 교육’ 자료 -  유재석 솔루션즈 아키텍트, AWS :: Gaming Immersion Day 201...게임 고객사를 위한 ‘AWS 컨테이너 교육’ 자료 -  유재석 솔루션즈 아키텍트, AWS :: Gaming Immersion Day 201...
게임 고객사를 위한 ‘AWS 컨테이너 교육’ 자료 - 유재석 솔루션즈 아키텍트, AWS :: Gaming Immersion Day 201...
 
Kubernetes on AWS
Kubernetes on AWSKubernetes on AWS
Kubernetes on AWS
 
DCEU 18: Docker Container Networking
DCEU 18: Docker Container NetworkingDCEU 18: Docker Container Networking
DCEU 18: Docker Container Networking
 
Migrating to AWS Fargate (CON311-R1) - AWS re:Invent 2018
Migrating to AWS Fargate (CON311-R1) - AWS re:Invent 2018Migrating to AWS Fargate (CON311-R1) - AWS re:Invent 2018
Migrating to AWS Fargate (CON311-R1) - AWS re:Invent 2018
 
Expert Tips for Successful Kubernetes Deployments on AWS
Expert Tips for Successful Kubernetes Deployments on AWSExpert Tips for Successful Kubernetes Deployments on AWS
Expert Tips for Successful Kubernetes Deployments on AWS
 
From One to Many: Diving Deeper into Evolving VPC Design (ARC310-R2) - AWS re...
From One to Many: Diving Deeper into Evolving VPC Design (ARC310-R2) - AWS re...From One to Many: Diving Deeper into Evolving VPC Design (ARC310-R2) - AWS re...
From One to Many: Diving Deeper into Evolving VPC Design (ARC310-R2) - AWS re...
 

More from Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
Amazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
Amazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
Amazon Web Services
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Amazon Web Services
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
Amazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
Amazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Amazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
Amazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Amazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
Amazon Web Services
 

More from Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Kubernetes Networking in Amazon EKS (CON412) - AWS re:Invent 2018

  • 1.
  • 2. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Kubernetes Networking in Amazon EKS C O N 4 1 2 Liwen Wu Software Engineer Amazon Web Services Sri Saran Balaji Vellore Rajakumar Software Engineer Amazon Web Services
  • 3. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Agenda • Overview of Amazon EKS Architecture • How Kubernetes networking abstractions are implemented in Amazon Elastic Container Service for Kubernetes (Amazon EKS) • Pod-to-pod communication (CNI) • Pod-to-service communication (Elastic Load Balancing, Amazon Network Load Balancer [NLB], Kube-Proxy/IPTables) • External-to service-communication (ingress ALB) • How pods communicate with Kubernetes masters in Amazon EKS • Cross-account ENIs • Kubectl logs/execs • Pods read/write/watch Kubernetes API servers objects
  • 4. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Overview of Amazon EKS Architecture W o r k e r V P C Availability Zone 2 Kubelet Kubelet Availability Zone 1 M a s t e r V P C APIServer Availability Zone 1 Availability Zone 2 Etcd Etcd APIServer EKS-Owned ENI EKS-Owned ENI
  • 5. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 6. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 7. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. amazon-vpc-cni-k8s Container Networking Interface(CNI) Tenets • Integrates Amazon Virtual Private Cloud networking into Kubernetes • Should use Amazon VPC networking natively to forward pod-to-pod traffic • Use AWS routable IP addresses for Pods • Pods is 1st class citizen in Amazon VPC networking • There is NO on-ramp/off-ramp for • Pod to AWS services (e.g. Amazon S3, Amazon DynamoDB) communication • Pod to on-premises communication (e.g. VPN/direct-connect) • Should make sure Pods have fast startup time such that: Pods/Containers MUST be able to send and receive traffic in the matter of seconds (compare to minutes for VM)
  • 8. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. VPC network Amazon EC2 PodPod Pod Pod Pod CNI networking internals - DataPlane
  • 9. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 10. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Life of a packet: pod1-to-pod2, inside node EC2 Pod1 eth0 Pod2 eth0 ENI root veth-pod1 veth-pod2
  • 11. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Life of a packet: pod1-to-pod2, inside node EC2 Pod1 eth0 Pod2 eth0 ENI root veth-pod1 veth-pod2
  • 12. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Life of a packet: pod1-to-pod2, inside node EC2 Pod1 eth0 Pod2 eth0 ENI root veth-pod1 veth-pod2
  • 13. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Life of a packet: pod1-to-pod2, inside node EC2 Pod1 eth0 Pod2 eth0 ENI root veth-pod1 veth-pod2
  • 14. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Life of a packet: pod1-to-pod2, inside node EC2 Pod1 eth0 Pod2 eth0 ENI root veth-pod1 veth-pod2
  • 15. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 16. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Life of a packet: pod1-to-pod3, across nodes ENI EC2 node1 Pod1 eth0 Pod2 eth0 root veth-pod1 veth-pod2 EC2 node2 Pod3 eth0 Pod4 eth0 root veth-pod3 veth-pod4
  • 17. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Life of a packet: pod1-to-pod3, across nodes ENI EC2 node1 Pod1 eth0 Pod2 eth0 root veth-pod1 veth-pod2 EC2 node2 Pod3 eth0 Pod4 eth0 root veth-pod3 veth-pod4
  • 18. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Life of a packet: pod1-to-pod3, across nodes ENI EC2 node1 Pod1 eth0 Pod2 eth0 root veth-pod1 veth-pod2 EC2 node2 Pod3 eth0 Pod4 eth0 root veth-pod3 veth-pod4
  • 19. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Life of a packet: pod1-to-pod3, across nodes ENI EC2 node1 Pod1 eth0 Pod2 eth0 root veth-pod1 veth-pod2 EC2 node2 Pod3 eth0 Pod4 eth0 root veth-pod3 veth-pod4
  • 20. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Life of a packet: pod1-to-pod3, across nodes ENI EC2 node1 Pod1 eth0 Pod2 eth0 root veth-pod1 veth-pod2 EC2 node2 Pod3 eth0 Pod4 eth0 root veth-pod3 veth-pod4
  • 21. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Life of a packet: pod1-to-pod3, across nodes ENI EC2 node1 Pod1 eth0 Pod2 eth0 root veth-pod1 veth-pod2 EC2 node2 Pod3 eth0 Pod4 eth0 root veth-pod3 veth-pod4
  • 22. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Life of a packet: pod1-to-pod3, across nodes ENI EC2 node1 Pod1 eth0 Pod2 eth0 root veth-pod1 veth-pod2 EC2 node2 Pod3 eth0 Pod4 eth0 root veth-pod3 veth-pod4
  • 23. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Life of a packet: pod1-to-pod3, across nodes ENI EC2 node1 Pod1 eth0 Pod2 eth0 root veth-pod1 veth-pod2 EC2 node2 Pod3 eth0 Pod4 eth0 root veth-pod3 veth-pod4
  • 24. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. CNI networking internals - Control plane • Kubelet invokes CNI add or delete commands for pods • CNI request secondary IPs from ipamD and setups networking stack for pod • For fast pods startup time, ipamD creates a secondary IP warm pool with one more ENI and its IP address
  • 25. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. CNI networking internals - Control plane Amazon EC2
  • 26. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Inside pod – IP address # ip addr show 1; lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 3: eth0@if231: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP link/ether 56:41:95:26:17:41 brd ff:ff:ff:ff:ff:ff inet 10.0.97.30/32 brd 10.0.97.226 scope global eth0 <<<<<<< ENI's secondary IP address valid_lft forever preferred_lft forever inet6 fe80::5441:95ff:fe26:1741/64 scope link valid_lft forever preferred_lft forever
  • 27. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Inside pod, routes, static ARP # ip route show default via 169.254.1.1 dev eth0 169.254.1.1 dev eth0 # arp -a ? (169.254.1.1) at 2a:09:74:cd:c4:62 [ether] PERM on eth0
  • 28. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. On host side # ip route show default via 10.0.96.1 dev eth0 10.0.96.0/19 dev eth0 proto kernel scope link src 10.0.104.183 10.0.97.30 dev aws8db0408c9a8 scope link <------------------------Pod's IP 10.0.97.159 dev awsbcd978401eb scope link 10.0.97.226 dev awsc2f87dc4cdd scope link 10.0.102.98 dev aws4914061689b scope link ... # ip route show table eni-1 default via 10.0.96.1 dev eth1 10.0.96.1 dev eth1 scope link # ip rule list 0: from all lookup local 512: from all to 10.0.97.30 lookup main <---------- to Pod's traffic 1025: not from all to 10.0.0.0/16 lookup main 1536: from 10.0.97.30 lookup eni-1 <-------------- from Pod's traffic
  • 29. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 30. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Kubernetes service • A logical set of pods • A policy by which to access them
  • 31. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Kubernetes service Service PodPodPod
  • 32. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Services in Kubernetes [ec2-user@ip-172-31-9-36 ~]$ kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 2d [ec2-user@ip-172-31-9-36 ~]$ kubectl describe svc Name: kubernetes Namespace: default Labels: component=apiserver provider=kubernetes Annotations: <none> Selector: <none> Type: ClusterIP IP: 10.100.0.1 Port: https 443/TCP TargetPort: 443/TCP Endpoints: 192.168.119.102:443,192.168.154.135:443 Session Affinity: ClientIP Events: <none>
  • 33. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. IPtables (pod to services) kubectl describe svc Name: kubernetes Namespace: default Labels: component=apiserver provider=kubernetes Annotations: <none> Selector: <none> Type: ClusterIP IP: 10.100.0.1 Port: https 443/TCP TargetPort: 443/TCP Endpoints: 192.168.131.23:443,192.168.85.200:443  Endpoint IPs Session Affinity: ClientIP Events: <none>
  • 34. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Implement Kubernetes service by Kube-proxy, Linux IPtables • Kube-proxy • Watch services, end-points • Program Linux IPtables • Pod to service • IPtable, pre-routing phase • Pod  service IP  IPtables  one of end-point IPs
  • 35. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Implement Kubernetes service by Kube-proxy, Linux IPtables Amazon EC2 Pod Pod Pod Kube-proxy API Server
  • 36. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. IPtables (pod to services) *nat :PREROUTING ACCEPT [1:60] -A PREROUTING -m comment --comment "kubernetes service portals" -j KUBE-SERVICES // 1 -A OUTPUT -m comment --comment "kubernetes service portals" -j KUBE-SERVICES -A POSTROUTING -m comment --comment "kubernetes postrouting rules" -j KUBE-POSTROUTING -A KUBE-POSTROUTING -m comment --comment "kubernetes service traffic requiring SNAT" - m mark --mark 0x4000/0x4000 -j MASQUERADE -A KUBE-SEP-SIZTKALRBUTOHR3N -s 192.168.131.23/32 -m comment --comment "default/kubernetes:https" -j KUBE-MARK-MASQ -A KUBE-SEP-SIZTKALRBUTOHR3N -p tcp -m comment --comment "default/kubernetes:https" -m recent --set --name KUBE-SEP-SIZTKALRBUTOHR3N --mask 255.255.255.255 --rsource -m tcp -j DNAT --to-destination 192.168.131.23:443 //4 -A KUBE-SEP-U7WSV5R4I437O3C7 -s 192.168.85.200/32 -m comment --comment "default/kubernetes:https" -j KUBE-MARK-MASQ -A KUBE-SEP-U7WSV5R4I437O3C7 -p tcp -m comment --comment "default/kubernetes:https" -m recent --set --name KUBE-SEP-U7WSV5R4I437O3C7 --mask 255.255.255.255 --rsource -m tcp -j DNAT --to-destination 192.168.85.200:443 //6
  • 37. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. IPtables (Pod to Services) -A KUBE-SERVICES -d 10.100.0.10/32 -p udp -m comment --comment "kube-system/kube- dns:dns cluster IP" -m udp --dport 53 -j KUBE-SVC-TCOU7JCQXEZGVUNU -A KUBE-SERVICES -d 10.100.0.10/32 -p tcp -m comment --comment "kube-system/kube- dns:dns-tcp cluster IP" -m tcp --dport 53 -j KUBE-SVC-ERIFXISQEP7F7OF4 -A KUBE-SERVICES -d 10.100.0.1/32 -p tcp -m comment --comment "default/kubernetes:https cluster IP" -m tcp --dport 443 -j KUBE-SVC- NPX46M4PTMTKRN6Y // 2 -A KUBE-SVC-NPX46M4PTMTKRN6Y -m comment --comment "default/kubernetes:https" -m recent --rcheck --seconds 10800 --reap --name KUBE-SEP-SIZTKALRBUTOHR3N --mask 255.255.255.255 --rsource -j KUBE-SEP-SIZTKALRBUTOHR3N //3 -A KUBE-SVC-NPX46M4PTMTKRN6Y -m comment --comment "default/kubernetes:https" -m recent --rcheck --seconds 10800 --reap --name KUBE-SEP-U7WSV5R4I437O3C7 --mask 255.255.255.255 --rsource -j KUBE-SEP-U7WSV5R4I437O3C7 // 5 -A KUBE-SVC-NPX46M4PTMTKRN6Y -m comment --comment "default/kubernetes:https" -m statistic --mode random --probability 0.50000000000 -j KUBE-SEP-SIZTKALRBUTOHR3N -A KUBE-SVC-NPX46M4PTMTKRN6Y -m comment --comment "default/kubernetes:https" -j KUBE-SEP-U7WSV5R4I437O3C7
  • 38. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 39. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Kubernetes DNS Pod (kube-dns) • Kubernetes schedules a DNS Pod (kube-dns) and Service on the cluster • Configures the Kubelets to tell individual containers to use the DNS Service’s IP to resolve DNS names • DNS Pod communicate with Kubernetes Service IP (e.g 10.100.0.1) and build map of Service Name and Service IP [ec2-user@ip-172-31-9-36 ~]$ kubectl get pod kube-dns-fcd468cb-cbz8z -n kube-system NAME READY STATUS RESTARTS AGE kube-dns-fcd468cb-cbz8z 3/3 Running 0 5d
  • 40. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Life of a packet: pod (kube-dns)-to-service (Kubernetes service) ENI EC2 node1 Kube-dns eth0 Pod2 eth0 root veth-dns-pod veth-pod2 EKS-Owned ENI 192.168.119.102 EKS-Owned EN 192.168.154.135I Customer VPC EKS VPC 10.100.0.1 APIServer Availability Zone 1 APIServer Availability Zone 2
  • 41. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Life of a packet: pod (kube-dns)-to-service (Kubernetes service) ENI EC2 node1 Kube-dns eth0 Pod2 eth0 root veth-dns-pod veth-pod2 EKS-Owned ENI 192.168.119.102 EKS-Owned EN 192.168.154.135I Customer VPC EKS VPC 10.100.0.1 APIServer Availability Zone 1 APIServer Availability Zone 2
  • 42. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Life of a packet: pod (kube-dns)-to-service (Kubernetes service) ENI EC2 node1 Kube-dns eth0 Pod2 eth0 root veth-dns-pod veth-pod2 EKS-Owned ENI 192.168.119.102 EKS-Owned EN 192.168.154.135I Customer VPC EKS VPC 10.100.0.1 APIServer Availability Zone 1 APIServer Availability Zone 2
  • 43. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Life of a packet: pod (kube-dns)-to-service (Kubernetes service) ENI EC2 node1 Kube-dns eth0 Pod2 eth0 root veth-dns-pod veth-pod2 EKS-Owned ENI 192.168.119.102 EKS-Owned EN 192.168.154.135 Customer VPC EKS VPC APIServer Availability Zone 1 APIServer Availability Zone 2
  • 44. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Life of a packet: pod (kube-dns)-to-service (Kubernetes service) ENI EC2 node1 Kube-dns eth0 Pod2 eth0 root veth-dns-pod veth-pod2 EKS-Owned ENI 192.168.119.102 EKS-Owned EN 192.168.154.135I Customer VPC EKS VPC APIServer Availability Zone 1 APIServer Availability Zone 2
  • 45. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Life of a packet: pod (kube-dns)-to-service (Kubernetes service) ENI EC2 node1 Kube-dns eth0 Pod2 eth0 root veth-dns-pod veth-pod2 EKS-Owned ENI 192.168.119.102 EKS-Owned EN 192.168.154.135I Customer VPC EKS VPC APIServer Availability Zone 1 APIServer Availability Zone 2
  • 46. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Life of a packet: pod (kube-dns)-to-service (Kubernetes service) ENI EC2 node1 Kube-dns eth0 Pod2 eth0 root veth-dns-pod veth-pod2 EKS-Owned ENI 192.168.119.102 EKS-Owned EN 192.168.154.135I Customer VPC EKS VPC APIServer Availability Zone 1 APIServer Availability Zone 2
  • 47. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Implement Kubernetes service by Amazon Classic Load Balancer apiVersion: v1 kind: Service metadata: name: nginx namespace: default annotations: {} spec: ports: - name: http port: 80 protocol: TCP targetPort: 80 selector: app: nginx type: LoadBalancer
  • 48. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Implement Kubernetes service by Classic Load Balancer Pod Pod
  • 49. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Implement Kubernetes service by Amazon Network Load Balancer (NLB) (Linux IPtables-as-a-service for VPCS) apiVersion: v1 kind: Service metadata: name: nginx namespace: default annotations: service.beta.kubernetes.io/aws-load-balancer-type: "nlb" spec: ports: - name: http port: 80 protocol: TCP targetPort: 80 selector: app: nginx type: LoadBalancer
  • 50. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Implement Kubernetes service by Amazon Network Load Balancer (NLB) Pod Pod
  • 51. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 52. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Kubernetes ingress • A collection of rules • Allow inbound connections to reach the cluster services
  • 53. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Kubernetes ingress Service (foo) Pod Pod Pod Service (bar) Pod Pod Pod Foo.example.com example.com/bar ingress
  • 54. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Ingress in Kubernetes #apiVersion: extensions/v1beta1 kind: Ingress metadata: name: echoserver namespace: echoserver annotations: kubernetes.io/ingress.class: alb alb.ingress.kubernetes.io/subnets: subnet-0061ab916d8e0f34f spec: rules: - http: paths: - path: / backend: serviceName: echoserver servicePort: 80
  • 55. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Ingress in Kubernetes # kubectl describe ingress -n echoserver Name: echoserver Namespace: echoserver Address: 23604d3e-echoserver-echose-2ad7-1066162608.us-west- 2.elb.amazonaws.com Default backend: default-http-backend:80 (<none>) Rules: Host Path Backends ---- ---- -------- * / echoserver:80 (<none>) Annotations: kubernetes.io/ingress.class: alb alb.ingress.kubernetes.io/scheme: internet-facing alb.ingress.kubernetes.io/subnets: subnet-0061ab916d8e0f34f,subnet- 08dc85488dba37eda,
  • 56. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Service reached through ingress in Kubernetes # kubectl get service -n echoserver NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE echoserver ClusterIP 10.100.193.12 <none> 80/TCP 1d # kubectl describe service echoserver -n echoserver Name: echoserver Namespace: echoserver Selector: app=echoserver Type: ClusterIP IP: 10.100.193.12 Port: <unset> 80/TCP TargetPort: 8080/TCP Endpoints: 192.168.164.97:8080 Session Affinity: None Events: <none>
  • 57. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Implement Kubernetes ingress by Amazon Application Load Balancer (ALB)
  • 58. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Kubernetes cluster Implement Kubernetes ingress by L7 load balancers (for example, Envoy, Ngnix) Service (bar) Pod Pod Pod Service (foo) Pod Pod Pod L7 Envoy, Ngnix L7 Envoy, Ngnix
  • 59. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 60. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Kubernetes Exec and Logs implementation EKS VPCCustomer VPC Worker Nodes EKS-Owned ENI Kubernetes API calls Communication across VPCs Internet
  • 61. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Troubleshooting Networking issues • Misconfigured control plane security group • Control plane security group is assigned to ENIs created in the worker node subnets. • When launching worker nodes, control plane security group is configured to receive packets from worker nodes. • if different control plane security group is specified while creating worker nodes, pods will not be able to communicate with master W o r k e r V P C Kubelet ENI Pods Worker Node Worker Node Security Group Control Plane Security Group
  • 62. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Troubleshooting Networking issues • Amazon VPC related issues • Deleting subnets in your Amazon VPC • Removing Ingress and Egress required for Master and Worker node communication. • Reaching ENI limits for an AWS Account. • Exhausting IPs available in the control plane subnets. • Incorrect permissions on the role could stop Amazon EKS from managing Kubernetes clusters. • Use Managed policy provided by Amazon EKS. • Avoid attaching deny permissions on APIs required by Amazon EKS for managing ENIs in your Amazon VPC.
  • 63. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 64. Thank you! © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 65. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.