Application Failure


curl http://web-service-ip:node-port

Application ์— ์ ‘์†ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์€ ์‚ฌํ•ญ๋“ค์„ ์ง„๋‹จํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.

Check Service Status

kubectl describe service web-service

๋จผ์ € ์œ„ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด Selector ์™€ Endpoints ๋ถ€๋ถ„์„ ํ™•์ธํ•˜์—ฌ Service ๊ฐ€ Pod ์„ ์ž˜ ์ฐพ์•„๋ƒˆ๋Š”์ง€ ์ง„๋‹จํ•œ ํ›„ ๋งŒ์•ฝ ์ด์Šˆ๊ฐ€ ์žˆ๋‹ค๋ฉด Pod ์˜ metadata.labels.name ๊ณผ spec.containers.ports.containerPort ๋ฅผ ํ™•์ธํ•ด ๊ณ ์ณ์ฃผ๋„๋ก ํ•˜์ž.

Check Pod

kubectl get pod
kubectl describe pod web
kubectl logs web -f --previous

Pod ์˜ ์žฌ์‹œ์ž‘ ์ƒํƒœ์™€ log ๋“ค์„ ํ™•์ธํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ์ฐพ์•„๋ณด์ž.

Check Dependent Service & Pod

์œ„๊นŒ์ง€ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค๋ฉด ์ข…์†์„ฑ ์žˆ๋Š” Service ์™€ Pod ๋ฅผ ์œ„์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ง„๋‹จํ•ด๋ณด์ž.

Control Plane Failure


kubectl get nodes
kubectl get pods
kubectl get pods -n kube-system

๋จผ์ € K8s Cluster ์˜ Node ์™€ Pod ๋“ค์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•œ ํ›„, Control Plane Pod ๋“ค์ด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

service kube-apiserver status
service kube-controller-manager status
service kube-scheduler status
service kubelet status
service kube-proxy status

๋งŒ์•ฝ kubeadm ์œผ๋กœ ๊ตฌ์ถ•ํ•˜์ง€ ์•Š์•„ service ํ˜•ํƒœ๋กœ ์‹คํ–‰์ค‘์ธ ๊ฒฝ์šฐ ์œ„์™€ ๊ฐ™์€ ๋ช…๋ น์–ด๋กœ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

kubectl logs kube-apiserver-master -n kube-system
sudo journalctl -u kube-apiserver

์ดํ›„ ๊ฐ Component ๋“ค์˜ Log ๋ฅผ ํ™•์ธํ•ด๋ณด์ž.

/etc/kubernetes/manifests/

kubeadm ์„ ์‚ฌ์šฉํ•ด Cluster ๋ฅผ ๊ตฌ์ถ•ํ•œ ๊ฒฝ์šฐ ์œ„ ๊ฒฝ๋กœ์—์„œ ์กฐ์น˜๊ฐ€ ํ•„์š”ํ•œ Component ๋ฅผ ์ˆ˜์ •ํ•ด์ฃผ์ž.

Worker Node Failure


kubectl get nodes
kubectl describe node worker-1

์œ„ ๋ช…๋ น์–ด๋“ค๋กœ Node ์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•œ ๋’ค,

top
df -h

CPU ์™€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ํ™•์ธํ•˜๊ณ ,

service kubelet status
sudo journalctl -u kubelet

kubelet ์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ณ ,

service kubelet start

kubelet ์„ ์žฌ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜,

cat /etc/kubernetes/kubelet.conf

kubelet ์„ค์ •์„ ํ™•์ธํ•ด๋ณด์ž.

openssl x509 -in /var/lib/kubelet/worker-1.crt -text

CA ์˜ Issuer, Validity, Subject ๋“ฑ์„ ํ™•์ธํ•ด๋ณด์ž.

Network Troubleshooting


Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "c117e7be807116764889d820a073a0054630776881ddb92dfc46c2cbd174ce4e": plugin type="weave-net" name="weave" failed (add): unable to allocate IP address: Post "http://127.0.0.1:6784/ip/c117e7be807116764889d820a073a0054630776881ddb92dfc46c2cbd174ce4e": dial tcp 127.0.0.1:6784: connect: connection refused

CNI Plugin ์ด ์„ค์น˜๋˜์–ด์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ ์œ„์™€ ๊ฐ™์€ ์—๋Ÿฌ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

curl -L https://github.com/weaveworks/weave/releases/download/latest_release/weave-daemonset-k8s-1.11.yaml | kubectl apply -f

์„ค์น˜ํ•ด์ฃผ์ž.

References