/μ’
λ₯ κΈ°λ₯
@kubernetes/sig-cli
λ¬΄μ¨ μΌμ΄ μμλμ§ :
kubeadmμμ μλ³Έ joun λ¬Έμμ΄ μΆλ ₯μ΄ μλ κ²½μ° μ μμ€ν
μ μΆκ°νλ κ²μ΄ κ·Έλ κ² μ½μ§ μμ κ²½μ°λ₯Ό λ°κ²¬νμ΅λλ€. "μ 체 μ‘°μΈ λͺ
λ Ήμ μμ±νλ λ°©λ²μ΄ μμ΅λκΉ? λ§€μ§ λ¬Έμμ΄μ "λλ¬"ν μ μμΌλ €λ©΄ μ 체 ν΄λ¬μ€ν°λ₯Ό μ¬μ€μ ν΄μΌ νλ κ² κ°μ΅λλ€. " (c) @alexellis
μμνλ μΌ :
λ§μ°¬κ°μ§λ‘ Docker Swarmμμ νμ λ§μ€ν°μκ² λ³΅μ¬ λΆμ¬λ£κΈ° κ°λ₯ν μ‘°μΈ λ¬Έμμ΄μ μΈμνμ¬ μΆκ°νκ±°λ λννλλ‘ μ§μν μ μμ΅λλ€. λ λ§μ κΈ°κ³.
μμ μ λ ₯:
kubeadm token string
μΆλ ₯ μ:
kubeadm join --token TOK MASTER_IP:6443 --discovery-token-ca-cert-hash sha256:HASH
μ°λ¦¬κ° μμμΌ ν λ€λ₯Έ κ²μ΄ μμ΅λκΉ? :
λΉμ μ κ΅μ₯νλ€!
(νμ μ‘°μΉ: https://github.com/kubernetes/kubernetes/pull/41663)
@luxas @mattmoyer @jamiehannaford
μ΄μ κ°μ κ²μ +1.
μ΄ μμ΄λμ΄μ λν λͺ κ°μ§ 리ν:
kubeadm ca-cert-hash
λͺ
λ Ή(μ΄λ¦μ λ―Έμ )μ
λλ€. μ΄κ²μ κΈ°λ³Έμ μΌλ‘ kubeadm join
λ¬Έμ μμ μ 곡νλ openssl
λͺ
λ Ήκ³Ό λμΌν©λλ€.kubeadm init
μ λ§μ°¬κ°μ§λ‘ μ 체 μ‘°μΈ λͺ
λ Ήμ μΆλ ₯νλ kubeadm token create
λν --print-join-command
νλκ·Έλ₯Ό μΆκ°ν©λλ€. μ΄λ κ² νλ©΄ νλ‘λΉμ λ μ€μ kubeadm token create --print-join-command >> worker_init.sh
μ κ°μ νλͺ©μ μ€ννμ¬ μ½κ² μλνν μ μμ΅λλ€.
--print-join-command
νλκ·Έκ° μλ IDκ° μ£Όμ΄μ§λ©΄ μ 체 ν ν°μ κ°μ Έμ€λ μλ‘μ΄ λͺ
λ Ή kubeadm token get <token id>
μ ν ν° λμ μ 체 κ²°ν© λͺ
λ Ήμ μ νμ μΌλ‘ μΈμν©λλ€.
νκ·Έν΄μ£Όμ
μ κ°μ¬ν©λλ€. Docker Swarmμ UXμμ λ©λͺ¨νμΈμ. μΈμ λ μ§ docker swarm join-token worker
λ₯Ό μ
λ ₯νκ³ μμ
μμ λΆμ¬λ£κ±°λ SSHλ₯Ό ν΅ν΄ μ μ‘νλ λͺ
λ Ήμ μ¬μ©ν μ μμ΅λλ€. Kubeadmμ μ¬μ©νλ©΄ μ λ
Έλλ₯Ό μΆκ°νκΈ° μν΄ λ§ κ·Έλλ‘ ν΄λ¬μ€ν°λ₯Ό λΆν΄νλ κ²μ΄ λ무 μ΄λ ΅μ΅λλ€. CLIμ λν΄ λ§€μ° μμ μ΄ μμΌλ―λ‘ μ λ§ κ·Έλ° κ²μ΄ μλλΌκ³ νμ ν©λλ€.
λν init μΆλ ₯μ΄ λ무 무거μμ μ€μ λ‘ μ‘°μΈ λͺ
λ Ήμ κ°μ Έμ μ΄λκ°μ μ¨κΈΈ μ μμ΅λλ€... νμ¬ μ λ kubeadm init ... | grep 'kubeadm join --token' > /some_file
μμ‘΄νκ³ μμ΅λλ€.
stdoutμ μ μΌν κ²μ΄ join λͺ
λ ΉμΈ μλ λͺ¨λλ₯Ό μ¬μ©νλ κ²μ΄ μ’μ΅λλ€.
μ΄μ¨λ , μ§κΈ κ·Έ ca-cert-hashλ₯Ό μ»λ λ°©λ²μ 무μμ
λκΉ? λ¬Όλ‘ kubeadm init
μΆλ ₯μ μ΄ μμ μμ μ¬λΌμ§ μ§ μ€λμ
λλ€... κ·Έλ¦¬κ³ λμ€μ μμ² μ ν΄λΉ μ 보λ₯Ό μ½κ² μΆμΆν μ μμ κ²μΌλ‘ κΈ°λνκ³ μ μ₯νμ§ μμμ΅λλ€.
λ΄κ° κ°μ§ ν ν°μ κ°μ
μ»μ μ μμλ€ kubeadm token list
μ λ λ€λ₯Έ λ
Έλμ ν©λ₯ kubeadm join --token
,νμ§λ§ λ§νκ³ μλ€ :
[validation] WARNING: using token-based discovery without DiscoveryTokenCACertHashes can be unsafe (see https://kubernetes.io/docs/admin/kubeadm/#kubeadm-join).
[validation] WARNING: Pass --discovery-token-unsafe-skip-ca-verification to disable this warning. This warning will become an error in Kubernetes 1.9.
λ°λΌμ μ€λ₯κ° λ°μνκΈ° μ μ ν΄λΉ 맀κ°λ³μλ₯Ό μ΄λ»κ² μ λ¬ν©λκΉ? λμμ μ£Όμ μ κ°μ¬ν©λλ€!
@zcalusic νμ¬ λ°©λ²μ λ€μκ³Ό κ°μ΄ OpenSSLμ μ¬μ©νμ¬ ν΄μλ₯Ό κ³μ°νλ κ²μ
λλ€(λ§μ€ν° λλ /etc/kubernetes/pki/ca.crt
μ¬λ³Έμ΄ μλ λͺ¨λ κ³³μμ μ€ν).
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
ννΈλ₯Ό μ£Όμ @mattmoyer μκ² κ°μ¬λ립λλ€. κ·νμ onelinerλ μλ²½νκ² μλνμ΅λλ€.
λ¬Όλ‘ --print-join-command
κ° ν¨μ¬ λ λμ μ¬μ©μ κ²½νμ΄ λ κ²μ΄λΌλ λ° λμν΄μΌ ν©λλ€.
--print-join-command
λμ
μ°λ¦¬λ SIG νμμμ https://github.com/kubernetes/kubernetes/pull/55468 _λ°_ μ΄ κΈ°λ₯ μΆκ°λ₯Ό λͺ¨λ μ§νν κ²μ΄λΌκ³ κ²°λ‘ μ§μμ΅λλ€.
μ°λ¦¬λ μ‘°κΈ νμ μ νν μ΄λ€ ννμΈμ§ λ³Ό κ²μ
λλ€
μ΄κ²μ 2017λ 11μ 21μΌ μ€ μ½μμ λ Όμλμμ΅λλ€. ν΄λΉ ν΅ν μκ°μ https://docs.google.com/document/d/1deJYPIF4LmhGjDVaqrswErIrV7mtwJgovtLnPCDxP7U/edit#μ μμ΅λλ€.
μ΄μ μ΄κ²μ λν΄ κ°λ¨ν μ΄ν΄λ³΄μμ§λ§ μμ§ μλνμ§ μμμ΅λλ€. :)
kubeadm initμ λ§μ°¬κ°μ§λ‘ μ 체 μ‘°μΈ λͺ λ Ήμ μΆλ ₯νλ kubeadm ν ν° μμ±μ --print-join-command νλκ·Έλ₯Ό μΆκ°ν©λλ€. μ΄λ κ² νλ©΄ νλ‘λΉμ λ μ€μ kubeadm token create --print-join-command >> worker_init.shμ κ°μ κ²μ μ€ννμ¬ μ½κ² μλνν μ μμ΅λλ€.
μ΄κ²μ μ νΈνλ€λ©΄ bootstrap token create μ μ΄λ―Έ λμΌν λ Όλ¦¬κ° μλ€κ³ μκ°ν©λλ€. μ¬κΈ°μμ μ¬μ©ν μ μμ΅λλ€.
μλ‘μ΄ λͺ λ Ή kubeadm ν ν° κ°μ Έμ€κΈ°
--print-join-command νλκ·Έλ₯Ό μ¬μ©νμ¬ IDκ° ββμ 곡λ μ 체 ν ν°μ κ°μ Έμ΅λλ€. μ νμ μΌλ‘ ν ν° λμ μ 체 μ‘°μΈ λͺ λ Ήμ μΈμν©λλ€.
μ λ κ°μΈμ μΌλ‘ μ΄μͺ½μ μ νΈν©λλ€. κ·Έλ¬λ λ μμ΄λμ΄ λͺ¨λ ꡬνν λ λ λ§μ 컨ν
μ€νΈκ° νμν κ²μ²λΌ 보μ
λλ€. μλ₯Ό λ€μ΄ apiserver κ΄κ³ μ£Όμλ₯Ό μ»μΌλ €λ©΄ MasterConfigurationμ΄ νμν©λλ€. νμ¬ token create
μλ ꡬμ±μ΄ μμ΅λλ€.
μ λ°μ΄νΈ: λ κ°μ§ μμ΄λμ΄λ₯Ό λͺ¨λ ꡬνν μ μμκΉμ? @luxas @mattmoyer
https://github.com/kubernetes/kubernetes/pull/56185 μμ 첫 λ²μ§Έ μμ΄λμ΄λ₯Ό ꡬννμ΅λλ€ kubeadm get
μμ΄λμ΄λ₯Ό ꡬννλ λ°λ λ°λνμ§ μμ§λ§ μκ°μ΄ λΆμ‘±ν©λλ€.
μλ‘μ΄ kubeadm get
λ₯Ό μμ±νλ λμ , μ΄λ―Έ μ‘΄μ¬νλ kubeadm token list
μ λμ ν΄μ/kubeadm μ‘°μΈ λ¬Έμ μΈμν΄μΌ ν©λλ€.
kubeadm token list --print-join-command
μ΄ μ’μ κ² κ°μμ!
λλ κ·Έ μμ΄λμ΄λ₯Ό μ’μνλ€ @luxas. λ μ₯ν©νκ² λ§λ€ μ μλ€κ³ μκ°ν©λλ€. docker
CLIμ λΉν΄ λ§€μ° κΈ΄ νλκ·Έ kubeadm
λ₯Ό μ
λ ₯νκ³ μμ΅λλ€.
kubeadm token list --verbose
kubeadm token list --tokens
kubeadm token list --join-token
kubeadm token list --verbose|-v
μ μκ² ν¨κ³Όμ μ
λλ€.
μ΄λ΄, λλ¬μ΄?
λ΄ ν΄λ¬μ€ν°μ μ λ
Έλμ κ°μ
νκΈ° μν ν ν°μ μ»μΌλ €λ©΄ μ΄λ»κ² ν΄μΌ ν©λκΉ?
@tzurE λ³ν©λμμ§λ§ μμ§ μΆμλμ§ μμμΌλ©° μ΄λ² μ£Ό νλ°μ μΆμλ μμ μΈ Kubernetes 1.9μ μΌλΆκ° λ κ²μ λλ€.
μ κΈ°λ₯μ μ¬μ©νλ©΄ μ΄ λͺ λ Ήμ μ€ννμ¬ λ Έλλ₯Ό μ°κ²°ν μ μμ΅λλ€.
# on a master node (or any node with admin access to your cluster)
$ kubeadm token create --print-join-command
kubeadm join --token 447067.20b55955bd6abe6c 192.168.99.100:8443 --discovery-token-ca-cert-hash sha256:17023a5c90b996e50c514e63e161e46f78be216fd48c0c3df3be67e008b28889
# on the new node (copy-pasted from the output above)
$ kubeadm join --token 447067.20b55955bd6abe6c 192.168.99.100:8443 --discovery-token-ca-cert-hash sha256:17023a5c90b996e50c514e63e161e46f78be216fd48c0c3df3be67e008b28889
μ’μμ, κ°μ¬ν©λλ€.
κ·Έ λμ ν΄κ²°μ±
μ΄ μμ΅λκΉ? μΌλ° λͺ
λ Ήμ μ¬μ©νμ§ μκ³ μΆμΆνλ λ°©λ²μ 무μμ
λκΉ?
@tzurE μ΄ λκΈ λ³΄κΈ°: https://github.com/kubernetes/kubeadm/issues/519#issuecomment -343192126
μλ νμΈμ @mattmoyer
"kubeadm token create --print-join-command" λͺ λ Ήμ 1.9μμ μ μλν©λλ€. νμ§λ§ λ΄ λ Έλμμ NotReady μνκ° λνλ©λλ€. λλ k8s 1.9.0κ³Ό ν¨κ» μ°λΆν¬ 16.04λ₯Ό μ¬μ©νκ³ μμ΅λλ€. μ΄λ€ μ μ?
@siddharthjoshi745 Weave Netκ³Ό κ°μ Pod λ€νΈμν¬λ₯Ό λ°°ν¬ν©λλ€(μ°λ¦¬ λ¬Έμμμ λ³Ό μ μμ).
μ€λλ λ¬Έμ μ λν΄ λκΈμ λ¬μ§ λ§κ³ λ¬Έμ λ₯Ό λ°κ²¬ν κ²½μ° μ λ¬Έμ λ₯Ό μ΄κ±°λ Slackμμ λμμ μμ²νμΈμ.
μ’μ ν루 λμΈμ!
μ΄λ»κ² νλμ κ°λ§ μΆλ ₯ν μ μμ΅λκΉ? ν ν° λλ λ°κ²¬ ν ν° μ€ λ±μ λ§νμμμ€.
κ°μ₯ μ μ©ν λκΈ
@zcalusic νμ¬ λ°©λ²μ λ€μκ³Ό κ°μ΄ OpenSSLμ μ¬μ©νμ¬ ν΄μλ₯Ό κ³μ°νλ κ²μ λλ€(λ§μ€ν° λλ
/etc/kubernetes/pki/ca.crt
μ¬λ³Έμ΄ μλ λͺ¨λ κ³³μμ μ€ν).