Ana içeriğe geç

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