# Step into Orchestration: <!-- .element style="font-size: 100px" --> ![Kubernetes logo](img/kubernetes-horizontal-color.png) --- # Agenda - Demo - Containers - Container orchestration - Kubernetes - Kubernetes building blocks - Kubernetes components --- # Containers -- ![VMs vs Containers](img/containers-vs-virtual-machines.png) -- ## Why containers? - Resources - Self-contained apps - Portability - Security (?) --- ## Container orchestration -- ### Application anatomy - Web server - Application server - Login service - Profile service - Comment service - Database -- ### Pets vs cattle ![Pets vs Cattle](img/pets-vs-cattle.png) <!-- .element style="width: 140%;" --> -- ### Microservices - Independent components - Scale - Upgrade - Iterations - Polyglot application stack -- ### Containers on scale ```bash $ssh host1 host1# docker run container $ssh host2 host2# docker run container $ssh host3 host3# docker run container ``` Running containers on scale is a challenge. -- ### Container orchestration - Container lifecycle management - Load balancing - Health checks - Observability (logs, metrics, traces) --- ## Kubernetes -- ### Borg - Kuberneted predecessor - Developped at Google https://kubernetes.io/blog/2015/04/borg-predecessor-to-kubernetes/ -- ### What is Kubernetes? Container orchestration **platform** --- ## Kubernetes building blocks -- ### Pods - Group of containers - Shared network space - Smallest scalable unit https://kubernetes.io/docs/concepts/workloads/pods/ -- ### Deployments - Rolling upgrades - Desired state: how many replicas should be running of a given pod? -- ### Services An abstract way to expose an application running on a set of Pods as a network service https://kubernetes.io/docs/concepts/services-networking/service/ -- ### Ingress Set of rules to direct inbound traffic to services. https://kubernetes.io/docs/concepts/services-networking/ingress/ --- ## Kubernetes components ![Kubernetes components](img/components-of-kubernetes.svg)