๋ชฉ์ฐจ
ย View Certificates
์ฟ ๋ฒ๋คํฐ์ค ํ๊ฒฝ์ ์ธ์ฆ์์ ๊ด๋ จ๋ ์ฌ๋ฌ ์ด์๊ฐ ์์ ๋, ํด๋ฌ์คํฐ ์ ์ฒด์ ๋ชจ๋ ์ธ์ฆ์์ ๋ํ Health Check๋ฅผ ์ํํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น?
ย Cluster Set Up
ํด๋ฌ์คํฐ ๋ฐฐํฌ์ ๋ฐ๋ผ ์ธ์ฆ์ ์์ฑ ๋ฐ ๊ด๋ฆฌ์ ๋ํ ์๋ฃจ์
์ด ๋ค์ํ๋ค.
ํด๋ฌ์คํฐ๋ฅผ ์ฒ์๋ถํฐ ๋ฐฐํฌํ๋ค๋ฉด ์ค์ค๋ก ์ธ์ฆ์๋ฅผ ์์ฑํด์ผ ํ๊ณ , ๋ค์ดํฐ๋ธ ์๋น์ค๋ก ์ปดํฌํดํธ๋ฅผ ๋ฐฐํฌํ๋ค. kubeadm ๊ฐ์ ์๋ ํ๋ก๋น์ ๋ ํด์ ์ฌ์ฉํด ํด๋ฌ์คํฐ๋ฅผ ๋ฐฐํฌํ ๊ฒฝ์ฐ์๋ ๋ชจ๋ ์ปดํฌ๋ํธ๊ฐ Pod๋ก ๋ฐฐํฌ๋๊ธฐ ๋๋ฌธ์ ์ ๋ณด๋ฅผ ์ด๋์ ํ์ธํด์ผ ํ๋์ง ํ์
ํ๋ ๊ฒ์ด ์ค์ํ๋ค.
The Hard Way
kubeadm
kubeadm์ผ๋ก ์
์
ํ ํ๊ฒฝ์์์ Health Check๋ฅผ ์งํํ๊ณ ์ ํ๋ค.
Definition File
๋จผ์ ์ ์ ํ์ผ์ ์ฐพ์ ์ธ์ฆ์ ํ์ผ์ ๋ํ ์ ๋ณด๋ฅผ ํ์ธํ๋ค. kubeadm์ผ๋ก ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ฑํ์ ๊ฒฝ์ฐ, /etc/kubernetes/manifests/ ํด๋์ ํด๋ฌ์คํฐ ์ปดํฌ๋ํธ๋ค์ ๋ํ ์ ์ ํ์ผ์ด ์์ฑ๋์ด ์๋ค.
ย CERT File
๊ตฌ์ฑ์์์ ์ ์ํ์ผ์ ํตํด ์ป์ ์ธ์ฆ์ ํ์ผ์ ๋์ฝ๋ฉํ์ฌ ์ธ์ฆ์์ ์ธ๋ถ ์ฌํญ์ ํ์ธํ๋ค. openssl x509 ๋ช
๋ น์ ํตํด ์ธ์ฆ์์ ์ธ๋ถ ์ฌํญ์ ํ์ธํ ์ ์๋ค.
# openssl x509 -in <path-to-certificates-file> -text -noout
openssl x509 -in /etc/kubernetes/manifests/pki/apiserver.crt -text -noout
Bash
๋ณต์ฌ
โข
์ธ์ฆ์์ Subject ์น์
์ ํตํด ์ด๋ฆ์ด ๋ฌด์์ธ์ง ํ์ธ
โข
๋ค๋ฅธ ์ปดํฌ๋ํธ๋ค์ด ํด๋น ์ปดํฌ๋ํธ๋ฅผ ์ด๋ค ๋ค๋ฅธ ์ด๋ฆ์ผ๋ก ์ฐธ์กฐํ ์ ์๋์ง Alternative Name ํ์ธ
โข
์ธ์ฆ์์ ์ ํจ์ฑ ์น์
์ ์ ํจ๊ธฐ๊ฐ ๋ง๋ฃ์ผ(Not After) ํ์ธ
โข
์ธ์ฆ์์ ๋ฐ๊ธ์(Issuer) ํ์ธ
โฆ
๋ฐ๊ธ์๋ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํ CA์ด์ด์ผ ํ๋ค
โฆ
kubeadm์ Kubernetes CA์ ์ด๋ฆ์ kubernetes ์์ฒด๋ก ์ง์ ํ๋ค
ย Inspect Logs
ํด๋ฌ์คํฐ์ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด ๋ก๊ทธ๋ฅผ ์ดํด์ผ ํ๋ค. ๋ก๊ทธ ๋ํ ํด๋ฌ์คํฐ์ ์
์
ํ๊ฒฝ์ ๋ฐ๋ผ ํ์ธํ ์ ์๋ ๋ฐฉ๋ฒ์ด ๋ค์ํ๋ค.
Native Service
ํด๋ฌ์คํฐ๋ฅผ ์ฒ์๋ถํฐ ์ค์ ํ๊ณ OS์์ Native Service๋ก ๊ตฌ์ฑ๋์ด ์๋ค๋ฉด ์ด์ ์ฒด์ ๋ก๊น
๊ธฐ๋ฅ์ ์ด์ฉํ ์๋น์ค ๋ก๊ทธ๋ฅผ ํ์ธํด์ผ ํ๋ค.
journalctl -u etcd.service -l
Bash
๋ณต์ฌ
Kubeadm
Pod Logs
kubeadm์ผ๋ก ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ฑํ ๊ฒฝ์ฐ์๋ ์ปดํฌ๋ํธ๊ฐ Pod๋ก ๋ฐฐํฌ๋๊ธฐ ๋๋ฌธ์ Pod์ ๋ํ ๋ก๊ทธ๋ฅผ ํ์ธํ ์ ์๋ค.
kubectl logs etcd-master
Bash
๋ณต์ฌ
CRIO Logs Docker Logs
kube-apiserver๋ ETCD ์๋ฒ ๊ฐ์ ํต์ฌ ๊ตฌ์ฑ ์์๊ฐ ๋ค์ด๋ ๊ฒฝ์ฐ, kubectl ๋ช
๋ น์ด ์๋ํ์ง ์์ ์ ์๋ค. ์ด ๋๋ ํ ๋ ๋ฒจ ์๋์ธ CRIO์ ๋ก๊ทธ๋ฅผ ํ์ธํด์ผ ํ๋ค. (Kubernetes๋ ๋ ์ด์ Docker๋ฅผ ๋ฐํ์์ผ๋ก ์ฌ์ฉํ์ง ์์ CRIO๋ฅผ ํตํด ํ์ธํด์ผ ํ๋ค)
# ์ปจํ
์ด๋ ID ํ์ธ
crictl ps -a
# ํ์ธ๋ ์ปจํ
์ด๋ ID๋ฅผ ํตํด ๋ก๊ทธ ํ์ธ
circtl logs <Container ID>
Bash
๋ณต์ฌ
ย Summary
์ธ์ฆ์์ ์ ๋ณด๋ฅผ ํ์ธํ๊ธฐ ์ํด ์ดํด์ผ ํ ๊ฒ์ ๋ค์๊ณผ ๊ฐ๋ค:
โข
์ฌ๋ฐ๋ฅธ ์ด๋ฆ๊ณผ ์ฌ๋ฐ๋ฅธ ๋์ฒด ์ด๋ฆ์ ๊ฐ๊ณ ์๋๊ฐ
โข
์ธ์ฆ์๊ฐ ์ฌ๋ฐ๋ฅธ ์กฐ์ง์ ์ผ๋ถ์ธ๊ฐ
โข
์ธ์ฆ์๊ฐ ์ฌ๋ฐ๋ฅธ ๋ฐ๊ธ์์ ์ํด ๋ฐ๊ธ๋์๋๊ฐ (์ค์)
โข
์ธ์ฆ์๊ฐ ๋ง๋ฃ๋์ง ์์๋๊ฐ (์ค์)
๊ฐ ์ปดํฌ๋ํธ์ ์ธ์ฆ์๋ง๋ค ํ์๋๋ ์๊ตฌ์ฌํญ์ Docs๋ฅผ ํตํด ํ์ธํ ์ ์๋ค.
๋์ํ์ง ์๋๋ค๋ฉด Log๋ฅผ ํ์ธํจ์ผ๋ก์จ ์ด๋ค ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ ์๋์ง ์ฒดํฌํ๊ณ ํด๊ฒฐํด์ผ ํ๋ค
# ํด๋ฌ์คํฐ๊ฐ OS์ Native Service๋ก ๋ฐฐํฌ๋ ๊ฒฝ์ฐ
journalctl -u <service> -l
# kubeadm ๊ฐ์ ํด์ ํตํด ํด๋ฌ์คํฐ ๋ฐฐํฌํ ๊ฒฝ์ฐ
kubectl logs <pod>
# kubectl์ด ๋์ํ์ง ์๋ ๊ฒฝ์ฐ
crictl ps -a
crictl logs <Container ID>
Bash
๋ณต์ฌ