KR_K8s_Troubleshooting - somaz94/DevOps-Engineer GitHub Wiki
- CPU Limits ์ค์ ์ CFS(Completely Fair Scheduler) Quota๋ก ์ ํ๋๋ฉฐ, ์ค์ ์ฌ์ฉ๋ฅ ์ด ๋ฎ์๋ throttling์ด ๋ฐ์ํ ์ ์๋ค.
-
container_cpu_cfs_throttled_seconds_total๋ฉํธ๋ฆญ์ผ๋ก ๊ฐ์งํ๋ค.
- โ Limits๋ฅผ ์ ๊ฑฐํ๊ฑฐ๋ ์ถฉ๋ถํ ๋๊ฒ ์ค์ (Guaranteed QoS ํ์ ์์ผ๋ฉด) โ
- โก CPU Requests๋ง ์ค์ ํ์ฌ ์ค์ผ์ค๋ง ๋ณด์ฅ โ
- โข
--cpu-cfs-quota=false๋ก Quota ๋นํ์ฑํ(๋น๊ถ์ฅ). - Java ์ ํ๋ฆฌ์ผ์ด์
์
-XX:ActiveProcessorCount๋ก CPU ๊ฐ์ ์ธ์ ์กฐ์ ํ๋ค. Requests๋ ์ค์ ํ๊ท ์ฌ์ฉ๋, Limits๋ spike ํ์ฉ ๋ฒ์๋ก ์ค์ ํ๋ค.
- Pod์ /etc/resolv.conf์ ndots:5 ์ค์ ์ผ๋ก ์ธํด ์ต๋ 6๋ฒ์ DNS ์ฟผ๋ฆฌ๊ฐ ๋ฐ์ํ๋ค.
- example.com ์กฐํ ์ example.com.ns.svc.cluster.local โ example.com.svc.cluster.local โ example.com.cluster.local โ example.com ์์๋ก ์กฐํํ๋ค.
- โ FQDN ์ฌ์ฉ(์: api.example.com.) โ
- โก dnsConfig๋ก ndots:2 ์ค์ โ
- โข CoreDNS autopath plugin ํ์ฑํ โ
- โฃ NodeLocal DNSCache ์ฌ์ฉ(๋ ธ๋๋ณ DNS ์บ์, UDP โ eBPF).
-
coredns_dns_request_duration_seconds๋ฉํธ๋ฆญ์ผ๋ก ์๋ต ์๊ฐ ๋ชจ๋ํฐ๋งํ๋ค.
ErrImagePull์ ์ฒซ ๋ฒ์งธ ์ด๋ฏธ์ง pull ์คํจ, ImagePullBackOff๋ ์ฌ์๋ ์ค ๋ฐฑ์คํ ์ํ๋ค.
- โ ์ด๋ฏธ์ง ์กด์ฌ ์ ํจ โ
- โก Private Registry ์ธ์ฆ ์คํจ โ
- โข Rate Limit(Docker Hub) โ
- โฃ ๋คํธ์ํฌ ๋ฌธ์ .
- โ imagePullSecrets๋ก Registry ์ธ์ฆ(docker-registry Secret ์์ฑ) โ
- โก ServiceAccount์ imagePullSecrets ์ถ๊ฐํ์ฌ ์๋ ์ ์ฉ โ
- โข ImagePullPolicy๋ฅผ IfNotPresent๋ก ๋ณ๊ฒฝํ์ฌ ๋ก์ปฌ ์ด๋ฏธ์ง ์ฐ์ ์ฌ์ฉ โ
- โฃ Registry Mirror ๋๋ Harbor ๊ตฌ์ถ.
- kubectl describe pod๋ก ์ ํํ ์๋ฌ ํ์ธํ๋ค.
- โ kubelet ์ค์ง/crash โ
- โก ๋คํธ์ํฌ ํํฐ์ โ
- โข ๋์คํฌ/๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ โ
- โฃ CNI ๋ฌธ์ .
- โ kubectl describe node๋ก Condition ํ์ธ(DiskPressure, MemoryPressure, PIDPressure) โ
- โก ๋ ธ๋ SSH ์ ์ ํ systemctl status kubelet โ
- โข journalctl -u kubelet๋ก ๋ก๊ทธ ํ์ธ โ
- โฃ df -h, free -m๋ก ๋ฆฌ์์ค ํ์ธ.
- โ systemctl restart kubelet โ
- โก ๋์คํฌ ์ ๋ฆฌ(docker system prune, /var/log/* ์ญ์ ) โ
- โข CNI Pod ์ฌ์์ โ
- โฃ ๋ณต๊ตฌ ์ ๋๋ฉด ๋ ธ๋ ๊ต์ฒด.
- Pod๋
--pod-eviction-timeout(๊ธฐ๋ณธ 5๋ถ) ํ ๋ค๋ฅธ ๋ ธ๋๋ก ์ฌ์ค์ผ์ค๋๋ค.
PV/PVC๊ฐ Terminating ์ํ๋ก ๋ฉ์ถ๋ ์์ธ์ Finalizer ๋๋ฌธ์ด๋ค. Finalizer๋ ๋ฆฌ์์ค ์ญ์ ์ ์ ๋ฆฌ ์์ ์ ๋ณด์ฅํ๋ค.
- โ
kubectl patch pv <pv-name> -p '{"metadata":{"finalizers":null}}'โ - โก
kubectl patch pvc <pvc-name> -p '{"metadata":{"finalizers":null}}'
์ฌ์ฉ ์ค์ธ Pod๊ฐ ์์ผ๋ฉด ๋จผ์ ์ญ์ ํ๋ค.
AWS EBS์ ๊ฒฝ์ฐ Volume์ด ์ค์ ๋ก detach๋์ง ์์ ๋ฉ์ถ ์ ์์ผ๋ฏ๋ก, AWS Console์์ ์๋ detachํ๋ค.
Reclaim Policy๊ฐ Retain์ด๋ฉด PVC ์ญ์ ํ PV๊ฐ Released ์ํ๋ก ๋จ์ผ๋ฏ๋ก ์๋ ์ ๋ฆฌ๊ฐ ํ์ํ๋ค.
volumeBindingMode: WaitForFirstConsumer ๋ Pod ์์ด PVC๋ง ์์ฑ ์ Pending ์ํ๋ก ์ ์ง๋๋ค.
๐ก ์ฉ์ด ์ค๋ช :
- ํธ๋ฌ๋ธ์ํ ๊ด๋ จ ์ฉ์ด๋ค(CPU Throttling, CFS Quota, ndots, CoreDNS, ImagePullBackOff, Node NotReady, Finalizer ๋ฑ)์ ๋ํ
- ์์ธํ ์ค๋ช ์ ๋ฌธ์ ์๋จ์ ์ฃผ์ ์ฉ์ด ํตํฉ ์ ๋ฆฌ > ๋ฌธ์ ํด๊ฒฐ ์น์ ์ ์ฐธ๊ณ ํ์ธ์.