- runs a cluster of VMs to support container orchestration - coordinated worker nodes to run an app - can be deployed on-prem or as a cloud managed service - supports containerized app mgmt: - deployment - scaling - load-balancing - state mgmt such as auto-healing - update w/o app downtime - kubernetes pods are objects that are deployed into the cluster - pod runs one or more containers from specified container images - often deployed with a yaml config file to service node ![[images/Pasted image 20250713095310.png]] - service node maintains config for cluster - worker nodes communicate with service node via kubelet - worker node = container host that runs containerized apps - kubernetes deployment steps - create cluster with various tools - on linux host use kubelet, kubeadm, kubectl packages - `kubectl config set-cluster cluster1 --server=127.0.0.1:8087` to create cluster - `kubectl config get-clusters` to see how many clusters have been deployed - on azure use azure kubernetes service (AKS) ![[images/Pasted image 20250713101513.png]]![[images/Pasted image 20250713101642.png]] - deploy containerized app in cluster - on linux host - `kubectl apply -f appdeployment1.yml` to deploy a containerized app - `kubectl get deployments --all-namespace=true` to see all deployments in cluster - via azure kubernetes service (aks) gui ![[images/Pasted image 20250713154929.png]] ![[images/Pasted image 20250713155002.png]] - via aks cloud shell ![[images/Pasted image 20250713155147.png]] - common kubernetes mgmt commands - create authenticated connection to a cluster ![[images/Pasted image 20250713161259.png]] - show nodes in cluster ![[images/Pasted image 20250713161335.png]] - create `app1.yaml` file for deployment into cluster ![[images/Pasted image 20250713161500.png]] - `image: caddy:latest` pulls from hub.docker but can specify an image in azure container registry - apply `app1.yaml` into cluster ![[images/Pasted image 20250713161714.png]] - show pods (containerized apps) in cluster ![[images/Pasted image 20250713161801.png]] - `pod1` corresponds to the `app1.yaml` file that was just applied - show labeled pods in cluster ![[images/Pasted image 20250713161931.png]] - copy file into pod ![[images/Pasted image 20250713162034.png]] -