Post

[Kubernetes] ๐Ÿ” kubeadm ์ธ์ฆ์„œ ์ž๋™ ๊ฐฑ์‹ : systemd ํƒ€์ด๋จธ๋กœ ๋งŒ๋ฃŒ ๋ฐฉ์ง€ํ•˜๊ธฐ

kubeadm์œผ๋กœ ๊ตฌ์ถ•ํ•œ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ธ์ฆ์„œ๋ฅผ systemd ํƒ€์ด๋จธ์™€ ์„œ๋น„์Šค๋กœ ์ž๋™ ๊ฐฑ์‹ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹จ๊ณ„๋ณ„๋กœ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งŒ๋ฃŒ 30์ผ ์ „ ๊ฐ์ง€ ํ›„ kubeadm certs renew all๋กœ 1๋…„ ์—ฐ์žฅํ•ฉ๋‹ˆ๋‹ค.

[Kubernetes] ๐Ÿ” kubeadm ์ธ์ฆ์„œ ์ž๋™ ๊ฐฑ์‹ : systemd ํƒ€์ด๋จธ๋กœ ๋งŒ๋ฃŒ ๋ฐฉ์ง€ํ•˜๊ธฐ

kubeadm์œผ๋กœ ์„ค์น˜ํ•œ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ์ธ์ฆ์„œ๋Š” ๊ธฐ๋ณธ ์œ ํšจ๊ธฐ๊ฐ„์ด 1๋…„์ž…๋‹ˆ๋‹ค. ์šด์˜ ์ค‘์ธ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์ธ์ฆ์„œ๊ฐ€ ๋งŒ๋ฃŒ๋˜๋ฉด API ์„œ๋ฒ„, ์ปจํŠธ๋กค๋Ÿฌ ๋งค๋‹ˆ์ €, ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ํ†ต์‹ ์„ ๋ฉˆ์ถ”๋ฉด์„œ ํด๋Ÿฌ์Šคํ„ฐ ์ „์ฒด๊ฐ€ ๋งˆ๋น„๋ฉ๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” systemd ํƒ€์ด๋จธ๋กœ ๋งŒ๋ฃŒ 30์ผ ์ „์— ์ž๋™์œผ๋กœ kubeadm certs renew all์„ ์‹คํ–‰ํ•˜์—ฌ ์ธ์ฆ์„œ๋ฅผ ๋ฌด์ค‘๋‹จ์œผ๋กœ ๊ฐฑ์‹ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ”‘ kubeadm ์ธ์ฆ์„œ๋ž€?

kubeadm์€ ํด๋Ÿฌ์Šคํ„ฐ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ์‹œ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” TLS ์ธ์ฆ์„œ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ธ์ฆ์„œ๋Š” /etc/kubernetes/pki/ ๊ฒฝ๋กœ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

๊ตฌ๋ถ„์ธ์ฆ์„œ์šฉ๋„
CAca.crt, ca.keyํด๋Ÿฌ์Šคํ„ฐ ๋ฃจํŠธ CA (์œ ํšจ๊ธฐ๊ฐ„ 10๋…„)
API Serverapiserver.crtkube-apiserver HTTPS
API Server (kubelet)apiserver-kubelet-client.crtapiserver โ†’ kubelet ํ†ต์‹ 
Front Proxyfront-proxy-*.crtAggregation Layer
etcdetcd/*.crtetcd ๋ฉค๋ฒ„ ๊ฐ„ + ํด๋ผ์ด์–ธํŠธ ํ†ต์‹ 
kubeconfig ๋‚ด ์ธ์ฆ์„œadmin.conf, controller-manager.conf, scheduler.conf์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ์ปดํฌ๋„ŒํŠธ ์ธ์ฆ

Tip: CA ์ธ์ฆ์„œ๋Š” 10๋…„์ด์ง€๋งŒ ๊ทธ ์™ธ leaf ์ธ์ฆ์„œ๋Š” ๋ชจ๋‘ 1๋…„์ž…๋‹ˆ๋‹ค. CA๊ฐ€ ๋งŒ๋ฃŒ๋˜๋ฉด ํด๋Ÿฌ์Šคํ„ฐ ์žฌ์„ค์น˜ ์ˆ˜์ค€์˜ ์ž‘์—…์ด ํ•„์š”ํ•˜๋‹ˆ, leaf ์ธ์ฆ์„œ ๊ฐฑ์‹  ์‹œ CA ๋งŒ๋ฃŒ์ผ๋„ ํ•จ๊ป˜ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ” ์ธ์ฆ์„œ ๋งŒ๋ฃŒ์ผ ํ™•์ธํ•˜๊ธฐ

kubeadm์œผ๋กœ ํ™•์ธ

kubeadm certs check-expiration ๋ช…๋ น์œผ๋กœ ๋ชจ๋“  ์ธ์ฆ์„œ์˜ ๋งŒ๋ฃŒ์ผ์„ ํ•œ ๋ฒˆ์— ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1
sudo kubeadm certs check-expiration

์ถœ๋ ฅ ์˜ˆ์‹œ:

1
2
3
4
5
6
7
8
9
10
11
12
13
CERTIFICATE                EXPIRES                  RESIDUAL TIME   CERTIFICATE AUTHORITY   EXTERNALLY MANAGED
admin.conf                 May 26, 2027 03:00 UTC   364d            ca                      no
apiserver                  May 26, 2027 03:00 UTC   364d            ca                      no
apiserver-kubelet-client   May 26, 2027 03:00 UTC   364d            ca                      no
controller-manager.conf    May 26, 2027 03:00 UTC   364d            ca                      no
etcd-server                May 26, 2027 03:00 UTC   364d            etcd-ca                 no
front-proxy-client         May 26, 2027 03:00 UTC   364d            front-proxy-ca          no
scheduler.conf             May 26, 2027 03:00 UTC   364d            ca                      no

CERTIFICATE AUTHORITY      EXPIRES                  RESIDUAL TIME
ca                         May 24, 2036 03:00 UTC   9y
etcd-ca                    May 24, 2036 03:00 UTC   9y
front-proxy-ca             May 24, 2036 03:00 UTC   9y

openssl๋กœ ๊ฐœ๋ณ„ ํ™•์ธ

ํŠน์ • ์ธ์ฆ์„œ๋งŒ ๋น ๋ฅด๊ฒŒ ํ™•์ธํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด openssl์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

1
2
sudo openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -enddate
# notAfter=May 26 03:00:00 2027 GMT

๐Ÿ› ๏ธ ์ˆ˜๋™ ๊ฐฑ์‹  ๋ฐฉ๋ฒ•

๊ธด๊ธ‰ ์ƒํ™ฉ์—์„œ๋Š” kubeadm certs renew all๋กœ ์ฆ‰์‹œ ๊ฐฑ์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1
2
3
4
5
6
7
8
9
10
# 1. ๋ชจ๋“  ์ธ์ฆ์„œ ๊ฐฑ์‹  (๋‚จ์€ ๊ธฐ๊ฐ„๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ 1๋…„ ์—ฐ์žฅ)
sudo kubeadm certs renew all

# 2. ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ Pod ์žฌ์‹œ์ž‘ (์ •์  Pod์ด๋ฏ€๋กœ ์ปจํ…Œ์ด๋„ˆ๋งŒ ์žฌ๊ธฐ๋™)
sudo crictl pods --namespace kube-system \
  --name 'kube-apiserver-*|kube-controller-manager-*|kube-scheduler-*|etcd-*' -q \
  | xargs sudo crictl rmp -f

# 3. admin.conf ๋ฐฑ์—… ํ›„ .kube/config ๊ฐฑ์‹ 
sudo cp /etc/kubernetes/admin.conf /root/.kube/config

โš ๏ธ kubelet ์ธ์ฆ์„œ(/var/lib/kubelet/pki/kubelet-client-current.pem)๋Š” ๋ณ„๋„๋กœ ์ž๋™ ํšŒ์ „๋ฉ๋‹ˆ๋‹ค. kubelet.conf์— rotateCertificates: true๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.


โฐ systemd ํƒ€์ด๋จธ๋กœ ์ž๋™ ๊ฐฑ์‹  ๊ตฌ์„ฑํ•˜๊ธฐ

์ˆ˜๋™ ๊ฐฑ์‹ ์€ ํœด๋จผ ์—๋Ÿฌ๋กœ ๋ˆ„๋ฝ๋˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ๋งค์ฃผ ์›”์š”์ผ ์ƒˆ๋ฒฝ 3์‹œ์— ๋งŒ๋ฃŒ์ผ์„ ์ ๊ฒ€ํ•˜๊ณ , 30์ผ ๋ฏธ๋งŒ์ด๋ฉด ์ž๋™์œผ๋กœ ๊ฐฑ์‹ ํ•˜๋Š” systemd ํƒ€์ด๋จธ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋™์ž‘ ํ๋ฆ„

1
2
3
4
5
6
7
8
9
10
11
12
13
14
k8s-certs-renew.timer  (๋งค์ฃผ ์›” 03:00)
        โ”‚ ํŠธ๋ฆฌ๊ฑฐ
        โ–ผ
k8s-certs-renew.service  (oneshot)
        โ”‚ ExecStart
        โ–ผ
/usr/local/bin/kube-scripts/k8s-certs-renew.sh
        โ”‚
        โ”œโ”€ kubeadm certs check-expiration
        โ”œโ”€ ๋งŒ๋ฃŒ๊นŒ์ง€ 30์ผ ๋ฏธ๋งŒ์ด๋ฉด:
        โ”‚    โ”œโ”€ kubeadm certs renew all
        โ”‚    โ”œโ”€ crictl๋กœ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ Pod ์žฌ๊ธฐ๋™
        โ”‚    โ””โ”€ admin.conf โ†’ /root/.kube/config ๋ณต์‚ฌ
        โ””โ”€ apiserver ๊ธฐ๋™ ๋Œ€๊ธฐ (6443 ํฌํŠธ)

1๏ธโƒฃ ๊ฐฑ์‹  ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ

/usr/local/bin/kube-scripts/k8s-certs-renew.sh ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
sudo mkdir -p /usr/local/bin/kube-scripts
sudo tee /usr/local/bin/kube-scripts/k8s-certs-renew.sh > /dev/null <<'EOF'
#!/bin/bash
kubeadmCerts='/usr/local/bin/kubeadm certs'

getCertValidDays() {
  local earliestExpireDate
  earliestExpireDate=$(${kubeadmCerts} check-expiration \
    | grep -o "[A-Za-z]\{3,4\}\s\w\w,\s[0-9]\{4,\}\s\w*:\w*\s\w*\s*" \
    | xargs -I {} date -d {} +%s | sort | head -n 1)
  local today
  today="$(date +%s)"
  echo -n $(( (earliestExpireDate - today) / (24 * 60 * 60) ))
}

echo "## Expiration before renewal ##"
${kubeadmCerts} check-expiration

if [ "$(getCertValidDays)" -lt 30 ]; then
  echo "## Renewing certificates managed by kubeadm ##"
  ${kubeadmCerts} renew all

  echo "## Restarting control plane pods managed by kubeadm ##"
  crictl pods --namespace kube-system \
    --name 'kube-scheduler-*|kube-controller-manager-*|kube-apiserver-*|etcd-*' -q \
    | xargs crictl rmp -f

  echo "## Updating /root/.kube/config ##"
  cp /etc/kubernetes/admin.conf /root/.kube/config
fi

echo "## Waiting for apiserver to be up again ##"
until printf "" 2>>/dev/null >>/dev/tcp/127.0.0.1/6443; do sleep 1; done

echo "## Expiration after renewal ##"
${kubeadmCerts} check-expiration
EOF

sudo chmod +x /usr/local/bin/kube-scripts/k8s-certs-renew.sh

Tip: kubeadm ๋ฐ”์ด๋„ˆ๋ฆฌ ๊ฒฝ๋กœ๋Š” ํ™˜๊ฒฝ๋งˆ๋‹ค ๋‹ค๋ฆ…๋‹ˆ๋‹ค. which kubeadm์œผ๋กœ ํ™•์ธ ํ›„ ์Šคํฌ๋ฆฝํŠธ์˜ kubeadmCerts ๋ณ€์ˆ˜๋ฅผ ์กฐ์ •ํ•˜์„ธ์š”. (/usr/bin/kubeadm ๋˜๋Š” /usr/local/bin/kubeadm)

2๏ธโƒฃ systemd ์„œ๋น„์Šค ์ž‘์„ฑ

/etc/systemd/system/k8s-certs-renew.service ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

1
2
3
4
5
6
7
8
sudo tee /etc/systemd/system/k8s-certs-renew.service > /dev/null <<EOF
[Unit]
Description=Renew K8S control plane certificates

[Service]
Type=oneshot
ExecStart=/usr/local/bin/kube-scripts/k8s-certs-renew.sh
EOF

3๏ธโƒฃ systemd ํƒ€์ด๋จธ ์ž‘์„ฑ

/etc/systemd/system/k8s-certs-renew.timer ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

1
2
3
4
5
6
7
8
9
10
11
sudo tee /etc/systemd/system/k8s-certs-renew.timer > /dev/null <<EOF
[Unit]
Description=Timer to renew K8S control plane certificates

[Timer]
OnCalendar=Mon *-*-* 03:00:00
Unit=k8s-certs-renew.service

[Install]
WantedBy=multi-user.target
EOF

4๏ธโƒฃ ํƒ€์ด๋จธ ํ™œ์„ฑํ™”

1
2
sudo systemctl daemon-reload
sudo systemctl enable --now k8s-certs-renew.timer

5๏ธโƒฃ ํƒ€์ด๋จธ ์ƒํƒœ ํ™•์ธ

1
2
3
4
5
# ๋‹ค์Œ ์‹คํ–‰ ์‹œ๊ฐ ํ™•์ธ
systemctl list-timers k8s-certs-renew.timer

# ์„œ๋น„์Šค ๋กœ๊ทธ ํ™•์ธ
journalctl -u k8s-certs-renew.service --no-pager

์ถœ๋ ฅ ์˜ˆ์‹œ:

1
2
NEXT                        LEFT     LAST PASSED UNIT                       ACTIVATES
Mon 2026-06-01 03:00:00 UTC 5d 10h   -    -      k8s-certs-renew.timer      k8s-certs-renew.service

๐Ÿงช ๋™์ž‘ ํ…Œ์ŠคํŠธ

์‹ค์ œ ๋งŒ๋ฃŒ๊ฐ€ ์ž„๋ฐ•ํ•˜์ง€ ์•Š์•„๋„ ์ˆ˜๋™์œผ๋กœ ์„œ๋น„์Šค๋ฅผ ์‹คํ–‰ํ•ด ๋™์ž‘์„ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1
2
3
4
5
# ์ˆ˜๋™ ์‹คํ–‰ (renew ๋ถ„๊ธฐ๋Š” ํƒ€์ง€ ์•Š๊ณ  check-expiration๋งŒ ์ถœ๋ ฅ๋จ)
sudo systemctl start k8s-certs-renew.service

# ๊ฒฐ๊ณผ ํ™•์ธ
journalctl -u k8s-certs-renew.service -f

๋งŒ๋ฃŒ 30์ผ ๋ฏธ๋งŒ ์กฐ๊ฑด์„ ๊ฐ•์ œ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด ์Šคํฌ๋ฆฝํŠธ์˜ if [ "$(getCertValidDays)" -lt 30 ] ๋ถ€๋ถ„์„ ์ž„์‹œ๋กœ -lt 9999๋กœ ๋ณ€๊ฒฝํ•œ ๋’ค ์‹คํ–‰ โ†’ ๋™์ž‘ ํ™•์ธ ํ›„ ์›๋ณตํ•ฉ๋‹ˆ๋‹ค.


โš ๏ธ ์šด์˜ ์‹œ ์ฃผ์˜์‚ฌํ•ญ

ํ•ญ๋ชฉ๋‚ด์šฉ
HA ํด๋Ÿฌ์Šคํ„ฐ๋ชจ๋“  ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ๋…ธ๋“œ์— ๋™์ผํ•œ ํƒ€์ด๋จธ๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋…ธ๋“œ๋ณ„๋กœ ์ธ์ฆ์„œ๊ฐ€ ๋”ฐ๋กœ ๋ฐœ๊ธ‰๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
CA ๋งŒ๋ฃŒCA ์ธ์ฆ์„œ๋Š” kubeadm certs renew all๋กœ ๊ฐฑ์‹ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 10๋…„ ๋งŒ๋ฃŒ๊ฐ€ ๊ฐ€๊นŒ์›Œ์ง€๋ฉด ๋ณ„๋„ ์ ˆ์ฐจ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
kubeconfig ์‚ฌ์šฉ์ž/root/.kube/config๋งŒ ๊ฐฑ์‹ ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” kubeconfig๋„ ๋ณ„๋„๋กœ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์™ธ๋ถ€ ๊ด€๋ฆฌ ์ธ์ฆ์„œEXTERNALLY MANAGED=yes๋กœ ํ‘œ์‹œ๋˜๋Š” ์ธ์ฆ์„œ๋Š” ๊ฐฑ์‹ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. (์˜ˆ: Vault, cert-manager ๋ฐœ๊ธ‰)
etcd ๋ฐฑ์—…๊ฐฑ์‹  ์ž‘์—… ์ „ ๋ฐ˜๋“œ์‹œ etcd ์Šค๋ƒ…์ƒท์„ ํ™•๋ณดํ•ฉ๋‹ˆ๋‹ค.

โ“ ์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

Q. kubeadm์œผ๋กœ ์„ค์น˜ํ•˜์ง€ ์•Š์€ ํด๋Ÿฌ์Šคํ„ฐ์—๋„ ์ ์šฉ ๊ฐ€๋Šฅํ•œ๊ฐ€์š”?

์•„๋‹ˆ์š”. ์ด ์Šคํฌ๋ฆฝํŠธ๋Š” kubeadm certs renew ๋ช…๋ น์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค. kubespray๋กœ ์„ค์น˜ํ•œ ํด๋Ÿฌ์Šคํ„ฐ๋Š” kubeadm ๊ธฐ๋ฐ˜์ด๋ผ ์ ์šฉ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, k3s๋‚˜ RKE2์ฒ˜๋Ÿผ ์ž์ฒด ์ธ์ฆ์„œ ๊ด€๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์žˆ๋Š” ๋ฐฐํฌํŒ์€ ๊ฐ ๋„๊ตฌ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ํšŒ์ „ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Q. ์ธ์ฆ์„œ ์œ ํšจ๊ธฐ๊ฐ„์„ 1๋…„๋ณด๋‹ค ๊ธธ๊ฒŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. kubeadm init ์‹œ --cert-validity-period ํ”Œ๋ž˜๊ทธ(v1.31+)๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ClusterConfiguration์—์„œ certificateValidityPeriod๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ ๋ณด์•ˆ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋Š” ์งง์€ ์ฃผ๊ธฐ๋กœ ์ž์ฃผ ๊ฐฑ์‹ ํ•˜๋Š” ๊ฒƒ์ด๋ผ, 1๋…„์„ ์œ ์ง€ํ•˜๊ณ  ์ž๋™ํ™”๋ฅผ ๋„์ž…ํ•˜๋Š” ํŽธ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.

Q. ๊ฐฑ์‹  ์‹œ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์ค‘๋‹จ๋˜๋‚˜์š”?

์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ Pod ์žฌ๊ธฐ๋™ ์‹œ ์ˆ˜ ์ดˆ๊ฐ„ API ์‘๋‹ต์ด ์ง€์—ฐ๋  ์ˆ˜ ์žˆ์ง€๋งŒ, ์›Œํฌ๋กœ๋“œ(Pod)์—๋Š” ์˜ํ–ฅ์ด ์—†์Šต๋‹ˆ๋‹ค. HA ํด๋Ÿฌ์Šคํ„ฐ๋ผ๋ฉด ๋…ธ๋“œ๋ณ„ ํƒ€์ด๋จธ๋ฅผ ๋™์ผ ์‹œ๊ฐ์œผ๋กœ ์„ค์ •ํ•˜์ง€ ๋ง๊ณ  5~10๋ถ„ ๊ฐ„๊ฒฉ์œผ๋กœ ๋ถ„์‚ฐํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.

Q. kubelet ์ธ์ฆ์„œ๋Š” ์–ด๋–ป๊ฒŒ ๊ฐฑ์‹ ๋˜๋‚˜์š”?

kubelet ์ธ์ฆ์„œ๋Š” RotateKubeletClientCertificate ๊ธฐ๋Šฅ ๊ฒŒ์ดํŠธ(๊ธฐ๋ณธ ํ™œ์„ฑํ™”)์— ์˜ํ•ด ์ž๋™ ํšŒ์ „๋ฉ๋‹ˆ๋‹ค. kubeadm certs renew๊ฐ€ ๊ด€์—ฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. /var/lib/kubelet/pki/ ์•„๋ž˜์˜ kubelet-client-current.pem ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๊ฐ€ ์ฃผ๊ธฐ์ ์œผ๋กœ ๊ฐฑ์‹ ๋ฉ๋‹ˆ๋‹ค.

Q. ๊ฐฑ์‹  ํ›„ kubectl ๋ช…๋ น์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

/etc/kubernetes/admin.conf์˜ ์ธ์ฆ์„œ๋Š” ๊ฐฑ์‹ ๋์ง€๋งŒ ์‚ฌ์šฉ์ž ํ™ˆ์˜ ~/.kube/config๊ฐ€ ๊ฐฑ์‹ ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ช…๋ น์œผ๋กœ ๋™๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.

1
2
sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

๐Ÿ“š ์ฐธ๊ณ 

This post is licensed under CC BY 4.0 by the author.