SlideShare a Scribd company logo
1 of 76
Download to read offline
Kubernetes
the Very Hard Way
Laurent Bernaille
Staff Engineer, Infrastructure
@lbernail
lbernail
Datadog
Over 350 integrations
Over 1,200 employees
Over 8,000 customers
Runs on millions of hosts
Trillions of data points per day
10000s hosts in our infra
10s of k8s clusters with 50-2500 nodes
Multi-cloud
Very fast growth
lbernail
Why Kubernetes?
Dogfooding
Improve k8s integrations
Immutable
Move from Chef
Multi Cloud
Common API
Community
Large and Dynamic
The very hard way?
It was much harder
lbernail
This talk is about the fine print
“Of course, you will need a HA master setup”
“Oh, and yes, you will have to manage your certificates”
“By the way, networking is slightly more complicated, look
into CNI / ingress controllers”
lbernail
What happens after “Kube 101”
1. Resilient and Scalable Control Plane
2. Securing the Control Plane
a. Kubernetes and Certificates
b. Exceptions?
c. Impact of Certificate Rotation
3. Efficient networking
a. Giving pod IPs and routing them
b. Ingresses: Getting data in the cluster
lbernail
What happens after “Kube 101”
1. Resilient and Scalable Control Plane
2. Securing the Control Plane
a. Kubernetes and Certificates
b. Exceptions?
c. Impact of Certificate Rotation
3. Efficient networking
a. Giving pod IPs and routing them
b. Ingresses: Getting data in the cluster
Resilient and Scalable
Control Plane
lbernail
Kube 101 Control Plane
kubelet kubectl
etcd
apiserver
controllersscheduler
Master
in-cluster
apps
Service
lbernail
Making it resilient
etcd
apiserver
controllersscheduler
kubelet kubectl
Master
etcd
apiserver
controllersscheduler
Master
etcd
apiserver
controllersscheduler
Master
LoadBalancer
in-cluster
apps
Service
lbernail
Kube 101 Control Plane
kubelet kubectl
etcd
apiserver
controllersscheduler
Master
in-cluster
apps
Service
lbernail
apiserver
controllersscheduler
kubelet kubectl
Master
apiserver
controllersscheduler
Master
apiserver
controllersscheduler
Master
LoadBalancer
in-cluster
apps
Service
Separate etcd nodes
etcd
etcd
lbernail
apiserver
controllersscheduler
kubelet kubectl
Master
apiserver
controllersscheduler
Master
apiserver
controllersscheduler
Master
LoadBalancer
in-cluster
apps
Service
Single active Controller/scheduler
etcd
etcd
lbernail
apiserver
controllers
kubelet kubectl
apiserver apiserver
LoadBalancer
in-cluster
apps
Service
Split scheduler/controllers
controllers
schedulers
schedulers
etcd
lbernail
apiserver
controllers
kubelet kubectl
apiserver apiserver
LoadBalancer
in-cluster
apps
Service
Split etcd
controllers
schedulers
schedulers
etcd
etcd
events
lbernail
apiserver
controllers
kubelet kubectl
apiserver apiserver
LoadBalancer
in-cluster
apps
Service
Sizing the control plane
controllers
schedulers
schedulers
2x (3 or 5 nodes)
disk + net ios
X nodes
RAM + net ios
2 nodes
CPU
2 nodes
CPU
etcd
etcd
events
lbernail
1. Resilient and Scalable Control Plane
2. Securing the Control Plane
a. Kubernetes and Certificates
b. Exceptions?
c. Impact of Certificate Rotation
3. Efficient networking
a. Giving pod IPs and routing them
b. Ingresses: Getting data in the cluster
What happens after “Kube 101”
Kubernetes and
Certificates
lbernail
From “the hard way”
lbernail
“Our cluster broke after ~1y”
lbernail
Certificates in Kubernetes
● Kubernetes uses certificates everywhere
● Very common source of incidents
● Our Strategy: Rotate all certificates daily
lbernail
Certificate management
etcd
apiserver
Vault
etcd PKIPeer/Server cert
Etcd Client cert
lbernail
Certificate management
etcd
apiserver
controllers
scheduler
Vault
etcd PKIPeer/Server cert
Etcd Client cert
kube PKI
Apiserver/kubelet client cert
Controller client cert
Scheduler client cert
kubelet Kubelet client/server cert
lbernail
Certificate management
etcd
apiserver
controllers
scheduler
Vault
etcd PKIPeer/Server cert
Etcd Client cert
kube PKI
Apiserver/kubelet client cert
kube kv
SA public key
SA private key
Controller client cert
Scheduler client cert
In-cluster
app
SA
token
kubelet Kubelet client/server cert
lbernail
Certificate management
etcd
apiserver
controllers
scheduler
apiservice
webhook...
Vault
etcd PKIPeer/Server cert
Etcd Client cert
apiservice PKI
Apiservice cert (proxy/webhooks)
kube PKI
Apiserver/kubelet client cert
kube kv
SA public key
SA private key
Controller client cert
Scheduler client cert
In-cluster
app
SA
token
kubelet Kubelet client/server cert
lbernail
Certificate management
etcd
apiserver
controllers
scheduler
apiservice
webhook...
Vault
etcd PKIPeer/Server cert
Etcd Client cert
apiservice PKI
Apiservice cert (proxy/webhooks)
kube PKI
Apiserver/kubelet client cert
kube kv
SA public key
SA private key
Controller client cert
Scheduler client cert
OIDC
provider
kubectl
OIDC auth
In-cluster
app
SA
token
kubelet Kubelet client/server cert
Exception ?
Incident...
lbernail
Kubelet: TLS Bootstrap
apiserver
controllers
Vault
kube PKI
kube kv3- Get signing key
admin
1- Create Bootstrap token
2- Add Bootstrap token to vault
lbernail
Kubelet: TLS Bootstrap
apiserver
controllers
Vault
kube PKI
kube kv
kubelet
5- Verify RBAC for CSR creator
6- Sign certificate
1- Get Bootstrap token
2- Authenticate with token
4- Create CSR
7- Download certificate
8- Authenticate with cert
9- Register node
3- Verify Token and map groups
lbernail
Kubelet certificate issue
1. One day, some Kubelets were failing to start or took 10s of minutes
2. Nothing in logs
3. Everything looked good but they could not get a cert
4. Turns out we had a lot of CSRs in flight
5. Signing controller was having a hard time evaluating them all
CSR resources in the cluster
Lower is better!
lbernail
Why?
Kubelet Authentication
● Initial creation: bootstrap token, mapped to group “system:bootstrappers”
● Renewal: use current node certificate, mapped to group “system:nodes“
Required RBAC permissions
● CSR creation
● CSR auto-approval
CSR creation CSR auto-approval
system:bootstrappers OK OK
system:nodes OK
Exception 2?
Incident 2...
lbernail
Temporary solution
apiserver
webhook
Vault
kube kv
Get cert and key
admin
Create webhook with
self-signed cert as CA
Add self-signed cert + key to Vault
One day, after ~1 year
● Creation of resources started failing (luckily only a Custom Resource)
● Cert had expired...
lbernail
Take-away
● Rotate server/client certificates
● Not easy
But, “If it’s hard, do it often”
> no expiration issues anymore
Impact of
Certificate rotation
Apiserver
certificate rotation
lbernail
Impact on etcdapiserver restarts
etcd slow queries
etcd traffic
We have multiple apiservers
We restart each daily
Significant etcd network impact
(caches are repopulated)
Significant impact on etcd performances
Impact on Load-balancers
apiserver restarts
ELB surge queue Significant impact on LB as connections are reestablished
Mitigation: increase queues on apiservers
net.ipv4.tcp_max_syn_backlog
net.core.somaxconn
lbernail
Impact on apiserver clients
apiserver restarts
coredns memory usage
● Apiserver restarts
● clients reconnect and refresh their cache
> Memory spike for impacted apps
No real mitigation today
lbernail
Impact on traffic balance
Number of connections / traffic very unbalanced
Because connections are very long-lived
More clients => Bigger impact clusterwide
15MB/s
2.5MB/s
2300 connections
300 connections
lbernail
Why? Simple simulation
Simulation for 48h
● 5 apiservers
● 10000 connections (4 x 2500 nodes)
● Every 4h, one apiserver restarts
● Reconnections evenly dispatched
Cause
● Cloud TCP load-balancers use round-robin
● Long-lived connections
● No rebalancing
Kubelet certificate
rotation
Pod graceful termination
apiserver
kubelet containerd
admin or
controller Delete pod
Stop Container
with timeout
“terminationGracePeriodSeconds”
container
Send SIGTERM
After timeout, send SIGKILL
Restarts impact graceful termination
apiserver
containerd
admin or
controller Delete pod
container
Send SIGTERM
After timeout, or Context Cancelled
send SIGKILL
Kubelet restarts end graceful termination
Fixed upstream
“Do not SIGKILL container if container stop is cancelled”
https://github.com/containerd/cri/pull/1099
kubelet
Impact on pod readiness
Issue upstream
“pod with readinessProbe will be not ready when kubelet restart”
https://github.com/kubernetes/kubernetes/issues/78733
kubelet restarts on “system” nodes (coredns + other services)
coredns endpoints NotReady
On kubelet restart
● Readiness probes marked as failed
● Pods removed from service endpoints
● Requires readiness to succeed again
lbernail
Take-away
Restarting components is not transparent
It would be great if
○ Components could transparently reload certs (server & client)
○ Clients could wait 0-Xs to reconnect to avoid thundering herd
○ Reconnections did not trigger memory spikes
○ Cloud TCP load-balancers supported least-conn algorithm
○ Connections were rebalanced (kill them after a while?)
lbernail
What happens after “Kube 101”
1. Resilient and Scalable Control Plane
2. Securing the Control Plane
a. Kubernetes and Certificates
b. Exceptions?
c. Impact of Certificate Rotation
3. Efficient networking
a. Giving pod IPs and routing them
b. Ingresses: Getting data in the cluster
Efficient
networking
lbernail
Throughput
Trillions of data points daily
Scale
1000-2000 nodes clusters
Network challenges
Latency
End-to-end pipeline
Topology
Multiple clusters
Access from standard VMs
Giving pods IPs &
Routing them
lbernail
From “the Hard Way”
node IP
Pod CIDR for this node
lbernail
Small cluster? Static routes
Node 1
IP: 192.168.0.1
Pod CIDR: 10.0.1.0/24
Routes (local or cloud provider)
10.0.1.0/24 => 192.168.0.1
10.0.2.0/24 => 192.168.0.2
Node 2
IP: 192.168.0.2
Pod CIDR: 10.0.2.0/24
Limits
local: nodes must be in the same subnet
cloud provider: number of routes
lbernail
Mid-size cluster? Overlay
Limits
Overhead of the overlay
Scaling route distribution (control plane)
Node 1
IP: 192.168.0.1
Pod CIDR: 10.0.1.0/24
Node 2
IP: 192.168.0.2
Pod CIDR: 10.0.2.0/24
VXLAN VXLAN
Tunnel traffic between hosts
Examples: Calico, Flannel
lbernail
Large cluster with a lot of traffic?
Native pod routing
Performance
Datapath: no overhead
Control plane: simpler
Addressing
Pod IPs are accessible from
● Other clusters
● VMs
lbernail
In practice
On premise
BGP
Calico
Kube-router
Macvlan
AWS
Additional IPs on ENIs
AWS EKS CNI plugin
Lyft CNI plugin
Cilium ENI IPAM
GCP
IP aliases
lbernail
How it works on AWS
eth1
agent Pod 1 Pod 2
kubelet
cni
containerd
CRI
CNI
eth0
Attach ENI
Allocate IPs
Create
veth
ip 1
ip 2
ip 3
Routing rule
“From IP1, use eth1”
Routing
eth0
ip 1
lbernail
Address space planning
Pod Cidr: /24
● /24 leads to inefficient address usage
● sig-network: remove contiguous range requirement for CIDR allocation
● But also
○ Address space for node IPs (another /20 per cluster for 4096 nodes)
○ Service IP range (/20 would make sense for such a cluster)
● Total: 1 /15 for pods, 2 /20 for nodes and service!
pod cidr 8bitsnode prefix: 12bits10. (8bits) 4bits
Up to 255 pods per node
Simple addressing
Up to 4096 nodes
4 bits available
Up to 16 clusters
lbernail
Take-away
● Native pod routing has worked very well at scale
● A bit more complex to debug
● Much more efficient datapath
● Topic is still dynamic (Cilium introduced ENI recently)
● Great relationship with Lyft / Cilium
● Plan your address space early
Ingresses
lbernail
Ingress: cross-clusters, VM to clusters
A A
A
B B
B
C
C
D
D
Cluster 1
Cluster 2Classic (VM)
C?
C? B?
lbernail
Master
Kubernetes default: LB service
External
Client
Load-Balancer
pod
pod
pod
kube-proxy
kube-proxy
kube-proxy
NP
NP
NP
Healthchecker
data path
health checks
configuration (from watching ingresses on apiservers)
service-controller
lbernail
Master
Inefficient Datapath & cross-application impacts
Web traffic Load-Balancer
web-1
web-2
web-3
kube-proxy
kube-proxy
kube-proxy
NP
NP
NP
Healthchecker
data path
health checks
configuration (from watching ingresses on apiservers)
service-controller
kafka
lbernail
Master
ExternalTrafficPolicy: Local?
Web traffic Load-Balancer
web-1
web-2
web-3
kube-proxy
kube-proxy
kube-proxy
NP
NP
NP
Healthchecker
data path
health checks
configuration (from watching ingresses on apiservers)
service-controller
kafka
lbernail
L7-proxy ingress controller
data path
health checks
configuration
from watching ingresses/endpoints on apiservers (ingress-controller)
from watching LoadBalancer services (service-controller)
External
Client
Load-Balancer
l7proxy
l7proxy
kube-proxy
kube-proxy
kube-proxy
NP
NP
NP
Heathchecker
ingress-controller
pod
pod
pod
pod
Create l7proxy deployments
Update backends using service endpoints
Master
service-controller
lbernail
Limits
All nodes as backends (1000+)
Inefficient datapath
Cross-application impacts
Alternatives?
ExternalTrafficPolicy: Local?
> Number of nodes remains the same
> Issues with some CNI plugins
K8s ingress
> Still load-balancer based
> Need to scale ingress pods
> Still inefficient datapath
Challenges
lbernail
Our target: native routing
External
Client
ALB
pod
pod
pod
Healthchecker
data path
health checks
alb-ingress-controller
configuration (from watching ingresses/endpoints on apiservers)
lbernail
Limited to HTTP ingresses
No support for TCP/UDP
Ingress v2 should address this
Remaining challenges
Registration delay
Slow registration with LB
Pod rolling-updates much faster
Mitigations
- MinReadySeconds
- Pod ReadinessGates
lbernail
Workaround
External
Client
Load-Balancer
l7proxy
l7proxy
Heathchecker
pod
pod
pod
pod
Not managed by k8s Dedicated nodes
Pods in host network
TCP / Registration delay not manageable
> Dedicated gateways
lbernail
Take-away
● Ingress solutions are not great at scale yet
● May require workarounds
● Definitely a very important topic for us
● The community is working on v2 Ingresses
Conclusion
lbernail
A lot of other topics
● Accessing services (kube-proxy)
● DNS (it’s always DNS!)
● Challenges with Stateful applications
● How to DDOS <insert ~anything> with Daemonsets
● Node Lifecycle / Cluster Lifecycle
● Deploying applications
● ...
lbernail
Getting started?
“Deep Dive into Kubernetes Internals for Builders and Operators”
Jérôme Petazzoni, Lisa 2019
https://lisa-2019-10.container.training/talk.yml.html
Minimal cluster, showing interactions between main components
“Kubernetes the Hard Way”
Kelsey Hightower
https://github.com/kelseyhightower/kubernetes-the-hard-way
HA control plane with encryption
lbernail
You like horror stories?
“Kubernetes the very hard way at Datadog”
https://www.youtube.com/watch?v=2dsCwp_j0yQ
“10 ways to shoot yourself in the foot with Kubernetes”
https://www.youtube.com/watch?v=QKI-JRs2RIE
“Kubernetes Failure Stories”
https://k8s.af
lbernail
Key lessons
Self-managed Kubernetes is hard
> If you can, use a managed service
Networking is not easy (especially at scale)
The main challenge is not technical
> Build a team
> Transforming practices and training users is very important
Thank you
We’re hiring!
https://www.datadoghq.com/careers/
laurent@datadoghq.com
@lbernail

More Related Content

What's hot

Web scale infrastructures with kubernetes and flannel
Web scale infrastructures with kubernetes and flannelWeb scale infrastructures with kubernetes and flannel
Web scale infrastructures with kubernetes and flannel
purpleocean
 

What's hot (20)

Packet Walk(s) In Kubernetes
Packet Walk(s) In KubernetesPacket Walk(s) In Kubernetes
Packet Walk(s) In Kubernetes
 
Kubernetes: Beyond Baby Steps
Kubernetes: Beyond Baby StepsKubernetes: Beyond Baby Steps
Kubernetes: Beyond Baby Steps
 
[오픈소스컨설팅] Linux Network Troubleshooting
[오픈소스컨설팅] Linux Network Troubleshooting[오픈소스컨설팅] Linux Network Troubleshooting
[오픈소스컨설팅] Linux Network Troubleshooting
 
Deeper dive in Docker Overlay Networks
Deeper dive in Docker Overlay NetworksDeeper dive in Docker Overlay Networks
Deeper dive in Docker Overlay Networks
 
Kubernetes internals (Kubernetes 해부하기)
Kubernetes internals (Kubernetes 해부하기)Kubernetes internals (Kubernetes 해부하기)
Kubernetes internals (Kubernetes 해부하기)
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
Deep dive in Docker Overlay Networks
Deep dive in Docker Overlay NetworksDeep dive in Docker Overlay Networks
Deep dive in Docker Overlay Networks
 
Networking in Kubernetes
Networking in KubernetesNetworking in Kubernetes
Networking in Kubernetes
 
DCUS17 : Docker networking deep dive
DCUS17 : Docker networking deep diveDCUS17 : Docker networking deep dive
DCUS17 : Docker networking deep dive
 
IP Virtual Server(IPVS) 101
IP Virtual Server(IPVS) 101IP Virtual Server(IPVS) 101
IP Virtual Server(IPVS) 101
 
DevOps Guide to Container Networking
DevOps Guide to Container NetworkingDevOps Guide to Container Networking
DevOps Guide to Container Networking
 
Web scale infrastructures with kubernetes and flannel
Web scale infrastructures with kubernetes and flannelWeb scale infrastructures with kubernetes and flannel
Web scale infrastructures with kubernetes and flannel
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
Docker storage designing a platform for persistent data
Docker storage designing a platform for persistent dataDocker storage designing a platform for persistent data
Docker storage designing a platform for persistent data
 
[OpenInfra Days Korea 2018] Day 2 - E6 - OpenInfra monitoring with Prometheus
[OpenInfra Days Korea 2018] Day 2 - E6 - OpenInfra monitoring with Prometheus[OpenInfra Days Korea 2018] Day 2 - E6 - OpenInfra monitoring with Prometheus
[OpenInfra Days Korea 2018] Day 2 - E6 - OpenInfra monitoring with Prometheus
 
AWS re:Invent 2016: Amazon ECR Deep Dive on Image Optimization (CON401)
AWS re:Invent 2016: Amazon ECR Deep Dive on Image Optimization (CON401)AWS re:Invent 2016: Amazon ECR Deep Dive on Image Optimization (CON401)
AWS re:Invent 2016: Amazon ECR Deep Dive on Image Optimization (CON401)
 
Load Balancing 101
Load Balancing 101Load Balancing 101
Load Balancing 101
 
KubeCon EU 2016: Creating an Advanced Load Balancing Solution for Kubernetes ...
KubeCon EU 2016: Creating an Advanced Load Balancing Solution for Kubernetes ...KubeCon EU 2016: Creating an Advanced Load Balancing Solution for Kubernetes ...
KubeCon EU 2016: Creating an Advanced Load Balancing Solution for Kubernetes ...
 
Kernel load-balancing for Docker containers using IPVS
Kernel load-balancing for Docker containers using IPVSKernel load-balancing for Docker containers using IPVS
Kernel load-balancing for Docker containers using IPVS
 
Clocker - The Docker Cloud Maker
Clocker - The Docker Cloud MakerClocker - The Docker Cloud Maker
Clocker - The Docker Cloud Maker
 

Similar to Kubernetes the Very Hard Way. Velocity Berlin 2019

kubeadm Cluster Creation Internals_ From Self-Hosting to Upgradability and HA...
kubeadm Cluster Creation Internals_ From Self-Hosting to Upgradability and HA...kubeadm Cluster Creation Internals_ From Self-Hosting to Upgradability and HA...
kubeadm Cluster Creation Internals_ From Self-Hosting to Upgradability and HA...
ssuser92b4be
 
kubernetesssssssssssssssssssssssssss.pdf
kubernetesssssssssssssssssssssssssss.pdfkubernetesssssssssssssssssssssssssss.pdf
kubernetesssssssssssssssssssssssssss.pdf
bchiriamina2
 

Similar to Kubernetes the Very Hard Way. Velocity Berlin 2019 (20)

All the troubles you get into when setting up a production ready Kubernetes c...
All the troubles you get into when setting up a production ready Kubernetes c...All the troubles you get into when setting up a production ready Kubernetes c...
All the troubles you get into when setting up a production ready Kubernetes c...
 
AgileTW Feat. DevOpsTW: 維運 Kubernetes 的兩三事
AgileTW Feat. DevOpsTW: 維運 Kubernetes 的兩三事AgileTW Feat. DevOpsTW: 維運 Kubernetes 的兩三事
AgileTW Feat. DevOpsTW: 維運 Kubernetes 的兩三事
 
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
 
Kubernetes - Sailing a Sea of Containers
Kubernetes - Sailing a Sea of ContainersKubernetes - Sailing a Sea of Containers
Kubernetes - Sailing a Sea of Containers
 
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - DevO...
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - DevO...Running Kubernetes in Production: A Million Ways to Crash Your Cluster - DevO...
Running Kubernetes in Production: A Million Ways to Crash Your Cluster - DevO...
 
Run the elastic stack on kubernetes with eck
Run the elastic stack on kubernetes with eck   Run the elastic stack on kubernetes with eck
Run the elastic stack on kubernetes with eck
 
Lessons learned and challenges faced while running Kubernetes at Scale
Lessons learned and challenges faced while running Kubernetes at ScaleLessons learned and challenges faced while running Kubernetes at Scale
Lessons learned and challenges faced while running Kubernetes at Scale
 
kubeadm Cluster Creation Internals_ From Self-Hosting to Upgradability and HA...
kubeadm Cluster Creation Internals_ From Self-Hosting to Upgradability and HA...kubeadm Cluster Creation Internals_ From Self-Hosting to Upgradability and HA...
kubeadm Cluster Creation Internals_ From Self-Hosting to Upgradability and HA...
 
AKS
AKSAKS
AKS
 
Kubernetes security with AWS
Kubernetes security with AWSKubernetes security with AWS
Kubernetes security with AWS
 
DevOpsDaysRiga 2018: Andrew Martin - Continuous Kubernetes Security
DevOpsDaysRiga 2018: Andrew Martin - Continuous Kubernetes Security DevOpsDaysRiga 2018: Andrew Martin - Continuous Kubernetes Security
DevOpsDaysRiga 2018: Andrew Martin - Continuous Kubernetes Security
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Production Ready Kafka on Kubernetes (Devandra Tagare, Lyft) Kafka Summit SF ...
Production Ready Kafka on Kubernetes (Devandra Tagare, Lyft) Kafka Summit SF ...Production Ready Kafka on Kubernetes (Devandra Tagare, Lyft) Kafka Summit SF ...
Production Ready Kafka on Kubernetes (Devandra Tagare, Lyft) Kafka Summit SF ...
 
OSS Japan 2019 service mesh bridging Kubernetes and legacy
OSS Japan 2019 service mesh bridging Kubernetes and legacyOSS Japan 2019 service mesh bridging Kubernetes and legacy
OSS Japan 2019 service mesh bridging Kubernetes and legacy
 
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...
 
Introduction kubernetes 2017_12_24
Introduction kubernetes 2017_12_24Introduction kubernetes 2017_12_24
Introduction kubernetes 2017_12_24
 
Container orchestration and microservices world
Container orchestration and microservices worldContainer orchestration and microservices world
Container orchestration and microservices world
 
K8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals TrainingK8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals Training
 
kubernetesssssssssssssssssssssssssss.pdf
kubernetesssssssssssssssssssssssssss.pdfkubernetesssssssssssssssssssssssssss.pdf
kubernetesssssssssssssssssssssssssss.pdf
 
Kubermatic How to Migrate 100 Clusters from On-Prem to Google Cloud Without D...
Kubermatic How to Migrate 100 Clusters from On-Prem to Google Cloud Without D...Kubermatic How to Migrate 100 Clusters from On-Prem to Google Cloud Without D...
Kubermatic How to Migrate 100 Clusters from On-Prem to Google Cloud Without D...
 

More from Laurent Bernaille

More from Laurent Bernaille (7)

Kubernetes DNS Horror Stories
Kubernetes DNS Horror StoriesKubernetes DNS Horror Stories
Kubernetes DNS Horror Stories
 
10 ways to shoot yourself in the foot with kubernetes, #9 will surprise you!
10 ways to shoot yourself in the foot with kubernetes, #9 will surprise you!10 ways to shoot yourself in the foot with kubernetes, #9 will surprise you!
10 ways to shoot yourself in the foot with kubernetes, #9 will surprise you!
 
Discovering OpenBSD on AWS
Discovering OpenBSD on AWSDiscovering OpenBSD on AWS
Discovering OpenBSD on AWS
 
Operational challenges behind Serverless architectures
Operational challenges behind Serverless architecturesOperational challenges behind Serverless architectures
Operational challenges behind Serverless architectures
 
Feedback on AWS re:invent 2016
Feedback on AWS re:invent 2016Feedback on AWS re:invent 2016
Feedback on AWS re:invent 2016
 
Early recognition of encryted applications
Early recognition of encryted applicationsEarly recognition of encryted applications
Early recognition of encryted applications
 
Early application identification. CONEXT 2006
Early application identification. CONEXT 2006Early application identification. CONEXT 2006
Early application identification. CONEXT 2006
 

Recently uploaded

Recently uploaded (20)

Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 

Kubernetes the Very Hard Way. Velocity Berlin 2019