Search

[CKA] 42. View Certificate Details

Date
2025/01/13
Category
Devops
Tag
Kubernetes
CKA
Security
๋ชฉ์ฐจ

ย 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
๋ณต์‚ฌ