# Training: Kubernetes and ECP --- ## Plat du jour 12:30 - Containers & Kubernetes 13:45 - Helm 14:15 - 15 minutes break/discussion 14:30 - Installation ECP on Kubernetes 15:30 - Questions/discussion 16:00 - The End --- ## A little bit of history https://www.youtube.com/watch?v=BE77h7dmoQU --- ## The year 2013 - Cloud gained traction ("every company was an internet company") - Movement from pure virtualization to IaaS/Cloud: Automation! - AWS was No. 1 - Google had to catch up - Docker came out: Accessible containers, bridging the gap between dev and ops --- ## 2013 & 2014 - Fun fact: The tech used by Docker has been there for the last 10 years. - Google Borg: internal container orchestration at Google - Kubernetes started as a collection of shells scripts - Joe Beda, Brendan Burns, Craig McLuckie - "κυβερνήτης": helmsman/pilot --- ## Another fun fact - OpenShift was this close to build on Mesos but they changed their minds in the last minute to use Kubernetes. --- ## Hardware, Virtual Machines, Containers - capacity planning/economic viability - reliability - reliable performance with varying load [ The Ideal Versus the Real: Revisiting the History of Virtual Machines and Containers ](https://dl.acm.org/doi/fullHtml/10.1145/3365199) --- ![](https://hackmd.io/_uploads/BJederI16.png) --- ![](https://hackmd.io/_uploads/HJdtgS8y6.png) --- ![](https://hackmd.io/_uploads/SJE5lHLy6.png) --- ![](https://hackmd.io/_uploads/BJederI16.png =50%x50%) ![](https://hackmd.io/_uploads/HJdtgS8y6.png =50%x50%) ![](https://hackmd.io/_uploads/SJE5lHLy6.png =50%x50%) --- ## What is a container? --- ## So what do we need Kubernetes for? --- - Automatic container management (start, stop, restart, move between nodes) - CPU & memory management - Storage/volume management - Configuration data management - Networking/Network isolation - Access management --- ## What makes Kubernetes special? ### API-centric ### Declarative ### Open Source --- ## API-centric - Only interaction with cluster is through API - HTTPS as standard protocol - JSON as standard data format --- ## API-centric "Show me all applications running in the cluster!" [https://api.cluster.example.org/apis/apps/v1/deployments](http://localhost:8001/apis/apps/v1/deployments) --- ## API-centric "Show me all the cluster nodes!" [https://api.cluster.example.org/api/v1/nodes](http://localhost:8001/api/v1/nodes) --- ## API-centric: API Discovery "Show me all the APIs" [https://api.cluster.example.org/apis](http://localhost:8001/apis) --- ## Declarative Kubernetes objects as "record of intent" --- ## Declarative ``` apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: selector: matchLabels: app: nginx replicas: 2 template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80 ``` --- ## Open Source - over 5000 individuals per quarter - ~1000 contributing companies per quarter - Google, Red Hat, Microsoft, VMWare, IBM, Amazon, Intel, ... - German contributors among top 5 - Market size: 1.8B USD 2022 => 7.8B USD 2030 --- ## Furthermore? Semi-automatic scaling (Replicas) Fully-automatic scaling (HPA) Support for Windows workers Kubernetes as managed service at all Cloud providers (incl. German ones) Pod and Cluster Networking --- ## What's a cluster made of? --- <!-- .slide: data-background="https://hackmd.io/_uploads/SyGxfTL1a.png" data-background-size="contain" --> --- ## Native Microservices - **Tenant**: Namespace - **Container**: Deployment/DaemonSet/StatefulSet - **Configuration**: ConfigMap/Secret - **Storage**: PersistentVolumeClaim/PersistentVolume - **Networking**: Service/Ingress - **Access Control**: ServiceAccount/Role/RoleBinding --- ## Basic Objects Namespace Deployment Secret ConfigMap Service --- ## Demo: Kubernetes Dashboard ``` kubectl apply -f dashboard.yaml ``` --- ## Application Management - Packaging - Versioning - Provisioning - Installation - Configuration - Upgrades - Downgrades/Rollbacks --- ## Helm - Software packaging and management - Provisioning --- <!-- .slide: data-background="https://hackmd.io/_uploads/SJivRZwJ6.png" data-background-size="contain" --> --- ## ECP with Helm --- ## Links - [Kubernetes In Docker (kind)](https://kind.sigs.k8s.io/) - [Kubernetes Documentary](https://www.youtube.com/watch?v=BE77h7dmoQU) - [Kubernetes The Hard Way](https://github.com/kelseyhightower/kubernetes-the-hard-way) - [Kubernetes Tutorials](https://kubernetes.io/docs/tutorials/) - [Understanding Core Kubernetes Concepts & Components](https://www.weave.works/blog/understanding-kubernetes-components) - [Checklist: How do you know when you’re ready to run your Kubernetes cluster in production?](https://www.weave.works/blog/production-ready-checklist-kubernetes) - [Running Kubernetes on bare-metal](https://makk.es/blog/k8s-at-home/) - [An Introduction to Helm](https://www.youtube.com/watch?v=Zzwq9FmZdsU)
{"title":"Kubernetes & ECP","slideOptions":"{\"theme\":\"league\",\"slideNumber\":false,\"transition\":\"slide\",\"hash\":true,\"controls\":false}","contributors":"[{\"id\":\"cf762212-f60b-4262-b7b4-bbc298ae97a0\",\"add\":7392,\"del\":2317}]","description":"12:30 - Containers & Kubernetes13:45 - Helm14:15 - 15 minutes break/discussion14:30 - Installation ECP on Kubernetes15:30 - Questions/discussion16:00 - The End"}
    344 views