Ana içeriğe geç

Kubernetes, Docker ve Containerd Sık Kullanılan Komutlar

Kubernetes

kubelet Çalışıyor mu Kontrol Etmek İçin
systemctl status kubelet
kubelet'te Bir Hata Olduğunda Linux Sistem Üzerinden Detay Görmek İçin
journalctl -xeu kubelet
kubelet'te Bir Hata Olduğunda kubelet Üzerinden Detay Görmek İçin
kubectl get events --all-namespaces --sort-by='.metadata.creationTimestamp'
Pod Özelinde Bir Hata Olduğunda Logları Görmek İçin
kubectl logs <POD_NAME> -n <NAMESPACE>
Pod Baştan Başlatıldıysa Bir Önceki Pod'un Loglarını Görmek İçin
kubectl logs --previous <POD_NAME> -n apinizer
Pod'un Genel Problemi Var mı Görmek İçin
kubectl describe pod <POD_NAME> -n apinizer
Çalışan Pod Üzerinde Bir İşlem Yapılmak İsteniyor, İlgili Pod'a Girebilmek İçin
kubectl exec -it <POD_NAME> -n prod /bin/bash
Pod İçerisine Girmeden Belirli Bir Adrese İstek Atmak
kubectl exec -it <POD_NAME> -n prod -- curl x.y.gov.tr
Bir Deployment Altındaki Podları Restart Etmek İçin
kubectl rollout restart deployment manager -n apinizer
Bir Deployment Altındaki Podların Sayısını Sıfıra Çekmek İçin
kubectl scale deploy cache -n prod --replicas=0
Bir Deployment'ı Silmek İçin
kubectl delete -f apinizer-deployment.yaml
Pod Terminating'te Takıldıysa Silmeyi Zorlamak İçin
kubectl delete pod <POD_NAME> -n apinizer --grace-period=0 --force
Versiyon Güncellemek İçin
not

İmajları sunuculara çektikten sonra aşağıdaki komutlar kullanılır. Burası "vi" editörü gibi çalışır, kaydederek çıkmak için ":wq" kullanılmalıdır.

kubectl edit deployment manager -n apinizer
kubectl edit deployment cache -n prod
kubectl edit deployment worker -n prod
Evicted Durumdaki Podları Temizlemek İçin
kubectl get pod -n prod | grep Evicted | awk '{print $1}' | xargs kubectl delete pod -n prod
Kubernetes Node Affinity Kullanarak Pod'un Belirli Nodelar Üzerinde Çalışmasını Engelleme
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: NotIn
values:
- kuberdemo55
- kuberdemo56
En Çok Açılan Threadlerin Hangisi Olduğunu Gösterme

Java prosesi PID 1 olarak çalışıyorsa:

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'

Java PID bilinmiyorsa:

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

Image Listeleme
docker images
Tüm Container'ları Listeleme
docker ps -a
Image Pull İşlemi
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

Namespace Listeleme
sudo ctr namespaces list
Container'ları Listeleme Namespace Göre
sudo ctr --namespace k8s.io containers ls
Image Listeleme Namespace Göre Apinizer Image'ları
sudo ctr -n k8s.io images list | grep apinizer
Image Pull İşlemi
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