Node: cluster1-controlplane
Create an HPA named frontend-deployment:
kubectl autoscale deployment frontend-deployment \ --cpu-percent=70 \ --min=2 \ --max=10
kubectl edit clusterrole green-role-cka22-arch
Add:
- apiGroups: - "*" resources: - namespaces verbs: - get
Verify:
kubectl auth can-i get namespaces \ --as=system:serviceaccount:default:green-sa-cka22-arch
Expected Output: yes
Node: cluster4-controlplane
ssh cluster4-controlplane kubectl get deployment
Check kube-controller-manager:
kubectl get pods -n kube-system
View events:
kubectl get event \ --field-selector involvedObject.name=kube-controller-manager-cluster4-controlplane \ -n kube-system
Error found:
exec: "kube-controller-manage": executable file not found in $PATH
Fix manifest:
vi /etc/kubernetes/manifests/kube-controller-manager.yaml
Change:
kube-controller-manage
To:
kube-controller-manager
Restart pod:
kubectl delete pod kube-controller-manager-cluster4-controlplane \ -n kube-system
Verify:
kubectl get deployment
CURRENT count should match DESIRED count.
Node: cluster1-controlplane
Export PV:
kubectl get pv papaya-pv-cka09-str -o yaml \ > /tmp/papaya-pv-cka09-str.yaml
Remove:
uid: annotations: status: claimRef:
Export PVC:
kubectl get pvc papaya-pvc-cka09-str -o yaml \ > /tmp/papaya-pvc-cka09-str.yaml
Change:
storage: 50Mi
To:
storage: 80Mi
Recreate resources:
kubectl delete pvc papaya-pvc-cka09-str kubectl delete pv papaya-pv-cka09-str kubectl apply -f /tmp/papaya-pv-cka09-str.yaml kubectl apply -f /tmp/papaya-pvc-cka09-str.yaml
Exam Tip: Always verify PVC returns to Bound state.
Node: cluster2-controlplane
ssh cluster2-controlplane
Verify namespace:
kubectl get ns kubectl create ns frontend-apd
Update Chart.yaml:
appVersion: 1.20.0
Update values.yaml:
replicaCount: 3 type: NodePort
Lint chart:
helm lint /opt/webapp-color-apd/
Fix template issues:
Install chart:
helm install webapp-color-apd \ -n frontend-apd \ /opt/webapp-color-apd
Verify:
helm ls -n frontend-apd
Node: cluster2-controlplane
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: web-route
namespace: nginx-gateway
spec:
hostnames:
- cluster2-controlplane
parentRefs:
- name: web-gateway
rules:
- backendRefs:
- name: web-service
port: 80
Test:
curl http://cluster2-controlplane:30080
Node: cluster1-controlplane
Create pod:
kubectl run nginx-resolver-cka06-svcn \ --image=nginx
Create service:
kubectl expose pod nginx-resolver-cka06-svcn \ --name=nginx-resolver-service-cka06-svcn \ --port=80 \ --target-port=80 \ --type=ClusterIP
Test service DNS:
kubectl run test-nslookup \ --image=busybox:1.28 \ --rm -it --restart=Never \ -- nslookup nginx-resolver-service-cka06-svcn \ > /root/CKA/nginx.svc.cka06.svcn
Get pod DNS:
IP=$(kubectl get pod nginx-resolver-cka06-svcn \
-o wide --no-headers | awk '{print $6}' | tr '.' '-')
Test pod DNS:
kubectl run test-nslookup \ --image=busybox:1.28 \ --rm -it --restart=Never \ -- nslookup $IP.default.pod \ > /root/CKA/nginx.pod.cka06.svcn
Create deployment:
apiVersion: apps/v1
kind: Deployment
metadata:
name: ocean-tv-wl09
spec:
replicas: 3
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 40%
maxSurge: 55%
Create deployment:
kubectl create -f deployment.yaml
Update image:
kubectl set image deploy ocean-tv-wl09 \ webapp-color=kodekloud/webapp-color:v2
Check history:
kubectl rollout history deploy ocean-tv-wl09
Save revision count:
echo "2" > /opt/revision-count.txt
Rollback:
kubectl rollout undo deployment ocean-tv-wl09
Verify image:
kubectl describe deploy ocean-tv-wl09
Expected Image: kodekloud/webapp-color:v1