SlideShare a Scribd company logo
1 of 46
CONTINUOUS DELIVERY.
CONTINUOUS DEVOPS.
Professional conference on DevOps practices
6APRIL 2019
KYIV, UKRAINE
th
Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINE
STANISLAV KOLENKIN
Сonnection pool Kubernetes
clusters: Federation and Networks
th
Introduction
3
Running on Kubernetes has gotten much easier:
• Dynamic volume provisioning
• Statefulsets
• Multi-zone clusters
• Helm Charts
• Operators
• Managed Kubernetes services
Introduction
4
Kubernetes is easy unless ….
5
Why run a system across multiple regions?
6
• Improve latency for end-users
• Disaster recovery
• Fault tolerance
• Business requirements
Let’s talk about running across k8s clusters
7
• Why is it hard?
• What do you need to know to get started?
• Solutions
What’s so hard about spanning across clusters?
8
Multi-Region == Multi-Kubernetes clusters
• Kubernetes is not designed to span WANs
− Originally didn’t even want to have to span datacenters/AZs within a region, but
the community fought for that and made it happen
• Try to run a single k8s cluster across regions at your own risk
Running StatefulSet in Kubernetes
9
• StatefulSet application requires three things:
1. Each node has persistent storage that survives restarts
2. Each node has a network address that survives restarts
3. Each node can communicate directly with every other node
• Kubernetes providers these very well within a single cluster
• Across multiple Kubernetes clusters, we lose #2 and often #3
The core problems: what’s missing?
10
• It all comes down to networking:
− Pod-to-Pod communication across clusters
− Pod-to-Pod communication across private networks (e,g, cloud VPCs)
− Persistent address that works both within and between clusters
Kubernetes networking
11
• Kubernetes doesn’t care how it’s done, but it requires that:
1. Each pod has its own IP address
2. The IP that a pod sees itself as is the same IP that others see it as
3. All pods can communicate with all other pods without NAT
• From the very beginning, Kubernetes made these specific requirements about
what the network in a cluster must enable
− Since then, dozen of solutions have been built to satisfy those requirements
• But the multi-cluster scenario is left completely unspecified
Kubernetes networking
12
Kubernetes networking
13
• Some enable pod-to-pod communications across clusters out of the box
− e.g. GKE, EKS
• Some make it fairly easy to enable
− e.g. AKS (“advanced” network mode), Cilium (“cluster mesh”)
• It can be quite difficult in others
Multi-cluster solutions
14
• The options as of earlier years all have one problem or another
− Don’t work in subsets of environments
− Break easily if operator doesn’t know exactly what they’re doing
− Use a slow, less reliable datapath
− Don’t work with TLS certificates
− Rely on a relatively immature, complex system
Solution #1: Static pod placement +
HostNetwork
15
• `HostNetwork` option lets a pod use the host machine’s network directly
• Use each host’s routable IP address for all communication
• Statically assign pods to machines so that all nodes IPs stay the same
Solution #1: Static pod placement + Public IPs
16
• Pros
− Works even when pod-to-pod communication between clusters doesn’t
− No moving parts, no need to configure a cross-cluster naming service
− Using `HostNetwork` can actually give a nice performance boost
• Cons
− Depends on host public IPs not changing
• Some cloud providers delete and recreate VMs during node upgrades
− Requires a lot of manual config-file editing and certificate creating
− Uses up valuable ports on the host machines, can hit port conflicts
Solution #2: load balancer (External or Internal)
for each node
17
• Create a public or internal load balancer for each application pod
− It’s really easy to expose a service with a load balancer in all the major cloud
providers
• Have all pods connect to each other with the load balancer IPs/DNS names
Internal Load Balancing makes your cluster's services accessible to applications
outside of your cluster that use the same VPC network and that are located in the
same GCP region.
Solution #2: load balancer (External or Internal)
for each node
18
Pros
• Works even when pod-to-pod communication between clusters doesn’t
• Continues working even as Kubernetes hosts churn in/out of the cluster
• No need to configure a cross-cluster naming service
− Because the load balancer addresses never change once they’re created
Solution #2: load balancer (External or Internal)
for each node
19
Cons
• Extra hops on data path on all but the most sophisticated load balancers
− src pod->src host->LB->random host->dst host->dst port
• Need to create new service and LB whenever you want to scale up
• Can be expensive to run so many load balancers
• Requires provisionable load balanced addresses - not always available on-prem
• A lot of manual config-file editing and cert creating with LB addresses
− Informing each pod of its public IP requires pretty complex configuration
Solution #3: Use pod IPs directly
20
• Just let pods advertise their IPs to each other directly
• Handling of node address changes to deal with the inevitable churn as pods move
to different nodes and get different IPs
• Set up an internal load balancer for the connection services
Solution #3: Use pod IPs directly
21
Pros:
• No overhead on data path (except normal Docker overhead)
• Very resilient to changes like hosts being removed/added/restarted
• Very little manual work needed to configure and maintain
Cons:
• Network must support direct po-to-pod communication across clusters
• Because IP addresses can change across pod deletions/recreations, creating
TLS certificates that can stand up to hostname verification is very tricky
Solution #4: DNS chaining
22
• Basically: how can we add persistent names to the previous solution?
• Configure DNS to serve the handless service entries from other clusters
− How?
Solution #4: DNS chaining
23
• Option 1: Use CoreDNS instead of the kube-dns service
− CoreDNS allows for much more customization, including plugins that allow it to watch
multiple Kubernetes apiservers
• https://github.com/coredns/kubernetai was written to do just what we want
• But swapping CoreDNS in for kube-dns on managed offerings is shockingly
difficult
− As is customizing each cluster’s DNS domain from the `cluster.local.` default, which
would be important for this approach
• CoreDNS is becoming the standard ad of 1.13
Solution #4: DNS chaining
24
• Option 1.5: Use CoreDNS alongside the default kube-dns service
− Configure kube-dns to defer certain lookups to CoreDNS
− Configure CoreDNS to watch the other k8s clusters apiservers
− Add in some CoreDNS rewrite rules to make cross-cluster lookups work out
− Haven’t properly tried this out so I’m being a little fuzzy on the details
• Option 2: Take matters into our own hands
− Write a controller that copies services from one cluster to another
− Then just rely on those services being populated in DNS
− Kubernetes is just an API, nothing stopping anyone from doing this
Solution #4: DNS chaining
25
• Option 3: Chain DNS servers together using “sub domains”
− Use KubeDNS config feature to defer DNS lookups for certain domains to the
nameserver of your choice
− Configure KubeDNS in us-central1 to redirect lookups for `*.us-west1-a.cluster.local` to
the us-west1-a cluster’s DNS service
Solution #4: DNS chaining
26
Pros of using stub domains:
• No overhead on data path (except normal Docker overhead)
• Very resilient to changes like hosts being removed/added/restarted
• No need to configure a cross-cluster naming service
• Very little manual work needed to get running (totally scriptable)
Cons of using stub domains:
• Network must support direct po-to-pod communication across clusters
• Need to set up load balanced endpoints for each DNS server
− Cloud support for this isn’t great….
Solution #5: Istio
27
• Istio has been working on a “multi-cluster” mode to handle the problem of
addressing services across clusters
− It’s explicitly not addressing the problem of prod-to-pod connectivity, though -- just naming
• Install Istio control plane in one primary k8s cluster, then install special “istio-
remote” components in others
Solution #5: Istio
28
Pros:
• Under very active development, looks likely to improve over time
• Small overhead on data path (packets go through Envoy proxy)
• Very resilient to changes like hosts being removed/added/restarted
Cons:
• Still immature - entire control plane runs in a single k8s cluster (single point of
failure)
• Very involved setup process
• Docs say “production environment might require additional steps”, at least one of
which essentially boils down to solving this problem for the Istio components
themselves
• Requires copying k8s cluster credentials into each other (potential security risk)
Solution #6: Roll your own
29
• Can always do your own thing:
− Set up your own custom DNS servers outside Kubernetes
− Set up your own auto-certificate approver for pod IPs then use them directly
− Manage your own clusters, use CoreDNS, and modify it as you please
− Set up your own proxy servers to manage stable, routable addresses
− Etc...
• Tough for us to widely recommend due to environmental differences, but actually
quite reasonable if you have a single stable environment
Solution #7: Federation
30
• Creates matching Kubernetes Services in every cluster underlying your Cluster
Federation.
• Monitors the health of those service “shards” (and the clusters in which they
reside).
• Manages a set of DNS records in a public DNS provider (like Google Cloud DNS,
or AWS Route 53), thus ensuring that clients of your federated service can
seamlessly locate an appropriate healthy service endpoint at all times, even in the
event of cluster, availability zone or regional outages.
Solution #7: Federation
31
Federation v1:
Until Kubernetes version 1.8.x the federation project was maintained as part of the
core kubernetes repo. Between Kubernetes releases 1.8 and 1.9, the federation
project moved into a separate federation repo, where it is now maintained.
The federation v2 deployment requires kubernetes version >= 1.11.
Solution #7: Federation
32
Solution #7: Federation v2
33
Solution #8: GCP+GKE
34
Solution #8: GCP+GKE
35
• Use GKE with VPC-native
• Shared projects
• Internal LoadBalancer or Istio
• Federation
Solution #8: GCP+GKE
36
Solution #9: AWS Kubernetes
37
• amazon-vpc-cni-k8s
Networking plugin for pod networking in Kubernetes using Elastic Network
Interfaces on AWS.
• VPC peering
• Internal Load Balancer
• Istio
• Federation
Solution #10: Cloud-agnostic
38
How to connect Kubernetes clusters in different Clouds?
Solution #10: Cloud-agnostic
39
Solution #10: Cloud-agnostic
40
Solution #10: Cloud-agnostic
41
• Kubernetes on AWS
• Kubernetes on GCP
• Calico
• Calico Route Reflector
• Cloud VPN peering
• Istio or Internal Load Balancer
Conclusion
42
• Multi-cluster networking is a bit of minefield
− Left completely unspecified, so different installations can vary wildly
− Very little has been done about it four years
• Even after you nail po-dpo-pod connectivity, you still have to solve naming
• People are finally starting to care, though! (e.g. Cilium, Istio, Linkerd, Upbound)
• It’s hard to recommend a single answer for everyone, but there are very reliable
options if you’re willing go spend some time up-front on setup
Conclusion
43
• Federation:​
Pros:
− fast development;​
− it works​
Cons:
- not ready for production;
- a lot of bugs
Conclusion
44
• Istio multi-cloud:​
Pros:
- It is works
Cons:
- not ready for production;​
- you must solve problem with a pod2pod routings;​
- you must solve problem with a istio control plane pod IPs;​
Thank you for your attention!
Questions?
CONTACTS:
Email: stas.kolenkin@gmail.com
Skype: stas.kolenkin

More Related Content

What's hot

Overlay/Underlay - Betting on Container Networking
Overlay/Underlay - Betting on Container NetworkingOverlay/Underlay - Betting on Container Networking
Overlay/Underlay - Betting on Container NetworkingLee Calcote
 
K8s storage-glusterfs-20180210
K8s storage-glusterfs-20180210K8s storage-glusterfs-20180210
K8s storage-glusterfs-20180210Che-Chia Chang
 
Kubernetes networking in AWS
Kubernetes networking in AWSKubernetes networking in AWS
Kubernetes networking in AWSZvika Gazit
 
PuppetConf 2016: Changing the Engine While in Flight – Neil Armitage, VMware
PuppetConf 2016: Changing the Engine While in Flight – Neil Armitage, VMwarePuppetConf 2016: Changing the Engine While in Flight – Neil Armitage, VMware
PuppetConf 2016: Changing the Engine While in Flight – Neil Armitage, VMwarePuppet
 
Unikernels: the rise of the library hypervisor in MirageOS
Unikernels: the rise of the library hypervisor in MirageOSUnikernels: the rise of the library hypervisor in MirageOS
Unikernels: the rise of the library hypervisor in MirageOSDocker, Inc.
 
Docker network performance in the public cloud
Docker network performance in the public cloudDocker network performance in the public cloud
Docker network performance in the public cloudArjan Schaaf
 
Dockerizing OpenStack for High Availability
Dockerizing OpenStack for High AvailabilityDockerizing OpenStack for High Availability
Dockerizing OpenStack for High AvailabilityDaniel Krook
 
Musings on Mesos: Docker, Kubernetes, and Beyond.
Musings on Mesos: Docker, Kubernetes, and Beyond.Musings on Mesos: Docker, Kubernetes, and Beyond.
Musings on Mesos: Docker, Kubernetes, and Beyond.Timothy St. Clair
 
CloudStack Networking at CloudOpen Japan
CloudStack Networking at CloudOpen JapanCloudStack Networking at CloudOpen Japan
CloudStack Networking at CloudOpen JapanKimihiko Kitase
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetesDongwon Kim
 
Docker 1.12 networking deep dive
Docker 1.12 networking deep diveDocker 1.12 networking deep dive
Docker 1.12 networking deep diveMadhu Venugopal
 
Getting Started with XenServer and OpenStack.pptx
Getting Started with XenServer and OpenStack.pptxGetting Started with XenServer and OpenStack.pptx
Getting Started with XenServer and OpenStack.pptxOpenStack Foundation
 
Cloud stack overview
Cloud stack overviewCloud stack overview
Cloud stack overviewhowie YU
 
What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea Luzzardi
What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea LuzzardiWhat's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea Luzzardi
What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea LuzzardiMike Goelzer
 
Docker Meetup 08 03-2016
Docker Meetup 08 03-2016Docker Meetup 08 03-2016
Docker Meetup 08 03-2016Docker
 
Innovating faster with SBT, Continuous Delivery, and LXC
Innovating faster with SBT, Continuous Delivery, and LXCInnovating faster with SBT, Continuous Delivery, and LXC
Innovating faster with SBT, Continuous Delivery, and LXCkscaldef
 
Using CloudStack With Clustered LVM
Using CloudStack With Clustered LVMUsing CloudStack With Clustered LVM
Using CloudStack With Clustered LVMMarcus L Sorensen
 

What's hot (20)

Overlay/Underlay - Betting on Container Networking
Overlay/Underlay - Betting on Container NetworkingOverlay/Underlay - Betting on Container Networking
Overlay/Underlay - Betting on Container Networking
 
K8s storage-glusterfs-20180210
K8s storage-glusterfs-20180210K8s storage-glusterfs-20180210
K8s storage-glusterfs-20180210
 
Kubernetes networking in AWS
Kubernetes networking in AWSKubernetes networking in AWS
Kubernetes networking in AWS
 
PuppetConf 2016: Changing the Engine While in Flight – Neil Armitage, VMware
PuppetConf 2016: Changing the Engine While in Flight – Neil Armitage, VMwarePuppetConf 2016: Changing the Engine While in Flight – Neil Armitage, VMware
PuppetConf 2016: Changing the Engine While in Flight – Neil Armitage, VMware
 
Container Networking Deep Dive
Container Networking Deep DiveContainer Networking Deep Dive
Container Networking Deep Dive
 
Unikernels: the rise of the library hypervisor in MirageOS
Unikernels: the rise of the library hypervisor in MirageOSUnikernels: the rise of the library hypervisor in MirageOS
Unikernels: the rise of the library hypervisor in MirageOS
 
Docker network performance in the public cloud
Docker network performance in the public cloudDocker network performance in the public cloud
Docker network performance in the public cloud
 
Dockerizing OpenStack for High Availability
Dockerizing OpenStack for High AvailabilityDockerizing OpenStack for High Availability
Dockerizing OpenStack for High Availability
 
Musings on Mesos: Docker, Kubernetes, and Beyond.
Musings on Mesos: Docker, Kubernetes, and Beyond.Musings on Mesos: Docker, Kubernetes, and Beyond.
Musings on Mesos: Docker, Kubernetes, and Beyond.
 
CloudStack Networking at CloudOpen Japan
CloudStack Networking at CloudOpen JapanCloudStack Networking at CloudOpen Japan
CloudStack Networking at CloudOpen Japan
 
OpenStack Icehouse Overview
OpenStack Icehouse OverviewOpenStack Icehouse Overview
OpenStack Icehouse Overview
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
 
Docker 1.12 networking deep dive
Docker 1.12 networking deep diveDocker 1.12 networking deep dive
Docker 1.12 networking deep dive
 
Getting Started with XenServer and OpenStack.pptx
Getting Started with XenServer and OpenStack.pptxGetting Started with XenServer and OpenStack.pptx
Getting Started with XenServer and OpenStack.pptx
 
Cloud stack overview
Cloud stack overviewCloud stack overview
Cloud stack overview
 
What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea Luzzardi
What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea LuzzardiWhat's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea Luzzardi
What's New in Docker 1.12 (June 20, 2016) by Mike Goelzer & Andrea Luzzardi
 
Docker Meetup 08 03-2016
Docker Meetup 08 03-2016Docker Meetup 08 03-2016
Docker Meetup 08 03-2016
 
Innovating faster with SBT, Continuous Delivery, and LXC
Innovating faster with SBT, Continuous Delivery, and LXCInnovating faster with SBT, Continuous Delivery, and LXC
Innovating faster with SBT, Continuous Delivery, and LXC
 
Using CloudStack With Clustered LVM
Using CloudStack With Clustered LVMUsing CloudStack With Clustered LVM
Using CloudStack With Clustered LVM
 
Running Legacy Applications with Containers
Running Legacy Applications with ContainersRunning Legacy Applications with Containers
Running Legacy Applications with Containers
 

Similar to DevOps Fest 2019. Stanislav Kolenkin. Сonnecting pool Kubernetes clusters: Federation and Networks

Running a distributed system across kubernetes clusters - Kubecon North Ameri...
Running a distributed system across kubernetes clusters - Kubecon North Ameri...Running a distributed system across kubernetes clusters - Kubecon North Ameri...
Running a distributed system across kubernetes clusters - Kubecon North Ameri...Alex Robinson
 
KuberNETes - meetup
KuberNETes - meetupKuberNETes - meetup
KuberNETes - meetupNathan Ness
 
Webinar- Tea for the Tillerman
Webinar- Tea for the TillermanWebinar- Tea for the Tillerman
Webinar- Tea for the TillermanCumulus Networks
 
Kubernetes as Orchestrator for A10 Lightning Controller
Kubernetes as Orchestrator for A10 Lightning ControllerKubernetes as Orchestrator for A10 Lightning Controller
Kubernetes as Orchestrator for A10 Lightning ControllerAkshay Mathur
 
Kubernetes Internals
Kubernetes InternalsKubernetes Internals
Kubernetes InternalsShimi Bandiel
 
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...Tobias Schneck
 
How to Migrate 100 Clusters from On-Prem to Google Cloud Without Downtime
How to Migrate 100 Clusters from On-Prem to Google Cloud Without DowntimeHow to Migrate 100 Clusters from On-Prem to Google Cloud Without Downtime
How to Migrate 100 Clusters from On-Prem to Google Cloud Without Downtimeloodse
 
Learned from KIND
Learned from KIND Learned from KIND
Learned from KIND HungWei Chiu
 
Kubernetes Introduction & Whats new in Kubernetes 1.6
Kubernetes Introduction & Whats new in Kubernetes 1.6Kubernetes Introduction & Whats new in Kubernetes 1.6
Kubernetes Introduction & Whats new in Kubernetes 1.6Opcito Technologies
 
Database as a Service (DBaaS) on Kubernetes
Database as a Service (DBaaS) on KubernetesDatabase as a Service (DBaaS) on Kubernetes
Database as a Service (DBaaS) on KubernetesObjectRocket
 
Container orchestration and microservices world
Container orchestration and microservices worldContainer orchestration and microservices world
Container orchestration and microservices worldKarol Chrapek
 
Sergey Dzyuban "To Build My Own Cloud with Blackjack…"
Sergey Dzyuban "To Build My Own Cloud with Blackjack…"Sergey Dzyuban "To Build My Own Cloud with Blackjack…"
Sergey Dzyuban "To Build My Own Cloud with Blackjack…"Fwdays
 
To Build My Own Cloud with Blackjack…
To Build My Own Cloud with Blackjack…To Build My Own Cloud with Blackjack…
To Build My Own Cloud with Blackjack…Sergey Dzyuban
 
Telepresence - Fast Development Workflows for Kubernetes
Telepresence - Fast Development Workflows for KubernetesTelepresence - Fast Development Workflows for Kubernetes
Telepresence - Fast Development Workflows for KubernetesAmbassador Labs
 
Hybrid Cloud Tutorial Linkedin 2
Hybrid Cloud Tutorial Linkedin 2Hybrid Cloud Tutorial Linkedin 2
Hybrid Cloud Tutorial Linkedin 2David Rilett
 
Open stackaustinmeetupsept21
Open stackaustinmeetupsept21Open stackaustinmeetupsept21
Open stackaustinmeetupsept21Brent Doncaster
 
Container management with docker & kubernetes
Container management with docker & kubernetesContainer management with docker & kubernetes
Container management with docker & kubernetesKasun Rajapakse
 
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetesJuraj Hantak
 

Similar to DevOps Fest 2019. Stanislav Kolenkin. Сonnecting pool Kubernetes clusters: Federation and Networks (20)

Running a distributed system across kubernetes clusters - Kubecon North Ameri...
Running a distributed system across kubernetes clusters - Kubecon North Ameri...Running a distributed system across kubernetes clusters - Kubecon North Ameri...
Running a distributed system across kubernetes clusters - Kubecon North Ameri...
 
KuberNETes - meetup
KuberNETes - meetupKuberNETes - meetup
KuberNETes - meetup
 
Webinar- Tea for the Tillerman
Webinar- Tea for the TillermanWebinar- Tea for the Tillerman
Webinar- Tea for the Tillerman
 
Kubernetes as Orchestrator for A10 Lightning Controller
Kubernetes as Orchestrator for A10 Lightning ControllerKubernetes as Orchestrator for A10 Lightning Controller
Kubernetes as Orchestrator for A10 Lightning Controller
 
Kubernetes Internals
Kubernetes InternalsKubernetes Internals
Kubernetes Internals
 
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...
 
How to Migrate 100 Clusters from On-Prem to Google Cloud Without Downtime
How to Migrate 100 Clusters from On-Prem to Google Cloud Without DowntimeHow to Migrate 100 Clusters from On-Prem to Google Cloud Without Downtime
How to Migrate 100 Clusters from On-Prem to Google Cloud Without Downtime
 
Learned from KIND
Learned from KIND Learned from KIND
Learned from KIND
 
Kubernetes Introduction & Whats new in Kubernetes 1.6
Kubernetes Introduction & Whats new in Kubernetes 1.6Kubernetes Introduction & Whats new in Kubernetes 1.6
Kubernetes Introduction & Whats new in Kubernetes 1.6
 
Database as a Service (DBaaS) on Kubernetes
Database as a Service (DBaaS) on KubernetesDatabase as a Service (DBaaS) on Kubernetes
Database as a Service (DBaaS) on Kubernetes
 
Container orchestration and microservices world
Container orchestration and microservices worldContainer orchestration and microservices world
Container orchestration and microservices world
 
Big data, better networks
Big data, better networksBig data, better networks
Big data, better networks
 
Sergey Dzyuban "To Build My Own Cloud with Blackjack…"
Sergey Dzyuban "To Build My Own Cloud with Blackjack…"Sergey Dzyuban "To Build My Own Cloud with Blackjack…"
Sergey Dzyuban "To Build My Own Cloud with Blackjack…"
 
To Build My Own Cloud with Blackjack…
To Build My Own Cloud with Blackjack…To Build My Own Cloud with Blackjack…
To Build My Own Cloud with Blackjack…
 
Telepresence - Fast Development Workflows for Kubernetes
Telepresence - Fast Development Workflows for KubernetesTelepresence - Fast Development Workflows for Kubernetes
Telepresence - Fast Development Workflows for Kubernetes
 
Hybrid Cloud Tutorial Linkedin 2
Hybrid Cloud Tutorial Linkedin 2Hybrid Cloud Tutorial Linkedin 2
Hybrid Cloud Tutorial Linkedin 2
 
Open stackaustinmeetupsept21
Open stackaustinmeetupsept21Open stackaustinmeetupsept21
Open stackaustinmeetupsept21
 
Container management with docker & kubernetes
Container management with docker & kubernetesContainer management with docker & kubernetes
Container management with docker & kubernetes
 
Kubernetes intro
Kubernetes introKubernetes intro
Kubernetes intro
 
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
4. CNCF kubernetes Comparison of-existing-cni-plugins-for-kubernetes
 

More from DevOps_Fest

DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...
DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...
DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...DevOps_Fest
 
DevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CD
DevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CDDevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CD
DevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CDDevOps_Fest
 
DevOps Fest 2020. Барух Садогурский и Леонид Игольник. Устраиваем DevOps без ...
DevOps Fest 2020. Барух Садогурский и Леонид Игольник. Устраиваем DevOps без ...DevOps Fest 2020. Барух Садогурский и Леонид Игольник. Устраиваем DevOps без ...
DevOps Fest 2020. Барух Садогурский и Леонид Игольник. Устраиваем DevOps без ...DevOps_Fest
 
DevOps Fest 2020. James Spiteri. Advanced Security Operations with Elastic Se...
DevOps Fest 2020. James Spiteri. Advanced Security Operations with Elastic Se...DevOps Fest 2020. James Spiteri. Advanced Security Operations with Elastic Se...
DevOps Fest 2020. James Spiteri. Advanced Security Operations with Elastic Se...DevOps_Fest
 
DevOps Fest 2020. Pavlo Repalo. Edge Computing: Appliance and Challanges
DevOps Fest 2020. Pavlo Repalo. Edge Computing: Appliance and ChallangesDevOps Fest 2020. Pavlo Repalo. Edge Computing: Appliance and Challanges
DevOps Fest 2020. Pavlo Repalo. Edge Computing: Appliance and ChallangesDevOps_Fest
 
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...DevOps_Fest
 
DevOps Fest 2020. Павел Жданов та Никора Никита. Построение процесса CI\CD дл...
DevOps Fest 2020. Павел Жданов та Никора Никита. Построение процесса CI\CD дл...DevOps Fest 2020. Павел Жданов та Никора Никита. Построение процесса CI\CD дл...
DevOps Fest 2020. Павел Жданов та Никора Никита. Построение процесса CI\CD дл...DevOps_Fest
 
DevOps Fest 2020. Станислав Коленкин. How to connect non-connectible: tips, t...
DevOps Fest 2020. Станислав Коленкин. How to connect non-connectible: tips, t...DevOps Fest 2020. Станислав Коленкин. How to connect non-connectible: tips, t...
DevOps Fest 2020. Станислав Коленкин. How to connect non-connectible: tips, t...DevOps_Fest
 
DevOps Fest 2020. Андрій Шабалін. Distributed Tracing for microservices with ...
DevOps Fest 2020. Андрій Шабалін. Distributed Tracing for microservices with ...DevOps Fest 2020. Андрій Шабалін. Distributed Tracing for microservices with ...
DevOps Fest 2020. Андрій Шабалін. Distributed Tracing for microservices with ...DevOps_Fest
 
DevOps Fest 2020. Дмитрий Кудрявцев. Реализация GitOps на Kubernetes. ArgoCD
DevOps Fest 2020. Дмитрий Кудрявцев. Реализация GitOps на Kubernetes. ArgoCDDevOps Fest 2020. Дмитрий Кудрявцев. Реализация GitOps на Kubernetes. ArgoCD
DevOps Fest 2020. Дмитрий Кудрявцев. Реализация GitOps на Kubernetes. ArgoCDDevOps_Fest
 
DevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в Kubernetes
DevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в KubernetesDevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в Kubernetes
DevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в KubernetesDevOps_Fest
 
DevOps Fest 2020. Андрей Шишенко. CI/CD for AWS Lambdas with Serverless frame...
DevOps Fest 2020. Андрей Шишенко. CI/CD for AWS Lambdas with Serverless frame...DevOps Fest 2020. Андрей Шишенко. CI/CD for AWS Lambdas with Serverless frame...
DevOps Fest 2020. Андрей Шишенко. CI/CD for AWS Lambdas with Serverless frame...DevOps_Fest
 
DevOps Fest 2020. Александр Глущенко. Modern Enterprise Network Architecture ...
DevOps Fest 2020. Александр Глущенко. Modern Enterprise Network Architecture ...DevOps Fest 2020. Александр Глущенко. Modern Enterprise Network Architecture ...
DevOps Fest 2020. Александр Глущенко. Modern Enterprise Network Architecture ...DevOps_Fest
 
DevOps Fest 2020. Виталий Складчиков. Сквозь монолитный enterprise к микросер...
DevOps Fest 2020. Виталий Складчиков. Сквозь монолитный enterprise к микросер...DevOps Fest 2020. Виталий Складчиков. Сквозь монолитный enterprise к микросер...
DevOps Fest 2020. Виталий Складчиков. Сквозь монолитный enterprise к микросер...DevOps_Fest
 
DevOps Fest 2020. Денис Медведенко. Управление сложными многокомпонентными ин...
DevOps Fest 2020. Денис Медведенко. Управление сложными многокомпонентными ин...DevOps Fest 2020. Денис Медведенко. Управление сложными многокомпонентными ин...
DevOps Fest 2020. Денис Медведенко. Управление сложными многокомпонентными ин...DevOps_Fest
 
DevOps Fest 2020. Павел Галушко. Что делать devops'у если у вас захотели mach...
DevOps Fest 2020. Павел Галушко. Что делать devops'у если у вас захотели mach...DevOps Fest 2020. Павел Галушко. Что делать devops'у если у вас захотели mach...
DevOps Fest 2020. Павел Галушко. Что делать devops'у если у вас захотели mach...DevOps_Fest
 
DevOps Fest 2020. Сергей Абаничев. Modern CI\CD pipeline with Azure DevOps
DevOps Fest 2020. Сергей Абаничев. Modern CI\CD pipeline with Azure DevOpsDevOps Fest 2020. Сергей Абаничев. Modern CI\CD pipeline with Azure DevOps
DevOps Fest 2020. Сергей Абаничев. Modern CI\CD pipeline with Azure DevOpsDevOps_Fest
 
DevOps Fest 2020. Philipp Krenn. Scale Your Auditing Events
DevOps Fest 2020. Philipp Krenn. Scale Your Auditing EventsDevOps Fest 2020. Philipp Krenn. Scale Your Auditing Events
DevOps Fest 2020. Philipp Krenn. Scale Your Auditing EventsDevOps_Fest
 
DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...
DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...
DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...DevOps_Fest
 
DevOps Fest 2020. Денис Васильев. Let's make it KUL! Kubernetes Ultra Light
DevOps Fest 2020. Денис Васильев. Let's make it KUL! Kubernetes Ultra LightDevOps Fest 2020. Денис Васильев. Let's make it KUL! Kubernetes Ultra Light
DevOps Fest 2020. Денис Васильев. Let's make it KUL! Kubernetes Ultra LightDevOps_Fest
 

More from DevOps_Fest (20)

DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...
DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...
DevOps Fest 2020. Сергій Калінець. Building Data Streaming Platform with Apac...
 
DevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CD
DevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CDDevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CD
DevOps Fest 2020. Kohsuke Kawaguchi. GitOps, Jenkins X & the Future of CI/CD
 
DevOps Fest 2020. Барух Садогурский и Леонид Игольник. Устраиваем DevOps без ...
DevOps Fest 2020. Барух Садогурский и Леонид Игольник. Устраиваем DevOps без ...DevOps Fest 2020. Барух Садогурский и Леонид Игольник. Устраиваем DevOps без ...
DevOps Fest 2020. Барух Садогурский и Леонид Игольник. Устраиваем DevOps без ...
 
DevOps Fest 2020. James Spiteri. Advanced Security Operations with Elastic Se...
DevOps Fest 2020. James Spiteri. Advanced Security Operations with Elastic Se...DevOps Fest 2020. James Spiteri. Advanced Security Operations with Elastic Se...
DevOps Fest 2020. James Spiteri. Advanced Security Operations with Elastic Se...
 
DevOps Fest 2020. Pavlo Repalo. Edge Computing: Appliance and Challanges
DevOps Fest 2020. Pavlo Repalo. Edge Computing: Appliance and ChallangesDevOps Fest 2020. Pavlo Repalo. Edge Computing: Appliance and Challanges
DevOps Fest 2020. Pavlo Repalo. Edge Computing: Appliance and Challanges
 
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
DevOps Fest 2020. Максим Безуглый. DevOps - как архитектура в процессе. Две к...
 
DevOps Fest 2020. Павел Жданов та Никора Никита. Построение процесса CI\CD дл...
DevOps Fest 2020. Павел Жданов та Никора Никита. Построение процесса CI\CD дл...DevOps Fest 2020. Павел Жданов та Никора Никита. Построение процесса CI\CD дл...
DevOps Fest 2020. Павел Жданов та Никора Никита. Построение процесса CI\CD дл...
 
DevOps Fest 2020. Станислав Коленкин. How to connect non-connectible: tips, t...
DevOps Fest 2020. Станислав Коленкин. How to connect non-connectible: tips, t...DevOps Fest 2020. Станислав Коленкин. How to connect non-connectible: tips, t...
DevOps Fest 2020. Станислав Коленкин. How to connect non-connectible: tips, t...
 
DevOps Fest 2020. Андрій Шабалін. Distributed Tracing for microservices with ...
DevOps Fest 2020. Андрій Шабалін. Distributed Tracing for microservices with ...DevOps Fest 2020. Андрій Шабалін. Distributed Tracing for microservices with ...
DevOps Fest 2020. Андрій Шабалін. Distributed Tracing for microservices with ...
 
DevOps Fest 2020. Дмитрий Кудрявцев. Реализация GitOps на Kubernetes. ArgoCD
DevOps Fest 2020. Дмитрий Кудрявцев. Реализация GitOps на Kubernetes. ArgoCDDevOps Fest 2020. Дмитрий Кудрявцев. Реализация GitOps на Kubernetes. ArgoCD
DevOps Fest 2020. Дмитрий Кудрявцев. Реализация GitOps на Kubernetes. ArgoCD
 
DevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в Kubernetes
DevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в KubernetesDevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в Kubernetes
DevOps Fest 2020. Роман Орлов. Инфраструктура тестирования в Kubernetes
 
DevOps Fest 2020. Андрей Шишенко. CI/CD for AWS Lambdas with Serverless frame...
DevOps Fest 2020. Андрей Шишенко. CI/CD for AWS Lambdas with Serverless frame...DevOps Fest 2020. Андрей Шишенко. CI/CD for AWS Lambdas with Serverless frame...
DevOps Fest 2020. Андрей Шишенко. CI/CD for AWS Lambdas with Serverless frame...
 
DevOps Fest 2020. Александр Глущенко. Modern Enterprise Network Architecture ...
DevOps Fest 2020. Александр Глущенко. Modern Enterprise Network Architecture ...DevOps Fest 2020. Александр Глущенко. Modern Enterprise Network Architecture ...
DevOps Fest 2020. Александр Глущенко. Modern Enterprise Network Architecture ...
 
DevOps Fest 2020. Виталий Складчиков. Сквозь монолитный enterprise к микросер...
DevOps Fest 2020. Виталий Складчиков. Сквозь монолитный enterprise к микросер...DevOps Fest 2020. Виталий Складчиков. Сквозь монолитный enterprise к микросер...
DevOps Fest 2020. Виталий Складчиков. Сквозь монолитный enterprise к микросер...
 
DevOps Fest 2020. Денис Медведенко. Управление сложными многокомпонентными ин...
DevOps Fest 2020. Денис Медведенко. Управление сложными многокомпонентными ин...DevOps Fest 2020. Денис Медведенко. Управление сложными многокомпонентными ин...
DevOps Fest 2020. Денис Медведенко. Управление сложными многокомпонентными ин...
 
DevOps Fest 2020. Павел Галушко. Что делать devops'у если у вас захотели mach...
DevOps Fest 2020. Павел Галушко. Что делать devops'у если у вас захотели mach...DevOps Fest 2020. Павел Галушко. Что делать devops'у если у вас захотели mach...
DevOps Fest 2020. Павел Галушко. Что делать devops'у если у вас захотели mach...
 
DevOps Fest 2020. Сергей Абаничев. Modern CI\CD pipeline with Azure DevOps
DevOps Fest 2020. Сергей Абаничев. Modern CI\CD pipeline with Azure DevOpsDevOps Fest 2020. Сергей Абаничев. Modern CI\CD pipeline with Azure DevOps
DevOps Fest 2020. Сергей Абаничев. Modern CI\CD pipeline with Azure DevOps
 
DevOps Fest 2020. Philipp Krenn. Scale Your Auditing Events
DevOps Fest 2020. Philipp Krenn. Scale Your Auditing EventsDevOps Fest 2020. Philipp Krenn. Scale Your Auditing Events
DevOps Fest 2020. Philipp Krenn. Scale Your Auditing Events
 
DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...
DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...
DevOps Fest 2020. Володимир Мельник. TuchaKube - перша українська DevOps/Host...
 
DevOps Fest 2020. Денис Васильев. Let's make it KUL! Kubernetes Ultra Light
DevOps Fest 2020. Денис Васильев. Let's make it KUL! Kubernetes Ultra LightDevOps Fest 2020. Денис Васильев. Let's make it KUL! Kubernetes Ultra Light
DevOps Fest 2020. Денис Васильев. Let's make it KUL! Kubernetes Ultra Light
 

Recently uploaded

Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application ) Sakshi Ghasle
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxGaneshChakor2
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
PSYCHIATRIC History collection FORMAT.pptx
PSYCHIATRIC   History collection FORMAT.pptxPSYCHIATRIC   History collection FORMAT.pptx
PSYCHIATRIC History collection FORMAT.pptxPoojaSen20
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppCeline George
 
Micromeritics - Fundamental and Derived Properties of Powders
Micromeritics - Fundamental and Derived Properties of PowdersMicromeritics - Fundamental and Derived Properties of Powders
Micromeritics - Fundamental and Derived Properties of PowdersChitralekhaTherkar
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Celine George
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 

Recently uploaded (20)

Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application )
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
PSYCHIATRIC History collection FORMAT.pptx
PSYCHIATRIC   History collection FORMAT.pptxPSYCHIATRIC   History collection FORMAT.pptx
PSYCHIATRIC History collection FORMAT.pptx
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website App
 
Micromeritics - Fundamental and Derived Properties of Powders
Micromeritics - Fundamental and Derived Properties of PowdersMicromeritics - Fundamental and Derived Properties of Powders
Micromeritics - Fundamental and Derived Properties of Powders
 
Staff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSDStaff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSD
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 

DevOps Fest 2019. Stanislav Kolenkin. Сonnecting pool Kubernetes clusters: Federation and Networks

  • 1. CONTINUOUS DELIVERY. CONTINUOUS DEVOPS. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINE th
  • 2. Professional conference on DevOps practices 6APRIL 2019 KYIV, UKRAINE STANISLAV KOLENKIN Сonnection pool Kubernetes clusters: Federation and Networks th
  • 3. Introduction 3 Running on Kubernetes has gotten much easier: • Dynamic volume provisioning • Statefulsets • Multi-zone clusters • Helm Charts • Operators • Managed Kubernetes services
  • 5. Kubernetes is easy unless …. 5
  • 6. Why run a system across multiple regions? 6 • Improve latency for end-users • Disaster recovery • Fault tolerance • Business requirements
  • 7. Let’s talk about running across k8s clusters 7 • Why is it hard? • What do you need to know to get started? • Solutions
  • 8. What’s so hard about spanning across clusters? 8 Multi-Region == Multi-Kubernetes clusters • Kubernetes is not designed to span WANs − Originally didn’t even want to have to span datacenters/AZs within a region, but the community fought for that and made it happen • Try to run a single k8s cluster across regions at your own risk
  • 9. Running StatefulSet in Kubernetes 9 • StatefulSet application requires three things: 1. Each node has persistent storage that survives restarts 2. Each node has a network address that survives restarts 3. Each node can communicate directly with every other node • Kubernetes providers these very well within a single cluster • Across multiple Kubernetes clusters, we lose #2 and often #3
  • 10. The core problems: what’s missing? 10 • It all comes down to networking: − Pod-to-Pod communication across clusters − Pod-to-Pod communication across private networks (e,g, cloud VPCs) − Persistent address that works both within and between clusters
  • 11. Kubernetes networking 11 • Kubernetes doesn’t care how it’s done, but it requires that: 1. Each pod has its own IP address 2. The IP that a pod sees itself as is the same IP that others see it as 3. All pods can communicate with all other pods without NAT • From the very beginning, Kubernetes made these specific requirements about what the network in a cluster must enable − Since then, dozen of solutions have been built to satisfy those requirements • But the multi-cluster scenario is left completely unspecified
  • 13. Kubernetes networking 13 • Some enable pod-to-pod communications across clusters out of the box − e.g. GKE, EKS • Some make it fairly easy to enable − e.g. AKS (“advanced” network mode), Cilium (“cluster mesh”) • It can be quite difficult in others
  • 14. Multi-cluster solutions 14 • The options as of earlier years all have one problem or another − Don’t work in subsets of environments − Break easily if operator doesn’t know exactly what they’re doing − Use a slow, less reliable datapath − Don’t work with TLS certificates − Rely on a relatively immature, complex system
  • 15. Solution #1: Static pod placement + HostNetwork 15 • `HostNetwork` option lets a pod use the host machine’s network directly • Use each host’s routable IP address for all communication • Statically assign pods to machines so that all nodes IPs stay the same
  • 16. Solution #1: Static pod placement + Public IPs 16 • Pros − Works even when pod-to-pod communication between clusters doesn’t − No moving parts, no need to configure a cross-cluster naming service − Using `HostNetwork` can actually give a nice performance boost • Cons − Depends on host public IPs not changing • Some cloud providers delete and recreate VMs during node upgrades − Requires a lot of manual config-file editing and certificate creating − Uses up valuable ports on the host machines, can hit port conflicts
  • 17. Solution #2: load balancer (External or Internal) for each node 17 • Create a public or internal load balancer for each application pod − It’s really easy to expose a service with a load balancer in all the major cloud providers • Have all pods connect to each other with the load balancer IPs/DNS names Internal Load Balancing makes your cluster's services accessible to applications outside of your cluster that use the same VPC network and that are located in the same GCP region.
  • 18. Solution #2: load balancer (External or Internal) for each node 18 Pros • Works even when pod-to-pod communication between clusters doesn’t • Continues working even as Kubernetes hosts churn in/out of the cluster • No need to configure a cross-cluster naming service − Because the load balancer addresses never change once they’re created
  • 19. Solution #2: load balancer (External or Internal) for each node 19 Cons • Extra hops on data path on all but the most sophisticated load balancers − src pod->src host->LB->random host->dst host->dst port • Need to create new service and LB whenever you want to scale up • Can be expensive to run so many load balancers • Requires provisionable load balanced addresses - not always available on-prem • A lot of manual config-file editing and cert creating with LB addresses − Informing each pod of its public IP requires pretty complex configuration
  • 20. Solution #3: Use pod IPs directly 20 • Just let pods advertise their IPs to each other directly • Handling of node address changes to deal with the inevitable churn as pods move to different nodes and get different IPs • Set up an internal load balancer for the connection services
  • 21. Solution #3: Use pod IPs directly 21 Pros: • No overhead on data path (except normal Docker overhead) • Very resilient to changes like hosts being removed/added/restarted • Very little manual work needed to configure and maintain Cons: • Network must support direct po-to-pod communication across clusters • Because IP addresses can change across pod deletions/recreations, creating TLS certificates that can stand up to hostname verification is very tricky
  • 22. Solution #4: DNS chaining 22 • Basically: how can we add persistent names to the previous solution? • Configure DNS to serve the handless service entries from other clusters − How?
  • 23. Solution #4: DNS chaining 23 • Option 1: Use CoreDNS instead of the kube-dns service − CoreDNS allows for much more customization, including plugins that allow it to watch multiple Kubernetes apiservers • https://github.com/coredns/kubernetai was written to do just what we want • But swapping CoreDNS in for kube-dns on managed offerings is shockingly difficult − As is customizing each cluster’s DNS domain from the `cluster.local.` default, which would be important for this approach • CoreDNS is becoming the standard ad of 1.13
  • 24. Solution #4: DNS chaining 24 • Option 1.5: Use CoreDNS alongside the default kube-dns service − Configure kube-dns to defer certain lookups to CoreDNS − Configure CoreDNS to watch the other k8s clusters apiservers − Add in some CoreDNS rewrite rules to make cross-cluster lookups work out − Haven’t properly tried this out so I’m being a little fuzzy on the details • Option 2: Take matters into our own hands − Write a controller that copies services from one cluster to another − Then just rely on those services being populated in DNS − Kubernetes is just an API, nothing stopping anyone from doing this
  • 25. Solution #4: DNS chaining 25 • Option 3: Chain DNS servers together using “sub domains” − Use KubeDNS config feature to defer DNS lookups for certain domains to the nameserver of your choice − Configure KubeDNS in us-central1 to redirect lookups for `*.us-west1-a.cluster.local` to the us-west1-a cluster’s DNS service
  • 26. Solution #4: DNS chaining 26 Pros of using stub domains: • No overhead on data path (except normal Docker overhead) • Very resilient to changes like hosts being removed/added/restarted • No need to configure a cross-cluster naming service • Very little manual work needed to get running (totally scriptable) Cons of using stub domains: • Network must support direct po-to-pod communication across clusters • Need to set up load balanced endpoints for each DNS server − Cloud support for this isn’t great….
  • 27. Solution #5: Istio 27 • Istio has been working on a “multi-cluster” mode to handle the problem of addressing services across clusters − It’s explicitly not addressing the problem of prod-to-pod connectivity, though -- just naming • Install Istio control plane in one primary k8s cluster, then install special “istio- remote” components in others
  • 28. Solution #5: Istio 28 Pros: • Under very active development, looks likely to improve over time • Small overhead on data path (packets go through Envoy proxy) • Very resilient to changes like hosts being removed/added/restarted Cons: • Still immature - entire control plane runs in a single k8s cluster (single point of failure) • Very involved setup process • Docs say “production environment might require additional steps”, at least one of which essentially boils down to solving this problem for the Istio components themselves • Requires copying k8s cluster credentials into each other (potential security risk)
  • 29. Solution #6: Roll your own 29 • Can always do your own thing: − Set up your own custom DNS servers outside Kubernetes − Set up your own auto-certificate approver for pod IPs then use them directly − Manage your own clusters, use CoreDNS, and modify it as you please − Set up your own proxy servers to manage stable, routable addresses − Etc... • Tough for us to widely recommend due to environmental differences, but actually quite reasonable if you have a single stable environment
  • 30. Solution #7: Federation 30 • Creates matching Kubernetes Services in every cluster underlying your Cluster Federation. • Monitors the health of those service “shards” (and the clusters in which they reside). • Manages a set of DNS records in a public DNS provider (like Google Cloud DNS, or AWS Route 53), thus ensuring that clients of your federated service can seamlessly locate an appropriate healthy service endpoint at all times, even in the event of cluster, availability zone or regional outages.
  • 31. Solution #7: Federation 31 Federation v1: Until Kubernetes version 1.8.x the federation project was maintained as part of the core kubernetes repo. Between Kubernetes releases 1.8 and 1.9, the federation project moved into a separate federation repo, where it is now maintained. The federation v2 deployment requires kubernetes version >= 1.11.
  • 35. Solution #8: GCP+GKE 35 • Use GKE with VPC-native • Shared projects • Internal LoadBalancer or Istio • Federation
  • 37. Solution #9: AWS Kubernetes 37 • amazon-vpc-cni-k8s Networking plugin for pod networking in Kubernetes using Elastic Network Interfaces on AWS. • VPC peering • Internal Load Balancer • Istio • Federation
  • 38. Solution #10: Cloud-agnostic 38 How to connect Kubernetes clusters in different Clouds?
  • 41. Solution #10: Cloud-agnostic 41 • Kubernetes on AWS • Kubernetes on GCP • Calico • Calico Route Reflector • Cloud VPN peering • Istio or Internal Load Balancer
  • 42. Conclusion 42 • Multi-cluster networking is a bit of minefield − Left completely unspecified, so different installations can vary wildly − Very little has been done about it four years • Even after you nail po-dpo-pod connectivity, you still have to solve naming • People are finally starting to care, though! (e.g. Cilium, Istio, Linkerd, Upbound) • It’s hard to recommend a single answer for everyone, but there are very reliable options if you’re willing go spend some time up-front on setup
  • 43. Conclusion 43 • Federation:​ Pros: − fast development;​ − it works​ Cons: - not ready for production; - a lot of bugs
  • 44. Conclusion 44 • Istio multi-cloud:​ Pros: - It is works Cons: - not ready for production;​ - you must solve problem with a pod2pod routings;​ - you must solve problem with a istio control plane pod IPs;​
  • 45. Thank you for your attention! Questions?