Quick cheat sheet, which can be used for daily basis work with Kubernetes.
Commands for Pods
- Pod List
kubectl get pods
kubectl get pods -o wide
kubectl get pods -n kube-system // namespace
kubectl get pods --selector app = app1, env = prod // label filtering
kubectl get pods --all-namespaces
- Pod Status
kubectl describe pod pod-name
- Create Pod
kubectl run pod-name --image nginx
- Edit Pod
kubectl edit under sub-name
kubectl get under pod-name -o yaml> pod.yaml
- Create Pod with yml files
kubectl create -f pod-difinition.yml
kubectl apply -f pod-difinition.yml
- Delete Pod
kubectl delete under sub-name
Commands for ReplicaSet
- Get Replicaset
kubectl get replicaset
- Delete Replicaset
kubectl delete replicaset replicaset-name
- Scale
kubectl replace -f replicaset-definition.yml
kubectl scale --replicas=6 -f replicaset-definition.yml
kubectl scale --replicas=6 replicaset myapp-replicaset
- Generate Deployment file
kubectl create deployment --image=nginx nginx --replicas=6 --dry-run -o yaml > deployment.yaml
Commands for Namespaces
- Get Pods from namespace
kubectl get pods --namespace=develop
kubectl get pods --all-namespaces
- Change default namespace
kubelctl config set-context $(kubectl config current-context) --namespace=develop
Scheduling
- Taints / Tolerations -Node
kubectl taint nodes node3 app=red:NoSchedule
// The settings on the YAML side are as follows
spec:
tolerations:
- key: "app"
operator: "Equal"
value: "blue"
effect: "NoSchedule"
- Remove Taints
kubectl taint nodes node3 app=red:NoSchedule-
- Node Slector | Label Nodes
kubectl label nodes node-name label-key=label-name// The settings on the YAML side are as follows
spec:
nodeSelector:
label-key: label-name
- Node Affinity
apiVersion: v1
kind: Pod
metadata:
name: with-pod-affinity
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: security
operator: In
values:
- S1
containers:
- name: with-pod-affinity
image: k8s.gcr.io/pause:2.0
- Get Events
kubectl get events | grep schedule
- Get Logs
kubectl get logs | grep schedule