Day 37 - Catatan gue soal troubleshooting kubernetes
Troubleshooting Kube Controller Manager
Karena kube-controller-manager itu adalah static pod, jadi kita bisa inspect lewat podnya dulu
1 - Liat status pod kube-controller-manager
kubectl get pods -n kube-system2 - Keliatan klo kube-controller-manager crashing, artinya containernya jalan tapi crash
3 - Kemudian liat ke logs si pod nya
kubelet logs kube-controller-manager-controlplane -n kube-system4 - Dari ini harusnya udah keliatan errornya dimana, misalnya unknown flag: --<flag>
5 - Berarti kita bisa masuk ke static pod YAML file-nya si kube-controller-manager
vim /etc/kubernetes/manifest/kube-controller-manager.yaml
# Look for the unknown flags and remove itTroubleshooting Kubelet
kubelet ini agent yang dipasang di tiap nodes tapi dia bukan kubernetes object, jadi kita gak bisa inspect pake kubectl. Kita harus inspect pake system-level tools like systemctl dan journalctl
1 - Pertama, kita liat logsnya si kubelet ini
journalctl -eu kubelet2 - Keliatan klo si kubelet ini dapet unknown flags lagi entah darimana
3 - Abis itu buka confignya. Nah config si kubelet ini ada macem-macem:
# First open the kubelet service config
vim /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
# Check if the unknown flag exist, if not continue
find / | grep kubeadm
# Look for the config related to kubelet and remove unknown logs
vim /var/lib/kubeadm/kubelet-vars.env # similar like this, i forgot the name hahaTroubleshooting Deployment Replicas
1 - Liat logs di pod nya
kubectl get pods -n <namespace>
# If the status is crash, you can inspect the pod's logs
kubectl logs <pod-name> -n <namespace>
# If the status is not crash, you can describe the pod
kubectl describe pod <pod-name> -n <namespace>Troubleshooting Apiserver
1 - Check all logs in
/var/log/pods
/var/log/containers
kubelet: journalctl
docker ps + docker logs # if you check from container runtime, you must run docker ps several time until you see kube-apiserver container
crictl ps + crictl logs # if you check from container runtime, you must run crictl ps several time until you see kube-apiserver container