CKA Quick Study Sheet

Create Namespace

kubectl create namespace project-c13

# Short version
kubectl create ns project-c13

Set Default Namespace

kubectl config set-context --current --namespace=project-c13

# Verify
kubectl config view --minify \
--output='jsonpath={..namespace}'

Create Pod

kubectl run webserver \
--image=nginx:1.25

Create Deployment

kubectl create deployment webapp \
--image=nginx:1.25

Scale Deployment

kubectl scale deployment webapp \
--replicas=3

kubectl scale deployment webapp \
--replicas=5

Expose Deployment as Service

kubectl expose deployment webapp \
--name=webapp-svc \
--type=ClusterIP \
--port=80

Verify Service

kubectl get svc

Useful Verification Commands

kubectl get pods

kubectl get pods -o wide

kubectl get deployments

kubectl get svc

kubectl get nodes

kubectl get all

Network Policies

Deny All Ingress

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: deny-all
spec:
  podSelector: {}
  policyTypes:
  - Ingress

Apply

kubectl apply -f deny-all.yaml

Kubeadm Cluster Setup

Initialize Control Plane

sudo kubeadm init

Configure kubectl

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf \
$HOME/.kube/config

sudo chown $(id -u):$(id -g) \
$HOME/.kube/config

Install Calico

kubectl apply -f \
https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/calico.yaml

Generate Join Command

sudo kubeadm token create --print-join-command

Join Worker Node

sudo kubeadm join CONTROL_PLANE_IP:6443 \
--token TOKEN \
--discovery-token-ca-cert-hash sha256:HASH

Troubleshooting Workflow

If something is not working:

kubectl get all

kubectl describe pod PODNAME

kubectl logs PODNAME

kubectl get events

kubectl describe deployment DEPLOYMENT

Common Exam Sequence:

get
describe
logs
fix
verify

Exam Shortcuts

kubectl create ns test

kubectl create deployment web \
--image=nginx

kubectl scale deploy/web \
--replicas=3

kubectl expose deploy web \
--port=80 \
--type=ClusterIP

kubectl run debug \
--image=busybox \
-it --rm -- sh

Things To Memorize

❌ kubectl scale webapp --replicas=5 ✅ kubectl scale deployment webapp --replicas=5 ❌ kubectl run deploy webapp --image=nginx ✅ kubectl create deployment webapp --image=nginx ❌ Joined control planes without controlPlaneEndpoint ✅ Use kubeadm init --control-plane-endpoint ... for HA