kubeadm token create .. ๋๋ ๋ค๋ฅธ ๋ฉ์ปค๋์ฆ์ ํตํด ํ ํฐ์ ์์ฑํ๋ ๊ฒฝ์ฐ kubeadm init์ ์ฌ๋์ด ์ฝ์ ์ ์๋ ์ถ๋ ฅ(๋ฐ๋ผ์ ์์ ์ ์ด์ง ์์)์ ๊ตฌ๋ฌธ ๋ถ์ํ๋ ๊ฒ ์ธ์๋ ํ ํฐ ca ์ธ์ฆ์ ํด์๋ฅผ ์ป์ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ca ํด์๋ฅผ ์ฌ์ฉํ์ฌ ํ ํฐ์ ์์ฑํ๋ ๊ธฐ๊ณ ํ๋ ๊ฐ๋ฅํ ๋ฐฉ๋ฒ์ด ์์ด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ฌ๋ฐ๋ฅธ ์ผ(tm)์ ์ํํ๋ ค๋ ์๊ตฌ๊ฐ ์๋๋ผ๋ --discovery-token-unsafe-skip-ca-verification์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. Atm ๋์์ kubeadm init์ ๋ณ๊ฒฝ๋ ์ธ๊ฐ ์ฝ๊ธฐ ์ถ๋ ฅ์ ๊ตฌ๋ฌธ ๋ถ์ํ๊ฑฐ๋ ca์ ๋ํ kubeadm์ ํด์ ๊ณ์ฐ์ ๋ค์ ๊ตฌํํ๋ ๊ฒ์ ๋๋ค. cd /etc/kubernetes/pki && sha256sum * ์ ์ถ๋ ฅ์ด kubeadm init์ ์ถ๋ ฅ๊ณผ ๋์ผํ sha๋ฅผ ํ์ํ์ง ์๋ ๊ฒ์ฒ๋ผ ๊ฐ๋จํ์ง ์๊ธฐ ๋๋ฌธ์ ์์ค๋ฅผ ์ฝ์ ํ์๊ฐ ์๋ค๋ฉด ํ์๋ ๊ทธ๋ ๊ฒ ๋์์ง ์์ ๊ฒ์ ๋๋ค.
์ต์ ๋ฒ์ ์ kubeadm์ ์ฌ์ฉํด ๋ณด์ จ์ต๋๊น?
# kubeadm token create --print-join-command
kubeadm join --token 5d2dc8.3e93f8449167639b 10.0.2.66:6443 --discovery-token-ca-cert-hash sha256:44a68d4a2c2a86e05cc0d4ee8c9c6b64352c54e450021331c483561e45b34388
์ฌ์ ํ ์ข์ง ์์ต๋๋ค. ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ด๊ฒ์ ์ฌ์ฉํ๋ ค๋ ์ฌ๋์ ํ ํฐ๊ณผ ๊ฒ์ ํ ํฐ ํด์๋ฅผ ๋ชจ๋ ์ถ์ถํ๊ธฐ ์ํด ๋ช ๋ น์ ๊ตฌ๋ฌธ ๋ถ์ํด์ผ ํฉ๋๋ค. ์์ ํ๊ฒ ๊ตฌ๋ฌธ ๋ถ์ํ ์ ์๋๋ก json๊ณผ ๊ฐ์ ์ถ๋ ฅ ํ์์ ์ง์ ํ ์ ์๋ค๋ฉด ๋ ์ข์ ๊ฒ์ ๋๋ค.
๊ฐ์ฌํฉ๋๋ค. ์ด์ ๋ํ ๋ณ๋์/์๋ก์ด ๋ช ๋ น์ด ์๋ค๋ ๊ฒ์ ๋ชฐ๋์ต๋๋ค. ๋์ํฉ๋๋ค. json์ ์ด๊ฒ์ ๊ฐ๋ ๊ฒ์ด ๋ ์ข์ ๊ฒ์ ๋๋ค. 1.6 ๋ฐ 1.7์ ๋ํ ์ด์ ์ํฌํ๋ก๋ kubeadm ํ ํฐ ์์ฑ์ด์๊ณ ์ด๊ธฐํ ๋ฐ ์กฐ์ธ ์ ํด๋น ๊ฐ์ ์ฌ์ฌ์ฉํ์ต๋๋ค. cert ํด์(ํด๋น ํ์์ผ๋ก ์ธํด ๊ทธ ์์ฒด๋ก ํ์ฅํ ์ ์์). ์ ๊ธฐ๊ณ๊ฐ ์ฝ์ ์ ์๋์ง, ์กฐ์ธ์ ์ํด ์ ๋ฌํ ์ถ๊ฐ ๋งค๊ฐ๋ณ์๊ฐ ์๊ณ ์ผ๋ถ๋ ip์ ๋ํ dns์ ๊ฐ์ด ๊ต์ฒดํด์ผ ํฉ๋๋ค.
์, ์กฐ์ธ ๋ช ๋ น์ ํ์ผ์ ๋คํํ ๋ค์ sed๋ฅผ ์ฌ์ฉํ์ฌ ๋์ฐํ์ง๋ ์์ง๋ง ํน๋ณํ ์น์ํ์ง๋ ์์ ignore-preflight-errors ํ๋๊ทธ๋ฅผ ์ถ๊ฐํด์ผ ํ์ต๋๋ค.
๋ฐ๋ผ์ ๋ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ๋ง๋ค๊ณ ํ๋๊ทธ์ ์ค๋ณต์ ์ ๊ฑฐํ๊ธฐ ์ํด ๋จ๊ณ๋ฅผ ๋ค๋ฌ๊ธฐ ์ํ ์ง์์ ์ธ ๋ ธ๋ ฅ์ด ์์ต๋๋ค. ์ด๊ฒ์ ํ๋์ ์ฌ์ฉ์ ์คํ ๋ฆฌ์ผ ๋ฟ์ ๋๋ค. @fabriziopandini ์ด๋๊ฐ์ ์ด๊ฒ์ ๋ํ ๋ถ๋ชจ ๋ฌธ์ ๊ฐ ์์ต๋๊น?
@timothysc
์กธ์
๋จ๊ณ์ ๋ํ ๋ฌธ์ ๋ #454์ด์ง๋ง ์ผ์ข
์ ๊ตฌ์์ด๋ฉฐ ๋ค๊ฐ์ค๋ KEP๊ฐ ์น์ธ๋๋ ์ฆ์ ์ ๊ฒ์ผ๋ก ์์ํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ผ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด ๋ฌธ์ ์ ๊ด๋ จํ์ฌ IMO์์๋ ์์ฒญ ๋ฒ์๊ฐ kubeadm init/phases
์์ kubeadm token
์ ์ด๋ฅด๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ๋ช
๋ น์์ ์ผ๊ด๋ ๋ฐฉ์์ผ๋ก ๊ธฐ๊ณ ํ๋
๊ฐ๋ฅ ์ถ๋ ฅ์ ๋ํ ์๊ตฌ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ ์ฉ ์ฐ์ฐ ๋ฌธ์ ๋ฅผ ์ด์ด์ผ ํฉ๋๋ค kubeadm upgrade
(#494 ์ฐธ์กฐ).
์ด๋ป๊ฒ ์๊ฐํ์ญ๋๊น? ๊ด์ฐฎ์ผ์๋ค๋ฉด ์ ์ฐ์ฐํธ๋ฅผ ์ด๊ฒ ์ต๋๋ค...
๋๋ ๋ฐฉ๊ธ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ๋ค์์ ์ฌ์ฉํ์ฌ ca ์ธ์ฆ์ ๊ณต๊ฐ ํค์ sha256sum์ ๊ณ์ฐํ ์ ์์์ต๋๋ค.
$ openssl x509 -in /etc/kubernetes/pki/ca.crt -noout -pubkey | openssl rsa -pubin -outform DER 2>/dev/null | sha256sum | cut -d' ' -f1
์์์ง ์์...
์ ๊ท ํํ์์ ์ฌ์ฉํฉ๋๋ค. Ansible๋ก ํ ์คํธํ์ต๋๋ค.
- hosts: localhost
tasks:
- shell: kubeadm token create --print-join-command
register: results
- debug:
var: results.stdout
- set_fact:
token: "{{ results.stdout | regex_search(regexp, '\\2') | first }}"
vars:
regexp: '([^\s]+\s){4}([^\s]+)'
- debug:
var: token
- set_fact:
hash: "{{ results.stdout | regex_search(regexp, '\\2') | first }}"
vars:
regexp: '([^\s]+\s){6}([^\s]+)'
- debug:
var: hash
๊ฒฐ๊ณผ:
TASK [debug] *******************************************************************************************************************************************************************************************************
ok: [localhost] => {
"results.stdout": "kubeadm join 192.168.1.2:6443 --token 3a0fje.octau87o6x30dz8i --discovery-token-ca-cert-hash sha256:1fd18093fb89b364879d5667b7ec84fd24171c30de0070deb6a3801b54a0f85c"
}
TASK [set_fact] ****************************************************************************************************************************************************************************************************
ok: [localhost]
TASK [debug] *******************************************************************************************************************************************************************************************************
ok: [localhost] => {
"token": "3a0fje.octau87o6x30dz8i"
}
TASK [set_fact] ****************************************************************************************************************************************************************************************************
ok: [localhost]
TASK [debug] *******************************************************************************************************************************************************************************************************
ok: [localhost] => {
"hash": "sha256:1fd18093fb89b364879d5667b7ec84fd24171c30de0070deb6a3801b54a0f85c"
}
๋ช ๊ฐ์ง ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ผ๋ฏ๋ก ์ข ๋ฃํฉ๋๋ค.
์ด๊ฒ์ ๊ถ์ฅ๋์ง ์์ง๋ง https://github.com/cablespaghetti/kubeadm-aws/blob/master/worker.sh#L45 --discovery-token-unsafe-skip-ca-verification
์์๋ ์๋ํฉ๋๋ค.
Azure์์ ์์
์ ๋ฐ ๋ง์คํฐ ๋ฆฌ์์ค์ ๋ํ ํ๊ทธ ์ฌ์ฉ:
rg๋ RG ์ด๋ฆ์ ๊ฐ์ง ๋ณ์์
๋๋ค.
masterPrivateIp=$(az ๋คํธ์ํฌ NIC ๋ชฉ๋ก -g $rg --query "[?tags.module == 'k8smasters'].ipConfigurations[0].privateIpAddress" -o tsv)
tokenId=$(ssh $masterIp "kubeadm ํ ํฐ ๋ชฉ๋ก | grep -v TOKEN | cut -d' ' -f1")
tokenSHA=$(ssh $masterIp "openssl x509 -in /etc/kubernetes/pki/ca.crt -noout -pubkey | openssl rsa -pubin -outform DER 2>/dev/null | sha256sum | cut -d' ' -f1 ")
joinCommand="kubeadm Join $master PrivateIp:6443 --token $tokenId --discovery-token-ca-cert-hash sha256:$tokenSHA"
$(az network public-ip list -g $rg --query [?tags.module == 'k8sworkers'].ipAddress -o tsv)์ ip
~ํ๋ค
ssh $ip $join๋ช
๋ น
์๋ฃ
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ต์ ๋ฒ์ ์ kubeadm์ ์ฌ์ฉํด ๋ณด์ จ์ต๋๊น?