Session setup
alias k=kubectl
export do='--dry-run=client -o yaml'
export now='--grace-period=0 --force'
source <(kubectl completion bash)
complete -F __start_kubectl k
Generate YAML fast
k run mypod --image=nginx $do > pod.yaml
k create deploy myapp --image=nginx --replicas=3 $do > deploy.yaml
k create job myjob --image=busybox $do -- echo hi > job.yaml
k create cronjob mycj --schedule="*/1 * * * *" --image=busybox $do -- echo hi > cj.yaml
k create cm myconfig --from-literal=key=val $do
k create secret generic mysecret --from-literal=pwd=s3cre! $do
k expose deploy myapp --port=80 --target-port=8080 $do
In-exam API reference
k explain pod.spec.containers.resources
k explain pod.spec.securityContext
k explain networkpolicy.spec
k explain pvc.spec
k explain cronjob.spec.jobTemplate.spec.template.spec
Core resource shortcuts
| Resource | Short |
|---|---|
| pods | po |
| replicasets | rs |
| deployments | deploy |
| services | svc |
| namespaces | ns |
| networkpolicies | netpol |
| persistentvolumes | pv |
| persistentvolumeclaims | pvc |
| serviceaccounts | sa |
| configmaps | cm |
| horizontalpodautoscalers | hpa |
| ingresses | ing |
| nodes | no |
Most-used one-liners
# Set namespace for session
k config set-context --current --namespace=<ns>
# Delete fast (exam only)
k delete pod mypod $now
# Debug: run throwaway pod
k run bb --image=busybox:1.36.1 --rm -it --restart=Never -- sh
# Debug: test DNS/connectivity from inside cluster
k run bb --image=busybox:1.36.1 --rm -it --restart=Never -- wget -qO- http://myservice.mynamespace
# Ephemeral debug container (distroless)
k debug pod/mypod -it --image=busybox:1.36.1 --target=app
# Copy files to/from pod
k cp mypod:/etc/config/app.conf ./app.conf
k cp ./app.conf mypod:/tmp/app.conf
# Check events sorted by time
k get events --sort-by=.metadata.creationTimestamp -n <ns>
# Watch rollout
k rollout status deployment myapp --watch
# Verify RBAC
k auth can-i list pods --as=system:serviceaccount:default:my-sa -n default
Official reference
https://kubernetes.io/docs/reference/kubectl/quick-reference/