๊ธฐ๋ฅ ์์ฒญ
kubeadm ๋ฒ์ v1.12.5
ํ๊ฒฝ :
uname -a
) : Linux node1 4.4.0-141-generic # 167-Ubuntu SMP Wed Dec 5 10:40:15 UTC 2018 x86_64 x86_64 x86_64 GNU / Linux๋ด ํด๋ฌ์คํฐ ์ค 3 ๊ฐ๊ฐ ์ด์ 1 ๋ ์ด๋์์ต๋๋ค. ์ผ๋ถ ์ธ์ฆ์๋ 1 ๋ ์ ํจ ๊ธฐ๊ฐ์ผ๋ก ๋ฐ๊ธ๋๋ฏ๋ก ํด๋ฌ์คํฐ๊ฐ ์ ๋๋ก ์๋ํ์ง ์์ต๋๋ค. ์ธ์ฆ์๊ฐ ๋ง๋ฃ ๋ ์ง์ ๋๋ฌ ํ๊ธฐ ์ ์ ํด๋ฌ์คํฐ๋ฅผ 1.10.12์์ 1.11.6 ๋ฐ 1.12.5๋ก ์ ๊ทธ๋ ์ด๋ํ์ต๋๋ค.
๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
/var/lib/kubelet/pki/kubelet-client-current.pem
์ด (๊ฐ) ์ฌ๋ฐ๋ฅด๊ฒ ์ํ ๋์์ง๋งclient-certificate
๋ฐ client-key
์์ /etc/kubernetes/kubelet.conf
์ฌ์ ํ ์ง์ /var/lib/kubelet/pki/kubelet-client.*
client-certificate-data
๋ฐ client-key-data
์์ /etc/kubernetes/kubelet.conf
์ฌ์ ํ ๋นจ๋ฆฌ๊ฐ ์ค๋๋ ๊ฒ ์ธ์ฆ์๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.client-certificate-data
๋ฐ client-key-data
๋ฅผ ์๋์ผ๋ก ์
๋ฐ์ดํธํด์ผํ์ต๋๋ค.sudo kubeadm alpha phase kubeconfig kubelet
๋ฅผ ์ฌ์ฉํ์ฌ ๋ง์คํฐ ๋ฐ ๋ชจ๋ ๋
ธ๋์์์ด ํ์ผ์ ์ฌ์์ฑ ํ ์ ์์ต๋๋ค!kubeadm alpha phase certs renew all
๋ช
๋ น sudo kubeadm alpha phase certs renew all
์์๋ ๋ชจ๋ ๋ง๋ฃ ๋ ์ธ์ฆ์ ํ์ ๊ฐฑ์ ํ๋ ๋ง์คํฐ์์ /etc/kubernetes/pki
๊ด์ฐฎ์ง ๋ง,/etc/kubernetes/admin.conf
/etc/kubernetes/controller-manager.conf
/etc/kubernetes/scheduler.conf
sudo kubeadm alpha phase kubeconfig all --apiserver-advertise-address=x.x.x.x
๋ฅผ ์ฌ์ฉํด์ผ kubectl -n kube-system delete pod kube-apiserver-mater
์ ์์ง๋ง ์ค์ ๋ก๋ ํฌ๋๊ฐ ๋ค์ ์์๋์ง ์์์ต๋๋ค. Docker ์ค์ง / ์์์ผ๋ก ์ปจํ
์ด๋๋ฅผ ์ค์งํ๊ณ ์์ํด์ผํ์ต๋๋ค.kubeadm alpha phase kubeconfig
๋ ๊ตฌ์ฑ์ด ์์ฑ๋ ํ ์ ์ ํฌ๋๋ฅผ ๋ค์ ์์ํ๊ฑฐ๋ ์ฌ์ฉ์์๊ฒ ๊ทธ๋ ๊ฒํ๋๋ก ์๋ ค์ผํฉ๋๋ค.์น์ ํ๋
์๋๋ ์์ค
๋ฟก ๋นต๋จ
๋ฌผ๋ก ์กฐ์ธ ๋จ๊ณ๊ฐ ์ฐ์ ์์๊ฐ ๋๋ค๋ ์ ์ ์ ์ํ์ญ์์ค.
์ข์์! ๊ฐ์ฌํฉ๋๋ค.
์๋ ํ์ธ์,
์ด ์ฃผ์ ์ ๊ด๋ จํ์ฌ ํ ๊ฐ์ง ๋ ์์ต๋๋ค.
kubeadm alpha phase kubeconfig all
๋ช
๋ น์ ์คํํ ๋ conf ํ์ผ์ด์๋ ๊ฒฝ์ฐ ๋ค์ ๋ฉ์์ง๋ฅผ ํ์ํฉ๋๋ค.
[kubeconfig] Using existing up-to-date KubeConfig file: "/etc/kubernetes/admin.conf"
[kubeconfig] Using existing up-to-date KubeConfig file: "/etc/kubernetes/kubelet.conf"
[kubeconfig] Using existing up-to-date KubeConfig file: "/etc/kubernetes/controller-manager.conf"
[kubeconfig] Using existing up-to-date KubeConfig file: "/etc/kubernetes/scheduler.conf"
์ธ์ฆ์๊ฐ ๋ง๋ฃ๋์๋์ง ํ์ธํ์ง ์์ผ๋ฏ๋ก ๋ด ์๊ฒฌ์ผ๋ก๋ up-to-date
์ด ์๋ชป๋์์ต๋๋ค.
์ ๋ฐ์ดํธ ๋ ์ธ์ฆ์๋ฅผ ํ์ผ๋ก ๊ฐ์ ธ ์ค๋ ค๋ฉด ๋ก๊ทธ๊ฐ ๋ค์๊ณผ ๊ฐ์ด ๋ณด์ด๋ ๊ฒ๋ณด๋ค ๋จผ์ ํ์ผ์ ์ ๊ฑฐํด์ผํฉ๋๋ค.
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/admin.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/controller-manager.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/scheduler.conf"
์ ๊ฒฝ์ฐ์๋ ๊ด์ฐฎ์ง ๋ง ๋ฉฐ์น ํ ์ค๋๋ ์ธ์ฆ์๋ก ์ธํด ์ ์ ํฌ๋์ ํต์ ํ ์ ์์์ต๋๋ค.
์น์ ํ๋
์๋๋ ์์ค
@MalloZup์ ํ ๋น ๋จ
@MalloZup : GitHub์์ ๋ค์ ์ฌ์ฉ์๋ฅผ ํ ๋น ํ ์ ์์ต๋๋ค : MalloZup.
kubernetes ๊ตฌ์ฑ์ ๋ฐ repo ํ๋ ฅ์ ๋ง ํ ๋น ํ ์ ์์ผ๋ฉฐ ๋ฌธ์ / PR์๋ ๋์์ 10 ๋ช
์ ํ ๋น ์๋ง์์ ์ ์์ต๋๋ค.
์์ธํ ๋ด์ฉ ์ ๊ธฐ์ฌ์ ๊ฐ์ด๋ ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ ๋ํ ์๋ต ์ด :
/์์์ธ
PR ๋๊ธ์ ์ฌ์ฉํ์ฌ ๋์ ์ํธ ์์ฉํ๋ ๋ฐฉ๋ฒ์ ์ฌ๊ธฐ์์ ํ์ธํ ์ kubernetes / test-infra ์ ์ฅ์์ ๋ฌธ์ ๋ฅผ ์ ์ถํ์ธ์.
์๋ ํ์ธ์ @adoerler thx ๋ฌธ์ ์ ๋๋ค. ์คํด์ ์์ง๊ฐ์๋ ์ ๋ณด์ ๊ด๋ จํ์ฌ PR https://github.com/kubernetes/kubernetes/pull/73798 ์ ๋ณด๋์ต๋๋ค
์๊ฐ์ด ์์ผ๋ฉด ๋๋จธ์ง ๋ฌธ์ ๋ฅผ ์ดํด ๋ณด๊ฒ ์ต๋๋ค. ๋ฌธ์ ์ ์๊ฐ๊ณผ ์ ํ์ฑ์ ๋ํ Thx
@adoerler ๊ทํ์ ์ ์์ ๋ํด DOC ํ๋ณด๋ฅผ ๋ณด๋์ต๋๋ค. ํฐ์ : rocket :
(https://github.com/kubernetes/website/pull/12579)
์๋ ํ์ธ์ @MalloZup ,
PR ๊ฐ์ฌํฉ๋๋ค!
certs renew
๋ ๊ฒ์์ ์ผ๋ถ์ผ ๋ฟ์ด๋ฏ๋ก kubeconfig ํ์ผ์ ๋ํ ๋ฌธ์ฅ์ด ๋๋ฝ๋์์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ ๊ฒ :
์ธ์ฆ์๊ฐ ๊ฐฑ์ ๋ ํ
kubeadm alpha phase kubeconfig ...
์ฌ์ฉํ์ฌ KubeConfig ํ์ผ์ ๋ค์ ๋ง๋๋ ๊ฒ์ ์์ง ๋ง์ญ์์ค.
๊ณ ๋ง์. ์ค์ ๋ก kubeconfig ํ์ผ๋ ๊ฐฑ์ ํ ์ ์๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ๋ฌธ์๋ฅผ ์ถ๊ฐํ์ง ์์์ต๋๋ค. ๋๋จธ์ง ๋ค์ ์์ ํฌ๋๋ ์ฌ์ฉ์์๊ฒ ์์ํ๊ณ ์ต์ํ์ ๋ฌธ์๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. @fabriziopandini @lubomir @ereslibre ์ด ๊ตฌํ์์ ๋ญ๊ฐ ๋น ์ก๋์? ํฐ์
@MalloZup ์ธ์ฆ์ ๊ฐฑ์ ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง์ ๋ํ ๊น์ ์ง์์ด ์์ต๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ์์์ ์ ์ํ ๋ด์ฉ์ ํฌํจํ์ฌ ์กฐ์น๋ฅผ ์ทจํ๊ธฐ ์ ์ ์ ์ฒด์ ์ธ ์ญ์ฌ๋ฅผ ์ฝ๊ฐ ๋ช ํํํ๊ณ ์ถ์ต๋๋ค.
kubeadm alpha phase certs renew
๊ด๋ฆฌํด์ผํ๋ ํญ๋ชฉkubeadm upgrade
๋์ ์๋์ผ๋ก ๊ด๋ฆฌ๋์ด์ผํ๋ ํญ๋ชฉํ์ง๋ง์ด ๋ถ์ผ์์ ์ ๋ณด๋ค ๋ ์๋ จ ๋ ์ฌ๋๋ค์๊ฒ ๋ง์ง๋ง ๋ง์ ๋จ๊น๋๋ค.
์ฐ๋ฆฌ๊ฐ ๊ถ์ฅํ๋ ์ธ์ฆ์ ๊ฐฑ์ ์ ์ฑ
์ด ๋ฌด์์ธ์ง ๋
ผ์ํ๊ธฐ ์ํด ํ์ ์๊ฐ์ ์์ฝํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ธ์ฆ์ ๊ด๋ฆฌ์ ๋ํ ํ์ด์ง์๋ ๋ช ๊ฐ์ง ์ถ๊ฐ ์ธ๋ถ ์ ๋ณด๊ฐ ํ์ํ ์ ์์ต๋๋ค.
https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-certs
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ์ต์ํ ์์์ผ๋ก ๋จ์ผ ์ ์ด ํ๋ ์ธ ํด๋ฌ์คํฐ์ ๋ํ ์์ ๊ฐ์ด๋๋ฅผ ์์ฑํด์ผํฉ๋๋ค.
์ฌ์ฉ์๊ฐํ๋ ์ผ์ ์ค์ค๋ก ์์๋ด๋ ๊ฒ์
๋๋ค.
https://github.com/kubernetes/kubeadm/issues/581#issuecomment -421477139
^์ด ๋๊ธ๊ณผ ์์ ๋๊ธ์๋ ์ฌ์ฉ์๊ฐ ๋ง๋ ๊ฐ์ด๋๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
์ด๊ฒ์ ๊ณต์ ๊ฐ์ด๋๋ฅผ ์ถ๊ฐํด์ผํ๋ค๋ ์ ํธ์
๋๋ค.
cc @timothysc @liztio
/ ํ ๋น @ereslibre
์๋ฐฑ ๋ช ์ ์ฌ์ฉ์๊ฐ์๋ ํด๋ฌ์คํฐ๊ฐ ํ์ฌ ๋ฉ์ถฐ ์์ต๋๋ค. ๋ง๋ฃ ๋ ์ธ์ฆ์๋ก ๋ฌด์์ํด์ผํ๋์ง ๋งค์ฐ ๋น ๋ฅธ ๊ฐ์ด๋๋ฅผ๋ฐ์ ์ ์์ต๋๊น?
๋ฟก๋ฟก
์ฌ์ฉ์๊ฐํ๋ ์ผ์ ์ค์ค๋ก ์์๋ด๋ ๊ฒ์ ๋๋ค.
# 581 (์ฝ๋ฉํธ)
^์ด ๋๊ธ๊ณผ ์์ ๋๊ธ์๋ ์ฌ์ฉ์๊ฐ ๋ง๋ ๊ฐ์ด๋๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
์ด๊ฒ๋ค์ ์ฐ๋ฆฌ๊ฐ ATM์ ๊ฐ์ง๊ณ ์๋ ์ ์ผํ ๊ฐ์ด๋์ ๋๋ค.
[root<strong i="5">@controller0</strong> ~]# kubeadm alpha phase certs apiserver --apiserver-advertise-address 1.2.3.4
Error: unknown flag: --apiserver-advertise-address
Usage:
Flags:
-h, --help help for phase
Global Flags:
--log-file string If non-empty, use this log file
--rootfs string [EXPERIMENTAL] The path to the 'real' host root filesystem.
--skip-headers If true, avoid header prefixes in the log messages
-v, --v Level log level for V logs
error: unknown flag: --apiserver-advertise-address
[root<strong i="6">@controller0</strong> ~]# kubeadm alpha phase certs apiserver
This command is not meant to be run on its own. See list of available subcommands.
1.13 init ๋จ๊ณ์์ ๋ถ๋ชจ init ๋ช
๋ น์ผ๋ก ์ ํ๋์์ต๋๋ค.
https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-init-phase/#cmd -phase-certs
1.12์์๋ ํ๋๊ทธ๊ฐ ์์ด์ผํฉ๋๋ค.
https://v1-12.docs.kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-alpha/#cmd -phase-certs
1.11์ ๊ณง ์ง์์ด ์ค๋จ๋ฉ๋๋ค.
์๋ช
์ฃผ๊ธฐ / ํ์ฑ ๋ ์ด๋ธ ์ ๊ฑฐ.
1.15๋ก ์ด๋ํฉ๋๋ค.
๊ฐ๋ฅํ ๋ฌธ์ ์
๋ฐ์ดํธ ์์ด๋์ด๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
https://github.com/kubernetes/kubeadm/issues/1361#issuecomment -463192631
๋ฟก ๋นต๋จ
์ง๋ฌธ : ๋ง์คํฐ HA๋ฅผ ์ฌ์ฉํ๋ 1.14์์ ๋จ์ผ ๋ง์คํฐ์์ https://github.com/kubernetes/kubeadm/issues/581#issuecomment -421477139๋ฅผ ๋ฐ๋ฅด๋ ๊ฒ์ผ๋ก ์ถฉ๋ถํฉ๋๊น, ์๋๋ฉด ๋ณด์กฐ ๋ง์คํฐ์ ๋ค์ ๊ฐ์
ํด์ผํฉ๋๋ค. ์ธ์ฆ์๋ฅผ ๋ค์ ๊ฐ์ ธ ์ค์๊ฒ ์ต๋๊น?
๋ณด์กฐ ์ปจํธ๋กค ํ๋ ์ธ ๋
ธ๋์ ๋ค์ ์ฐ๊ฒฐํ๋ ๊ฒ์ 1,14์์ ๋น ๋ฅด๊ณ ์คํ ๊ฐ๋ฅํ ์ต์
์ฒ๋ผ ๋ณด์
๋๋ค.
HA ์ธ์ฆ์ ์ํ ์ธก๋ฉด์์ ์์ง ๋ฌธ์๊ฐ ์์ต๋๋ค.
(https://github.com/kubernetes/kubeadm/issues/581#issuecomment-421477139์ ๊ฐ์ ์ ์ ํ ๋จ๊ณ๋ฅผ ์์ง ์ถ๊ฐํ์ง ์์์ต๋๋ค.)
--experimental-upload-certs๋ HA์์ ์ธ์ฆ์ ๊ต์ฒด์ ๋ํ ๋ ์ฌ์ด ์๋ฃจ์ ์ ๊ธฐ๋ฐ์ ์ ๊ณตํ์ง ์์ต๋๊น?
HA ์ธ์ฆ์ ์ํ์ ์ํํ๋ ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
kubeadm init phase upload-certs --experimental-upload-certs
์ธ์ฆ์ ํค๋ฅผ ์ ์ฅํ์ญ์์ค.
kubeadm token create --print-join-command
ํ ํฐ๊ณผ ํจ๊ป join ๋ช ๋ น์ ์ ์ฅํ์ญ์์ค.
--certs-key .... --experimental-control-plane-join
์ฌ์ฉํ์ฌ ํ๋์ฉ ํ ํฐ ๋ฐ ์ธ์ฆ์ ํค๋ฅผ ์ฌ์ฉํ์ฌ ๋๋จธ์ง ์ ์ด ํ๋ ์ธ ๋
ธ๋์ ๋ค์ ๊ฐ์
ํฉ๋๋ค.
์์ ์๋ฅผ ์ํด : ๋ฐฐ์, ์ ํ ํฐ, uncordon์ ์ฌ์ฉํ์ฌ ํ๋์ฉ ๋ค์ ์ฐธ์ฌํ์ญ์์ค.
์ ํ์ ์ผ๋ก ๊ฒฐ๊ณผ ํ ํฐ์ ์ญ์ ํ์ญ์์ค.
๋ฟก ๋นต๋จ
3 ๊ฐ์ ๋ง์คํฐ ํด๋ฌ์คํฐ์์ "๊ธฐ๋ณธ"๋ง์คํฐ์ ์ธ์ฆ์๋ฅผ ๋ณ๊ฒฝํ๋ ์๊ฐ ์ธ์ฆ์๊ฐ ๋ณ๊ฒฝ๋๋ฉด etcd๊ฐ ์๋์ ๋ฉ ์ถฅ๋ ๋ค (์ฟผ๋ผ์ ์ต์ 51 % ์ฌ์ผ ํจ)? ๊ทธ๋ ๋ค๋ฉด 2 ๊ฐ์ ๋ณด์กฐ ๋ง์คํฐ๋ฅผ ์ด๋ป๊ฒ ๋ ์ฐ๊ฒฐ ํ ๋ค์ ์ธ์ฆ์๋ฅผ ๋ณ๊ฒฝํด์ผํ ๊น์? "์ฝ๋ ๋ง์คํฐ"๊ฐ ๊ฐ๋ฅํฉ๋๊น?
์ ๋ ์ฌ๊ธฐ์ ์ ๋ฌธ๊ฐ๋ ์๋์ง๋ง ์๋ ์ธ์ฆ์ ๋ณต์ฌ๊ฐ์ด ๊ทธ๋ฆผ์ ๋ค์ด๊ฐ๋ฉด ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค.
์๋ ๋ณต์ฌ ์ธ์ฆ์๋ CA, ํ๋ฐํธ ํ๋ก์ CA, etcd-CA (10 ๋ TTL ํฌํจ) ๋ฐ SA ํค (TTL ์ ์ธ)๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
์ธ์ฆ์ ๊ฐฑ์ ๋ช
๋ น์ ๋ง์คํฐ๋ง๋ค ๋ค๋ฅธ ๋ค๋ฅธ ๋ชจ๋ ์ธ์ฆ์ (1 ๋
TTL ํฌํจ)๋ฅผ ํฐ์นํฉ๋๋ค.
AFAIK, ํ์ฌ kubeconfig ํ์ผ์ ๋ํ ์ธ์ฆ์ ๊ฐฑ์ ์ ์ฒ๋ฆฌํ๋ ๊ฒ์ ์์ต๋๋ค.
์ข์, ๋๋ "certs copy"๊ฐ ์ฌ๊ธฐ์ ์ค์ ๋ก ๋ฌด์์ํ๋์ง ๊ณ ๋ คํ์ง ์์๋ค.
์ด๋ ์ชฝ์ด๋ ์ ์ ํ ์ธ์ฆ์ ํ์ ๋ฌธ์๋ฅผ ์์ฑํด์ผํฉ๋๋ค.
/์์์ธ
/ lifecycle active
์ด ๋ฌธ์ ์ ๋ํด ์์
ํ๊ธฐ ์์ํ์ต๋๋ค.
ํด๊ฒฐํด์ผ ํ ์ฌ๋ฌ ๊ฐ์ง ์ฌํญ์ด ์์ต๋๋ค (_2019 ๋
5 ์ 14 ์ผ ์
๋ฐ์ดํธ ๋จ _).
๊ทธ๋ฆฌ๊ณ ๋๋ ๊ทธ๋ค ๋ชจ๋๋ฅผ ๋ณ๋์ PR์์ ๋ค๋ฃจ๊ฒ ์ต๋๋ค.
ํธ์ ๋ด์ ๊ฐ๊ธฐ
CA ์ธ์ฆ์๋ฅผ ๊ต์ฒดํ๊ธฐ ์ํด ์ธ๊ธ ํ ๋จ๊ณ๊ฐ ์์ต๋๊น? ์ด๊ฒ๋ ๋ฌธ์ํ ํ ์ ์์ต๋๊น? CA ์ฉ์ ํฌํจํ์ฌ ๊ฐ์ธ ํค๋ฅผ ๊ต์ฒดํ๋ ๊ฒ์ ์ด๋ป์ต๋๊น?
CA ์ธ์ฆ์์ @ tushar00jain ์ํ์ ๋ค๋ฅธ ๋ฌธ์ https://github.com/kubernetes/kubeadm/issues/1350 ์์ ์ถ์ ๋ฉ๋๋ค.
์ด ๋ฌธ์ ๋ ์๋ช
๋ ์ธ์ฆ์์๋ง ์ค์ ์ ๋ก๋๋ค.
@fabriziopandini ๋ฆฌ๋ด์ผ ๋ถํ์ ๋ํ PR์ ๋ณด๋ผ ์ ์์๊ธฐ ๋๋ฌธ์ ์ค๋์ด ํฐ์ผ์ ๋ง๊ฐํ๋ ค๊ณ ํ์ต๋๋ค. ํฐ์ผ์ ๋ซ์์ผํฉ๋๊น?
์ธ์ฆ์ ๊ต์ฒด๊ฐ ํ์ฑํ ๋ ๊ฒฝ์ฐ์๋ kubelet.conf๋ ์ค๋๋ ์ธ์ฆ์๋ฅผ ๊ฐ๋ฆฌ ํต๋๋ค (์ด๋ฏธ # 1317์ ์ํด ์ถ์ ๋จ).
์, ์ด๋ ๋ณ๋์ ๋ฌธ์ ์์ ์ถ์ ๋๋ฉฐ, ์ ๊ณตํด์ผํ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ํ ๋ ผ์ / ๋ฌธ์๊ฐ ํ์ํ ์ ์์ต๋๋ค.
์ธ์ฆ์ ๊ต์ฒด๊ฐ apiserver / etcd / front-proxy-client ์ธ์ฆ์๋ฅผ ์ ๋ฐ์ดํธํ์ง ์์ (kubernetes / kubernetes # 76862๋ก ์์ ๋จ)
kubeadm alpha phase certs renew all ๋ช ๋ น์ KubeConfig ํ์ผ์ ์ ๋ฐ์ดํธํ์ง ์์ต๋๋ค (kubernetes / kubernetes # 77180์ผ๋ก ์์ ๋จ).
์ธ์ฆ์ ๊ฐฑ์ ์ ๋ํ ๋ฌธ์ (๋ช ๋ น์ ์คํํด์ผํ๋ ์์น,์๊ธฐ, kubeconfig, HA์ ๋ํ ์์ธํ ์ ๋ณด ํฌํจ)
์์ 3์ ์๋ฃํด์ผํฉ๋๋ค.
/๋ซ๊ธฐ
์์ ์๊ฒฌ์ ๋ฐ๋ผ ๋๋ถ๋ถ์ ์์
์ด ์ด๋ฏธ ์๋ฃ๋์์ต๋๋ค. ๋๋ฝ ๋ ๋นํธ๋ ๋ณ๋ / ์ ์ฉ ๋ฌธ์ ์์ ์ถ์ ๋ฉ๋๋ค.
@fabriziopandini :์ด ๋ฌธ์ ๋ฅผ ์ข ๋ฃํฉ๋๋ค.
์ ๋ํ ์๋ต ์ด :
/๋ซ๊ธฐ
์์ ์๊ฒฌ์ ๋ฐ๋ผ ๋๋ถ๋ถ์ ์์ ์ด ์ด๋ฏธ ์๋ฃ๋์์ต๋๋ค. ๋๋ฝ ๋ ๋นํธ๋ ๋ณ๋ / ์ ์ฉ ๋ฌธ์ ์์ ์ถ์ ๋ฉ๋๋ค.
PR ๋๊ธ์ ์ฌ์ฉํ์ฌ ๋์ ์ํธ ์์ฉํ๋ ๋ฐฉ๋ฒ์ ์ฌ๊ธฐ์์ ํ์ธํ ์ kubernetes / test-infra ์ ์ฅ์์ ๋ฌธ์ ๋ฅผ ์ ์ถํ์ธ์.
๋๊ตฐ๊ฐ "์ธ์ฆ์ ๊ต์ฒด๊ฐ ํ์ฑํ ๋ ๊ฒฝ์ฐ์๋ kubelet.conf๋ ์ค๋๋ ์ธ์ฆ์๋ฅผ ๊ฐ๋ฆฌ ํต๋๋ค"๋ถ๋ถ์ด ์ด๋ป๊ฒ ํด๊ฒฐ๋์๋์ง ์ค๋ช
ํด ์ฃผ์๊ฒ ์ต๋๊น? ์ด ๋ฌธ์ ๋ฅผ ์ธ๊ธํ๋ ์ ์ผํ ๋ฌธ์ ๋ "์ด๊ฒ ๋ฌธ์ ์ธ์ง ํ์คํ์ง ์์ผ๋ฏ๋ก ์ ํฐ์ผ์ ์ฝ๋ ๋ค"๋ก ์ข
๋ฃ ๋ ๋ค๋ฅธ ๋ฌธ์ ์ ์ฐฌ์ฑํ์ฌ ๋ช
์ ์ ์ผ๋ก ์ข
๋ฃ๋์์ต๋๋ค.
๋๋ 1.16์ kubelet.conf
๋ก sudo kubeadm alpha certs renew all
kubelet.conf
์์ ์ผ์ด๋๋ ๊ฐฑ์ ์ด ๋ณด์ด์ง ์์ต๋๋ค. ๋ฌด์์ด ๋น ์ก์ต๋๊น? ๋ฟก ๋นต๋จ
๋งค์ฐ ๊ธด ํ ๋ก ์ ๋ํ ๊ฐ๋ตํ ์์ฝ์ ๋๋ค.
์ค๋ ํ์ฌ์ด ๋ ๋ฒ์งธ ์ง์ ์ kubeadm init๋ฅผ ์คํํ๋ ๋ ธ๋๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ ธ๋์์ ์๋ํฉ๋๋ค. https://github.com/kubernetes/kubernetes/pull/84118 ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๊ฒ์ ๋๋ค.
@fabriziopandini ๊ฐ์ฌํฉ๋๋ค.
kubelte.conf์ certs ๋ฌธ์ ๊ฐ ์ง๊ธ๊ณผ ์์ ๋ด์ฉ์ด ์์ ๋์๊ธฐ ์ฌ์ด์ ๋ง๋ฃ๋๋ ๋ค๋ฅธ ์ฌ๋์๊ฒ๋์ด ๊ธฐ์ฌ๊ฐ ๋์์ด๋๋ค๋ ๊ฒ์ ์์์ต๋๋ค.
https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/#check -certificate-expiration
kubeadm ๋ฒ์ 1.17 ์ด์ ์ kubeadm init์ผ๋ก ์์ฑ ๋ ๋ ธ๋์๋ kubelet.conf์ ๋ด์ฉ์ ์๋์ผ๋ก ์์ ํด์ผํ๋ ๋ฒ๊ทธ๊ฐ ์์ต๋๋ค. kubeadm init๊ฐ ์๋ฃ๋๋ฉด client-certificate-data ๋ฐ client-key-data๋ฅผ ๋ค์์ผ๋ก ๋์ฒดํ์ฌ ํ์ ๋ kubelet ํด๋ผ์ด์ธํธ ์ธ์ฆ์๋ฅผ ๊ฐ๋ฆฌ ํค๋๋ก kubelet.conf๋ฅผ ์ ๋ฐ์ดํธํด์ผํฉ๋๋ค.
client-certificate: /var/lib/kubelet/pki/kubelet-client-current.pem
client-key: /var/lib/kubelet/pki/kubelet-client-current.pem
@AndrewSav ๊ฐ์ฌํฉ๋๋ค. promethes ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ฌ์คํฐ๋ฅผ ๋ชจ๋ํฐ๋งํ์ต๋๋ค. ์ต๊ทผ์ "Kubernetes API ์ธ์ฆ์๊ฐ 7 ์ผ ์ด๋ด์ ๋ง๋ฃ๋ฉ๋๋ค"๋ผ๋ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ์๋๋ฐ,์ด ๋ฌธ์ ์ ๊ด๋ จ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ง์คํฐ ๋ ธ๋์์ kubelet.conf์ ๋ด์ฉ์ ์ ๋ฐ์ดํธํ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ์ฌ์ ํ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ๋๋ค. ์ ์ ์ฌํญ ์์ด์? Tks.
@tannh kubeadm์ผ๋ก ํด๋ฌ์คํฐ๋ฅผ ์ค์น ํ ๊ฒฝ์ฐ kubeadm์ ์ฌ์ฉํ์ฌ ์ธ์ฆ์ ๋ง๋ฃ๋ฅผ ํ์ธํ์ญ์์ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ฌธ์ ๊ฐ ๊ด๋ จ์ด ์์ ์ ์์ต๋๋ค.
kubeadm ๋ฒ์ 1.17 ์ด์ ์ kubeadm init์ผ๋ก ์์ฑ ๋ ๋ ธ๋์๋ kubelet.conf์ ๋ด์ฉ์ ์๋์ผ๋ก ์์ ํด์ผํ๋ ๋ฒ๊ทธ๊ฐ ์์ต๋๋ค. kubeadm init๊ฐ ์๋ฃ๋๋ฉด client-certificate-data ๋ฐ client-key-data๋ฅผ ๋ค์์ผ๋ก ๋์ฒดํ์ฌ ํ์ ๋ kubelet ํด๋ผ์ด์ธํธ ์ธ์ฆ์๋ฅผ ๊ฐ๋ฆฌ ํค๋๋ก kubelet.conf๋ฅผ ์ ๋ฐ์ดํธํด์ผํฉ๋๋ค.
์ด ๋ด์ฉ์ 1.17์ ๋ฆด๋ฆฌ์ค ์ ๋ณด์๋ ์์ต๋๋ค.
@adoerler ์์ง ์ด์ ๋ฒ์ ์ kubeadm์ ์คํ ์ค์ ๋๋ค. ์ธ์ฆ์ ๊ฐฑ์ ํ kubelet.conf, admin.con ๋ฑ์ ์ด๋ป๊ฒ ์ ๋ฐ์ดํธ ํ ์ ์์ต๋๊น?
์ ์ธ์ฆ์๋ฅผ ์์ฑ ํ "kubeadm alpha certs renew all"์ ์คํ ํ ๋ค์ / etc / kubernetes ์๋์ ๋ชจ๋ .conf๋ฅผ ํธ์งํด์ผํฉ๋๋ค. ์ด๋ป๊ฒํด์ผํฉ๋๊น? ์ ํํ ์ด๋๋ฅผ ๊ฐ๋ฆฌ์ผ ์ผํฉ๋๊น?
๋ค์ค ๋ง์คํฐ ๋
ธ๋์ ๊ฒฝ์ฐ ๋ชจ๋ ๋ง์คํฐ์์ ๋ช
๋ น์ ์คํํด์ผํฉ๋๊น?
์๋ ํ์ธ์ @SuleimanWA ,
๋ฉํฐ ๋ง์คํฐ ํ๊ฒฝ์์ ๋ฌด์์ํด์ผํ๋์ง ๋งํ ์ ์์ต๋๋ค. ์ค์ ์ ๋ง์คํฐ๊ฐ ํ๋๋ฟ์ ๋๋ค.
์ด๊ฒ์ด ๋ด๊ฐ ํ ์ผ์ ๋๋ค.
์ฐ์ ๊ธฐ์กด ํ์ผ์ ๋ฎ์ด ์ฐ์ง ์๊ธฐ ๋๋ฌธ์ ๊ธฐ์กด conf ํ์ผ์ ๋ฉ๋ฆฌ ์ด๋ํด์ผํฉ๋๋ค!
mv /etc/kubernetes/admin.conf /backup
mv /etc/kubernetes/kubelet.conf /backup
mv /etc/kubernetes/controller-manager.conf /backup
mv /etc/kubernetes/scheduler.conf /backup
๊ทธ๋ฐ ๋ค์ ๋ค์ ํ์ผ์ ์ ๋ฐ์ดํธํ์ญ์์ค.
user<strong i="13">@master</strong>:~$ sudo kubeadm alpha phase kubeconfig all --apiserver-advertise-address=<INSERT-YOUR-APISERVER-IP-HERE>
I0124 21:56:14.253641 15040 version.go:236] remote version is much newer: v1.13.2; falling back to: stable-1.12
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/admin.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/controller-manager.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/scheduler.conf"
์ ์ ์์คํ ํฌ๋์ ์ ์ธ์ฆ์๋ฅผ ์ ์ฉํ๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ ๋ง์คํฐ ์๋ฒ๋ฅผ ์ฌ๋ถํ ํ๋ ๊ฒ์ ๋๋ค.
๋ณต์ฌ ์์ง ๋ง์ธ์ client-certificate-data
๋ฐ client-key-data
์์ /etc/kubernetes/admin.conf
์ง์ญ์ .kube/config
.
๋์์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค
์๋๋ ์์ค
1.14.10์์์ด ๋ช ๋ น์ ์คํํ๋ ๋ฐฉ๋ฒ์ ์์ญ๋๊น? ๋ด๊ฐ ์ป๋ ๊ฒ์ :
kubeadm alpha phase kubeconfig all --apiserver-advertise-address=192.168.102.170
Error: unknown flag: --apiserver-advertise-address
๊ทธ๋ฐ ๋ค์ ๋ฌธ์๋ ๋ค์๊ณผ ๊ฐ์ด ๋งํฉ๋๋ค.
kubeadm alpha phase kubeconfig all
๊ทธ๋ฆฌ๊ณ ๋๋ ์ป๋๋ค :
This command is not meant to be run on its own. See list of available subcommands.
๊ฐ์ฌ
์๋ ํ์ธ์ @provgregoryabdo ,
kubeadm version
์ถ๋ ฅ์ ๋ฌด์์
๋๊น?
BR ์๋๋ ์์ค
@provgregoryabdo phase
๋ช
๋ น์ ์ํ์์ ์ด๋ํ๊ณ ์ดํ ๋ฒ์ ์์ ์ด๊ธฐํํ๋๋ก ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ ์ ์์ต๋๋ค.
kubeadm init phase kubeconfig all --apiserver-advertise-address=<your_address>
@adoerler ๋์์ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
/์์์ธ
/ lifecycle active
์ด ๋ฌธ์ ์ ๋ํด ์์ ํ๊ธฐ ์์ํ์ต๋๋ค.
ํด๊ฒฐํด์ผ ํ ์ฌ๋ฌ ๊ฐ์ง ์ฌํญ์ด ์์ต๋๋ค (_2019 ๋ 5 ์ 14 ์ผ ์ ๋ฐ์ดํธ ๋จ _).
๊ทธ๋ฆฌ๊ณ ๋๋ ๊ทธ๋ค ๋ชจ๋๋ฅผ ๋ณ๋์ PR์์ ๋ค๋ฃจ๊ฒ ์ต๋๋ค.