- 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]]
-