45. Cheat sheets
45.1 Docker
docker build -t img:tag --build-arg K=V --target stage . # build (a specific stage)
docker buildx build --platform linux/amd64,linux/arm64 -t reg/img:tag --push .
docker run -d --name n -p 127.0.0.1:8080:8080 -e K=V -v vol:/data img:tag
docker logs -f --tail 100 n ; docker exec -it n sh ; docker inspect n | jq '.[0].State'
docker stats --no-stream ; docker system df ; docker system prune -a --volumes # (careful)
docker compose up -d --build --wait ; docker compose logs -f svc ; docker compose down -v
docker run --rm -it --network container:n --pid container:n nicolaka/netshoot # debug a distroless container
trivy image --severity HIGH,CRITICAL --ignore-unfixed img:tag
dive img:tag # explore layers
45.2 kubectl
kubectl get pods -A -o wide --field-selector=status.phase!=Running # everything not running
kubectl get pods -o custom-columns=NAME:.metadata.name,STATUS:.status.phase,RESTARTS:.status.containerStatuses[*].restartCount,NODE:.spec.nodeName
kubectl describe pod P ; kubectl logs P -c C --previous ; kubectl logs -l app.kubernetes.io/name=X --prefix -f
kubectl get events -A --sort-by=.lastTimestamp | tail -30
kubectl top pods --containers ; kubectl top nodes
kubectl rollout status|history|undo|restart deploy/D
kubectl scale deploy/D --replicas=N
kubectl debug -it P --image=nicolaka/netshoot --target=C ; kubectl debug node/N -it --image=ubuntu
kubectl port-forward svc/S 8080:80
kubectl auth can-i VERB RESOURCE --as=system:serviceaccount:NS:SA
kubectl get endpointslices -l kubernetes.io/service-name=S
kubectl explain RESOURCE.spec.FIELD --recursive
kubectl diff -k overlay/ ; kubectl apply --server-side -k overlay/
kubectl get pod P -o jsonpath='{.status.containerStatuses[0].lastState.terminated.reason}'
kubectl cordon N ; kubectl drain N --ignore-daemonsets --delete-emptydir-data ; kubectl uncordon N
45.3 Helm, Argo CD, Rollouts, KEDA
helm upgrade --install R chart -n NS -f values.yaml --atomic --timeout 5m ; helm history R ; helm rollback R REV
helm template R chart -f values.yaml | kubeconform -strict ; helm get values R -n NS
argocd app list ; argocd app diff A ; argocd app sync A ; argocd app history A ; argocd app rollback A ID
kubectl argo rollouts get rollout R -w ; kubectl argo rollouts promote|abort|retry rollout R
kubectl get scaledobject,hpa -n NS ; kubectl describe scaledobject X # KEDA status + trigger errors