Kubernetes, Docker, and Containerd Frequently Used Commands
Kubernetes
To Check if kubelet is Running
systemctl status kubelet
To See Details on Linux System When There is an Error in kubelet
journalctl -xeu kubelet
To See Details from kubelet When There is an Error in kubelet
kubectl get events --all-namespaces --sort-by='.metadata.creationTimestamp'
To See Logs When There is an Error in a Specific Pod
kubectl logs <POD_NAME> -n <NAMESPACE>
To See Previous Pod's Logs If Pod Was Restarted
kubectl logs --previous <POD_NAME> -n apinizer
To See If Pod Has General Problem
kubectl describe pod <POD_NAME> -n apinizer
To Enter the Relevant Pod When an Operation is Wanted on a Running Pod
kubectl exec -it <POD_NAME> -n prod /bin/bash
Sending Request to a Specific Address Without Entering Pod
kubectl exec -it <POD_NAME> -n prod -- curl x.y.gov.tr
To Restart Pods Under a Deployment
kubectl rollout restart deployment manager -n apinizer
To Scale Pod Count Under a Deployment to Zero
kubectl scale deploy cache -n prod --replicas=0
To Delete a Deployment
kubectl delete -f apinizer-deployment.yaml
To Force Delete If Pod is Stuck in Terminating
kubectl delete pod <POD_NAME> -n apinizer --grace-period=0 --force
To Update Version
not
After pulling images to servers, the following commands are used. This works like "vi" editor, ":wq" should be used to save and exit.
kubectl edit deployment manager -n apinizer
kubectl edit deployment cache -n prod
kubectl edit deployment worker -n prod
To Clean Pods in Evicted State
kubectl get pod -n prod | grep Evicted | awk '{print $1}' | xargs kubectl delete pod -n prod
Preventing Pod from Running on Specific Nodes Using Kubernetes Node Affinity
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: NotIn
values:
- kuberdemo55
- kuberdemo56
Displaying The Most Frequent Threads
If the Java process is running as PID 1:
kubectl exec -it -n apinizer apimanager-69684b6fd9-5nlhl -- sh -c 'ls /proc/1/task/*/comm 2>/dev/null | xargs cat | sort | uniq -c | sort -rn | head -30'
If the Java PID is not known:
oc exec -n apinizer worker-84f9b77756-wd2n9 -- sh -c 'JPID=$(pgrep -f java | head -1); ls /proc/$JPID/task/*/comm | xargs cat | sort | uniq -c | sort -rn | head -30'
Docker
Listing Images
docker images
Listing All Containers
docker ps -a
Image Pull Operation
sudo docker pull apinizercloud/manager:2024.xx.0
Image Export
sudo docker save apinizercloud/manager:2024.xx.0 > manager_2024.xx.0.tar
Image Import
sudo docker load < manager_2024.xx.0.tar
Containerd
Listing Namespaces
sudo ctr namespaces list
Listing Containers by Namespace
sudo ctr --namespace k8s.io containers ls
Listing Images by Namespace Apinizer Images
sudo ctr -n k8s.io images list | grep apinizer
Image Pull Operation
sudo ctr --namespace k8s.io images pull docker.io/apinizercloud/manager:2024.05.0
Image Export
sudo ctr -n k8s.io images export /tmp/manager:2024.05.0.tar docker.io/apinizercloud/manager:2024.05.0
Image Import
sudo ctr --namespace k8s.io images import /tmp/manager:2024.05.0.tar