Kubeadm: ๊ฐœ์ธ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—์„œ kube-apiserver๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2017๋…„ 10์›” 02์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: kubernetes/kubeadm

์ด ๋ฌธ์ œ #71์„ ํ™•์ธํ–ˆ๋Š”๋ฐ kube-apiserver๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ์ง€ ์•Š์œผ๋ฉด ์ž๊ฒฉ ์ฆ๋ช…์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ ๊ฐ™์ง€๋งŒ ์ˆ˜๋™์œผ๋กœ ๊ฐœ์ธ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  kubelet์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•œ ํ›„์—๋„ ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

PullImage "docker.kesci.com:5000/kube-apiserver:latest" from image service failed: rpc error: code = Unknown desc = Error response from daemon: Get https://**my.private.image.registry**/v2/kube-apiserver/manifests/latest: no basic auth credentials

๋ฒ„์ „

kubeadm ๋ฒ„์ „ ( kubeadm version ):

ํ™˜๊ฒฝ :

  • Kubernetes ๋ฒ„์ „ ( kubectl version ):
    Client Version: version.Info{Major:"1", Minor:"7", GitVersion:"v1.7.5", GitCommit:"17d7182a7ccbb167074be7a87f0a68bd00d58d97", GitTreeState:"clean", BuildDate:"2017-08-31T09:14:02Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
  • ํด๋ผ์šฐ๋“œ ์ œ๊ณต์ž ๋˜๋Š” ํ•˜๋“œ์›จ์–ด ๊ตฌ์„ฑ :
    ์•„์•„
  • OS (์˜ˆ: /etc/os-release):
NAME="Ubuntu"
VERSION="16.04.3 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.3 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
  • ์ปค๋„ (์˜ˆ: uname -a ):
    Linux ip-172-31-28-254 4.4.0-92-generic #115-Ubuntu SMP Thu Aug 10 09:04:33 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
  • ๊ธฐํƒ€ :

๋ฌด์Šจ ์ผ์ด์—์š”?

/etc/kubernetes/manifests/kube-apiserver.yaml ๊ตฌ์„ฑ์˜ ์ด๋ฏธ์ง€๋ฅผ ์ˆ˜๋™์œผ๋กœ ๊ต์ฒดํ•˜๊ณ  kubelet์— container start failed: ErrImagePull: rpc error: code = Unknown desc = Error response from daemon: Get https://my.private.image.registry/v2/kube-apiserver/manifests/latest: no basic auth credentials ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž๊ฒฉ ์ฆ๋ช…์ด ๊ตฌ์„ฑ๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ˆ˜๋™์œผ๋กœ docker pull ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
docker pull my.private.image.registry/kube-apiserver:latest ๋ฐ run service kubelet restart , ์—ฌ์ „ํžˆ ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚  ๊ฒƒ์ด๋ผ๊ณ  ์˜ˆ์ƒํ–ˆ์Šต๋‹ˆ๊นŒ?

kubelet ์ง€์›์€ ์ž๊ฒฉ ์ฆ๋ช…์„ ์ˆ˜๋™์œผ๋กœ ๊ตฌ์„ฑํ•˜๊ฑฐ๋‚˜ ๋กœ์ปฌ ํ’€ ์ด๋ฏธ์ง€๋ฅผ ์ธ์‹ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์„ ์žฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•(๊ฐ€๋Šฅํ•œ ํ•œ ์ตœ์†Œํ•œ์œผ๋กœ ๊ทธ๋ฆฌ๊ณ  ์ •ํ™•ํ•˜๊ฒŒ)?

/etc/kubernetes/manifests/kube-apiserver.yaml ์ด๋ฏธ์ง€๋ฅผ ๊ฐœ์ธ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ด๋ฏธ์ง€๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

kinsupport

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@ggaaooppeenngg ๋‹น์‹ ์€ ์ด๊ฒƒ์„ ์‹œ๋„ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค :

  1. ๋„์ปค ํ’€์„ ์‚ฌ์šฉํ•œ ํ”„๋ฆฌ ํ’€ ์ด๋ฏธ์ง€
  2. kubeadm init --config yourconfigfile ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ imageRepository ์˜ต์…˜์„ ์ฃผ์˜ํ•ด์„œ ์„ค์ •ํ•˜์‹ญ์‹œ์˜ค.

์ ์— ์œ ์˜ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค:

  • ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์กด์žฌํ•˜๊ธฐ ์ „์— imagePullSecrets๋ฅผ ์ƒ์„ฑํ•  ๋ฐฉ๋ฒ•์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฏธ์ง€๋ฅผ ๋ฏธ๋ฆฌ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค ๐Ÿ˜„
  • ์œ„์˜ ์ ˆ์ฐจ๋Š” kubeadm v1.8์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ด์ „ ๋ฆด๋ฆฌ์Šค์—์„œ๋„ ์ง€์›๋˜์—ˆ๋Š”์ง€ ๊ธฐ์–ต๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์ด ์ ˆ์ฐจ๋Š” ์ˆ˜๋™ ๋ณ€๊ฒฝ ์—†์ด yaml ํŒŒ์ผ์— ์ €์žฅ์†Œ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค ๐Ÿ‘; ๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋“  ๋กœ์ปฌ ์ด๋ฏธ์ง€๋Š” ํ‘œ์ค€ ๋ช…๋ช… ๊ทœ์น™(์˜ˆ: componentname-architecture:version)์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

์ž์„ธํ•œ ์ •๋ณด๋Š” https://kubernetes.io/docs/admin/kubeadm/ ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  4 ๋Œ“๊ธ€

๋‚ด ์†”๋ฃจ์…˜: docker๊ฐ€ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  imagePullPolicy๋ฅผ Never๋กœ ์„ค์ •ํ•œ ๋‹ค์Œ kubelet์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ด ์ƒํ™ฉ์—์„œ kubeadm์ด ์–ด๋–ป๊ฒŒ ํ–‰๋™ํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•˜์‹ญ๋‹ˆ๊นŒ? ์šฐ๋ฆฌ๋Š” ๊ณต์‹ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ์‚ฌ์šฉ์ž ์ง€์ • ์ €์žฅ์†Œ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ •์˜ ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

@ggaaooppeenngg ๋‹น์‹ ์€ ์ด๊ฒƒ์„ ์‹œ๋„ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค :

  1. ๋„์ปค ํ’€์„ ์‚ฌ์šฉํ•œ ํ”„๋ฆฌ ํ’€ ์ด๋ฏธ์ง€
  2. kubeadm init --config yourconfigfile ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ imageRepository ์˜ต์…˜์„ ์ฃผ์˜ํ•ด์„œ ์„ค์ •ํ•˜์‹ญ์‹œ์˜ค.

์ ์— ์œ ์˜ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค:

  • ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์กด์žฌํ•˜๊ธฐ ์ „์— imagePullSecrets๋ฅผ ์ƒ์„ฑํ•  ๋ฐฉ๋ฒ•์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฏธ์ง€๋ฅผ ๋ฏธ๋ฆฌ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค ๐Ÿ˜„
  • ์œ„์˜ ์ ˆ์ฐจ๋Š” kubeadm v1.8์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ด์ „ ๋ฆด๋ฆฌ์Šค์—์„œ๋„ ์ง€์›๋˜์—ˆ๋Š”์ง€ ๊ธฐ์–ต๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์ด ์ ˆ์ฐจ๋Š” ์ˆ˜๋™ ๋ณ€๊ฒฝ ์—†์ด yaml ํŒŒ์ผ์— ์ €์žฅ์†Œ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค ๐Ÿ‘; ๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋“  ๋กœ์ปฌ ์ด๋ฏธ์ง€๋Š” ํ‘œ์ค€ ๋ช…๋ช… ๊ทœ์น™(์˜ˆ: componentname-architecture:version)์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

์ž์„ธํ•œ ์ •๋ณด๋Š” https://kubernetes.io/docs/admin/kubeadm/ ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@jamiehannaford ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ํŒŒํ—ค์น˜๊ณ  ์ถ”์  ๋กœ๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰