Kubernetes: Docker๋ฅผ ํ†ตํ•ด ๋กœ์ปฌ๋กœ Kubernetes ์‹คํ–‰ - `kubectl get nodes`๋Š” `์„œ๋ฒ„ localhost:8080์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์ด ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ํ˜ธ์ŠคํŠธ ๋˜๋Š” ํฌํŠธ๋ฅผ ์ง€์ •ํ–ˆ์Šต๋‹ˆ๊นŒ?'๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2016๋…„ 04์›” 01์ผ  ยท  56์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: kubernetes/kubernetes

์ด ๊ฐ€์ด๋“œ๋ฅผ ํ†ตํ•ด Docker๋ฅผ ํ†ตํ•ด ๋กœ์ปฌ๋กœ kubernetes๋ฅผ ์„ค์ •ํ•˜๋ฉด ์œ„์—์„œ ์„ค๋ช…ํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ทจํ•œ ์กฐ์น˜:

  • export K8S_VERSION='1.3.0-alpha.1' (1.2.0๋„ ์‹œ๋„)
  • docker run ๋ช…๋ น์„ ๋ณต์‚ฌํ•˜์—ฌ ๋ถ™์—ฌ๋„ฃ๊ธฐ
  • ์ ์ ˆํ•œ kubectl ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  PATH ์— ๋„ฃ์Šต๋‹ˆ๋‹ค( which kubectl ์ž‘๋™)
  • (์„ ํƒ ์‚ฌํ•ญ) ํด๋Ÿฌ์Šคํ„ฐ ์„ค์ •
  • kubectl get nodes ์‹คํ–‰

ํ•œ๋งˆ๋””๋กœ ๋งˆ๋ฒ•์ด ์—†๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ Ubuntu 14.04, docker 1.10.3์—์„œ ๋กœ์ปฌ๋กœ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜์‹œ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”

kinsupport

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

"kubectl config"๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$ kubectl config set-cluster demo-cluster --server=http://master.example.com:8080
$ kubectl config set-context demo-system --cluster=demo-cluster
$ kubectl config use-context demo-system
$ kubectl get nodes
NAME                 STATUS    AGE
master.example.com   Ready     3h
node1.example.com    Ready     2h
node2.example.com    Ready     2h

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

๋ฒ„์ „ 1.2.0 +1๊ณผ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

@xificurC @jankoprowski apiserver๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์…จ๋‚˜์š”?

๋ฌธ์ œ ํ•ด๊ฒฐ ๊ฐ€์ด๋“œ๋ฅผ ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค.
http://kubernetes.io/docs/troubleshooting/

๊ทธ๋ž˜๋„ ๋„์›€์ด ํ•„์š”ํ•˜๋ฉด stackoverflow์— ๋ฌธ์˜ํ•˜์„ธ์š”.

apiserver๊ฐ€ ๋‹ค์Œ์œผ๋กœ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.

F0421 14:28:55.140493 1 server.go:410] ์ž˜๋ชป๋œ ์ธ์ฆ ๊ตฌ์„ฑ: open /srv/kubernetes/basic_auth.csv: ํ•ด๋‹น ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ ๊ทธ ๋ฌธ์ œ๋ฅผ ๋งŒ๋‚ฌ๊ณ  ๋‚ด apiserver๋Š” ์‹คํŒจํ•˜์ง€ ์•Š์•˜๊ณ  ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค(apiserver,controller-manager,schdeuler,kublet ๋ฐ kube-proxy)๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ๋„์ปค ๋ฒ„์ „์€ 1.11.2์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•„๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋„ ์ด ๋ฌธ์ œ๋ฅผ ๋งŒ๋‚ฌ๋‹ค. Kubernetes1.2.2๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋ฏ€๋กœ docker๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Kubernetes๋ฅผ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. API ์„œ๋ฒ„๊ฐ€ ๋‹ค์šด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ๋กœ๊ทธ,

I0725 08:56:20.440089       1 genericapiserver.go:82] Adding storage destination for group batch
W0725 08:56:20.440127       1 server.go:383] No RSA key provided, service account token authentication disabled
F0725 08:56:20.440148       1 server.go:410] Invalid Authentication Config: open /srv/kubernetes/basic_auth.csv: no such file or directory

apiserver๊ฐ€ ์‹คํŒจํ•˜์—ฌ Kubernetes๋ฅผ ๋ฐฐํฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์•„๋ฌด๋„ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

--server๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งˆ์Šคํ„ฐ๋ฅผ ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค.
kubectl --server=16.187.189.90:8080 ํฌ๋“œ -o ์™€์ด๋“œ ๊ฐ€์ ธ์˜ค๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š” Centos 7์—์„œ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

[root@ip-172-31-11-12 system]# kubectl get nodes
The connection to the server localhost:8080 was refused - did you specify the right host or port?

"kubectl config"๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$ kubectl config set-cluster demo-cluster --server=http://master.example.com:8080
$ kubectl config set-context demo-system --cluster=demo-cluster
$ kubectl config use-context demo-system
$ kubectl get nodes
NAME                 STATUS    AGE
master.example.com   Ready     3h
node1.example.com    Ready     2h
node2.example.com    Ready     2h

์ œ ๊ฒฝ์šฐ์—๋Š” ์ด์ „ ์‹œ๋„์—์„œ ๋‚จ์€ ~/.kube/config ๋ฅผ ์ œ๊ฑฐํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•,
๋‚˜๋Š” ์—ฌ์ „ํžˆ์ด ๋ฌธ์ œ๋ฅผ ๋งŒ๋‚ฌ์Šต๋‹ˆ๋‹ค.
์ฟ ๋ฒ„๋„คํ‹ฐ์Šค-๋งˆ์Šคํ„ฐ-1.4.0-0.1.git87d9d8d.el7.x86_64
์ฟ ๋ฒ„๋„คํ‹ฐ์Šค-๋…ธ๋“œ-1.4.0-0.1.git87d9d8d.el7.x86_64
kubernetes-unit-test-1.4.0-0.1.git87d9d8d.el7.x86_64
kubernetes-ansible-0.6.0-0.1.gitd65ebd5.el7.noarch
์ฟ ๋ฒ„๋„คํ‹ฐ์Šค-ํด๋ผ์ด์–ธํŠธ-1.4.0-0.1.git87d9d8d.el7.x86_64
์ฟ ๋ฒ„๋„คํ‹ฐ์Šค-1.4.0-0.1.git87d9d8d.el7.x86_64

์•„๋ž˜ ๊ฐ’์œผ๋กœ KUBE_API_ADDRESS๋ฅผ ๊ตฌ์„ฑํ•˜๋ฉด
KUBE_API_ADDRESS="--insecure-bind-address=10.10.10.xx"
์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์œผ๋ฉฐ "--server=10.10.10.xx:8080" ์˜ต์…˜์„ cmd์— ์ „๋‹ฌํ•˜๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜ ๊ฐ’์œผ๋กœ KUBE_API_ADDRESS๋ฅผ ๊ตฌ์„ฑํ•˜๋ฉด
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์›๊ฒฉ ์‹œ์Šคํ…œ์—์„œ ์ƒํƒœ๋ฅผ ์–ป์œผ๋ ค๊ณ ํ–ˆ๋Š”๋ฐ ๋™์ผํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” ์‹œ๋„ํ–ˆ๊ณ  ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ๋‹ค.
kubectl --kubeconfig ./admin.conf ํฌ๋“œ ๊ฐ€์ ธ์˜ค๊ธฐ --all-namespaces -o wide

@sumitkau ์™€ ์œ ์‚ฌํ•˜๊ฒŒ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ kubelet ๊ตฌ์„ฑ ์œ„์น˜๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.
kubectl --kubeconfig /etc/kubernetes/admin.conf ๊ฐ€์ ธ์˜ค๊ธฐ ์—†์Œ
/etc/kubernetes/admin.conf๋ฅผ ~/.kube/config์— ๋ณต์‚ฌํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ž‘๋™ํ•˜์ง€๋งŒ ์ข‹์€ ์ž‘์—…์ธ์ง€ ์•„๋‹Œ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค!

/etc/kubernetes/apiserver์˜ ํ•ญ๋ชฉ ์—…๋ฐ์ดํŠธ(๋งˆ์Šคํ„ฐ ์„œ๋ฒ„์—์„œ)
KUBE_API_PORT="--ํฌํŠธ=8080"
๊ทธ๋Ÿฐ ๋‹ค์Œ systemctl์„ ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค. kube-apiserver๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค.

GCP์—์„œ ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜๋ฉด ์•„๋ž˜์—์„œ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๊ฐ€์žฅ ๋†’์Šต๋‹ˆ๋‹ค.

gcloud container clusters get-credentials your-cluster --zone your-zone --project your-project

@mamirkhani์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ด ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ "kubeadm init" ์ถœ๋ ฅ์—์„œ โ€‹โ€‹์ด๋Ÿฌํ•œ ์ •๋ณด๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.
_Kubernetes ๋งˆ์Šคํ„ฐ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ดˆ๊ธฐํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค!
ํด๋Ÿฌ์Šคํ„ฐ ์‚ฌ์šฉ์„ ์‹œ์ž‘ํ•˜๋ ค๋ฉด (์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋กœ) ๋‹ค์Œ์„ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
sudo cp /etc/kubernetes/admin.conf $HOME/
sudo chown $(id -u):$(id -g) $HOME/admin.conf
๋‚ด๋ณด๋‚ด๊ธฐ KUBECONFIG=$HOME/admin.conf_

์ด๊ฒƒ์ด ๊ถŒ์žฅ๋˜๋Š” ์†”๋ฃจ์…˜์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. Google ํด๋ผ์šฐ๋“œ์—์„œ ์›น GUI๋ฅผ ํ†ตํ•ด ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  kubectl์„ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•  ๋•Œ

The connection to the server localhost:8080 was refused - did you specify the right host or port?

$HOME/.kubectl/config์— ์ €์žฅ๋  ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•œ kubectl ๊ตฌ์„ฑ์„ ๊ฐ€์ ธ์˜ค๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

$ gcloud container clusters get-credentials guestbook2
Fetching cluster endpoint and auth data.
kubeconfig entry generated for guestbook2.

์ด์ œ kubectl์ด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

kubectl์€ ๊ตฌ์„ฑ์˜ ํŒŒ์ผ ์ด๋ฆ„์œผ๋กœ ~/.kube/config๋ฅผ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•œ ๋น ๋ฅธ ์ˆ˜์ •์€ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์—ˆ์Šต๋‹ˆ๋‹ค.

ln -s ~/.kube/config.conjure-canonical-kubern-e82 ~/.kube/config

NB ์ด๊ฒƒ์€ "conjure-up kubernetes" ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” 1์ฃผ์ผ ๋™์•ˆ ์ €๋ฅผ ํ˜ผ๋ž€์Šค๋Ÿฝ๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ €์—๊ฒŒ ํšจ๊ณผ๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๋จผ์ € ์–ด๋–ค ๋…ธ๋“œ์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”์ง€ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์ธ ๊ฒฝ์šฐ ๋ชจ๋“  kubernetes ํฌ๋“œ๊ฐ€ ๋ช…๋ น์œผ๋กœ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
kubectl get pods --all-namespaces ,

๋‚ด ๋ชจ์Šต์€ ์ด๋ ‡์Šต๋‹ˆ๋‹ค
kube-system etcd-kubernetes-master01 1/1 Running 2 6d kube-system kube-apiserver-kubernetes-master01 1/1 Running 3 6d kube-system kube-controller-manager-kubernetes-master01 1/1 Running 2 6d kube-system kube-dns-2425271678-3kkl1 3/3 Running 6 6d kube-system kube-flannel-ds-brw34 2/2 Running 6 6d kube-system kube-flannel-ds-psxc8 2/2 Running 7 6d kube-system kube-proxy-45n1h 1/1 Running 2 6d kube-system kube-proxy-fsn6f 1/1 Running 2 6d kube-system kube-scheduler-kubernetes-master01 1/1 Running 2 6d

๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ /etc/kubernetes/ ๋””๋ ‰ํ† ๋ฆฌ์— ํ•ด๋‹น ํŒŒ์ผ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
admin.conf controller-manager.conf kubelet.conf manifests pki scheduler.conf , ๊ทธ๋ ‡๋‹ค๋ฉด ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž(ROOT ์‚ฌ์šฉ์ž๊ฐ€ ์•„๋‹˜)๋กœ ํ•ด๋‹น ํŒŒ์ผ์„ ๋ณต์‚ฌํ•˜์‹ญ์‹œ์˜ค.
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config

๊ทธ๋Ÿฐ ๋‹ค์Œ kubectl ๋ฒ„์ „์ด ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์—ฌ์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉด https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/ ์˜ ์ž์Šต์„œ๋ฅผ ๋”ฐ๋ฅด๊ณ  ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ํ•ด์ฒดํ•˜๊ณ  ๋‹ค์‹œ ๋นŒ๋“œํ•˜์‹ญ์‹œ์˜ค. ์ฃผ์ธ.

(์Šฌ๋ ˆ์ด๋ธŒ) ๋…ธ๋“œ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ํŒŒ์ผ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
kubelet.conf manifests pki
/etc/kubernetes/ ๋””๋ ‰ํ† ๋ฆฌ์™€ ์ด kubelet.conf์—์„œ ์„œ๋ฒ„ ํ•„๋“œ๋Š” ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ admin.conf์™€ ๋™์ผํ•œ ์„ค์ •์ธ ๋งˆ์Šคํ„ฐ IP๋ฅผ ๊ฐ€๋ฆฌ์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
kubelet.conf๊ฐ€ ์—†๋‹ค๋ฉด ์•„๋งˆ๋„ ๋งˆ์Šคํ„ฐ์™€ ๋…ธ๋“œ๋ฅผ ๊ฒฐํ•ฉํ•˜๋Š” ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
kubeadm join --token f34tverg45ytt34tt 192.168.1.170:6443 , ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๊ฐ€ ๋นŒ๋“œ๋œ ํ›„์— ์ด ๋ช…๋ น(ํ† ํฐ)์„ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

(์Šฌ๋ ˆ์ด๋ธŒ) ๋…ธ๋“œ์—์„œ ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋กœ ๋กœ๊ทธ์ธํ•œ ํ›„ ~/.kube์—์„œ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ๋ณผ ์ˆ˜ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด ํด๋”๋ฅผ ๋งŒ๋“  ๋‹ค์Œ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์—์„œ _admin.conf_๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ~/.kube/ ๋””๋ ‰ํ„ฐ๋ฆฌ์— (์Šฌ๋ ˆ์ด๋ธŒ ) ๋…ธ๋“œ๋ฅผ ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž์™€ ํ•จ๊ป˜ _config_๋กœ ๋งŒ๋“  ๋‹ค์Œ ๋ณต์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  kubectl ๋ฒ„์ „์„ ์‹œ๋„ํ•˜๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ์‹คํŒจ์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ ์ด์œ ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ์ œ ๊ฒฝ์šฐ์—๋Š” ~/.kube/cache ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ์ฆ‰์‹œ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์†”๋ฃจ์…˜์€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.

sudo cp /etc/kubernetes/admin.conf $HOME/
sudo chown $(id -u):$(id -g) $HOME/admin.conf
export KUBECONFIG=$HOME/admin.conf

admin.conf ์ด ์—†์œผ๋ฉด kubeadm ๋ฅผ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค.
๊ทธ๋Ÿฐ ๋‹ค์Œ ~/.kube/cache ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

rm -rf ~/.kube/cache

์ปจํ…์ŠคํŠธ๋ฅผ ์ „ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
kubectl config use-context docker-for-desktop

ํ•˜์ดํŒ€,

kubernetes์™€ Docker๊ฐ€ ์ „์ œ ์กฐ๊ฑด์ด๊ธฐ ๋•Œ๋ฌธ์— sap vora๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” kubernetes master์™€ kubectl, docker๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๊ฐ€ ํ™•์ธํ•  ๋•Œ

kubectl ํด๋Ÿฌ์Šคํ„ฐ ์ •๋ณด

kubectl ํด๋Ÿฌ์Šคํ„ฐ ์ •๋ณด ๋คํ”„

2018-05-09 06:47:57.905806 ๋‚˜ | proto: ๋“ฑ๋ก๋œ ํ”„๋กœํ† ํƒ€์ž… ์ค‘๋ณต: google.protobuf.Any
2018-05-09 06:47:57.905997 ๋‚˜ | proto: ๋“ฑ๋ก๋œ ํ”„๋กœํ† ํƒ€์ž… ์ค‘๋ณต: google.protobuf.Duration
2018-05-09 06:47:57.906019 ๋‚˜ | proto: ์ค‘๋ณต๋œ ํ”„๋กœํ† ํƒ€์ž… ๋“ฑ๋ก๋จ: google.protobuf.Timestamp
์„œ๋ฒ„ 10.xxx:6443์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์ด ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ํ˜ธ์ŠคํŠธ ๋˜๋Š” ํฌํŠธ๋ฅผ ์ง€์ •ํ–ˆ์Šต๋‹ˆ๊นŒ?

systemctl status kubelet -l์„ ํ™•์ธํ•  ๋•Œ

kubelet.service - Kubernetes Kubelet ์„œ๋ฒ„
๋กœ๋“œ๋จ: ๋กœ๋“œ๋จ(/usr/lib/systemd/system/kubelet.service; ํ™œ์„ฑํ™”๋จ)
ํ™œ์„ฑ: ์‹คํŒจ(๊ฒฐ๊ณผ: ์‹œ์ž‘ ์ œํ•œ) ์ดํ›„ ์ˆ˜์š”์ผ 2018-05-09 04:17:21 EDT; 2์‹œ๊ฐ„ 28๋ถ„ ์ „
๋ฌธ์„œ: https://github.com/GoogleCloudPlatform/kubernetes
ํ”„๋กœ์„ธ์Šค: 2513 ExecStart=/usr/bin/hyperkube kubelet $KUBE_LOGTOSTDERR $KUBE_LOG_LEVEL $KUBELET_API_SERVER $KUBELET_ADDRESS $KUBELET_PORT $KUBELET_03/CUBELET_HOSTNAME $KUBE_ALLOW_ETex ์ƒํƒœ)
๋ฉ”์ธ PID: 2513(์ฝ”๋“œ=์ข…๋ฃŒ, ์ƒํƒœ=203/EXEC)

์šฐ๋ฆฌ๋Š” ์•„๋ž˜ ์„ค์ •์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค

sudo cp /etc/kubernetes/admin.conf $HOME/
sudo chown $(id -u):$(id -g) $HOME/admin.conf
๋‚ด๋ณด๋‚ด๊ธฐ KUBECONFIG=$HOME/admin.conf

๊ทธ๋Ÿฌ๋‚˜ ์•„๋ฌด ์†Œ์šฉ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฌ๋“ ์ง€ ๋„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋ฌธ์•ˆ ์ธ์‚ฌ
์นด๋ฅดํ‹ฑ

์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์†”๋ฃจ์…˜์€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.
๋‚ด๋ณด๋‚ด๊ธฐ KUBECONFIG=/etc/kubernetes/admin.conf

ํ•˜์ด๋งต์‹,

ํ™˜๊ฒฝ ์ด์ƒ์œผ๋กœ ๋‚ด๋ณด๋ƒˆ์ง€๋งŒ ์†Œ์šฉ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

2018-05-15 04:27:32.221744 ๋‚˜ | proto: ๋“ฑ๋ก๋œ ํ”„๋กœํ† ํƒ€์ž… ์ค‘๋ณต: google.protobuf.Any
2018-05-15 04:27:32.221912 ๋‚˜ | proto: ๋“ฑ๋ก๋œ ํ”„๋กœํ† ํƒ€์ž… ์ค‘๋ณต: google.protobuf.Duration
2018-05-15 04:27:32.221936 ๋‚˜ | proto: ์ค‘๋ณต๋œ ํ”„๋กœํ† ํƒ€์ž… ๋“ฑ๋ก๋จ: google.protobuf.Timestamp
์„œ๋ฒ„ 10.xxx:6443์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์ด ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ํ˜ธ์ŠคํŠธ ๋˜๋Š” ํฌํŠธ๋ฅผ ์ง€์ •ํ–ˆ์Šต๋‹ˆ๊นŒ?

kubelet ์„œ๋น„์Šค ๋ฐ ๊ตฌ์„ฑ ํŒŒ์ผ ํ•ญ๋ชฉ๋„ ๋ณ€๊ฒฝํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฌธ์•ˆ ์ธ์‚ฌ
์นด๋ฅดํ‹ฑ

์•ˆ๋…•ํ•˜์„ธ์š” Karthik ๋‹˜,

kubelet ์„œ๋น„์Šค์— ๋Œ€ํ•œ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•˜๋ ค๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์œ„์˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค

[admin ~]$ kubectl cluster-info
Kubernetes master is running at https://xxxxx:6443

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
The connection to the server xxxxx:6443 was refused - did you specify the right host or port?
[admin~]$ kubectl cluster-info dump
The connection to the server xxxx:6443 was refused - did you specify the right host or port?

kubectl get pods --all-namespaces ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋™์•ˆ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•จ

์•ˆ๋…•ํ•˜์„ธ์š” Centos 7์—์„œ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

[root@ip-172-31-11-12 system]# kubectl get nodes
The connection to the server localhost:8080 was refused - did you specify the right host or port?

kubeadm์„ ์„ค์น˜ํ•˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค .... ๋จผ์ € kubeadm์„ ์„ค์น˜ํ•œ ๋‹ค์Œ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค

์ข‹์•„ ๊ทธ๋ ‡๊ฒŒ ํ• ๊ฑฐ์•ผ

2018๋…„ 9์›” 17์ผ ์›”์š”์ผ 08:04 Karthik Nair [email protected] ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” Centos 7์—์„œ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
๋ฌธ์ œ?

[ root@ip-172-31-11-12 system]# kubectl ๋…ธ๋“œ ๊ฐ€์ ธ์˜ค๊ธฐ
์„œ๋ฒ„ localhost:8080 ์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์ด ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ํ˜ธ์ŠคํŠธ ๋˜๋Š” ํฌํŠธ๋ฅผ ์ง€์ •ํ–ˆ์Šต๋‹ˆ๊นŒ?

kubeadm์„ ์„ค์น˜ํ•˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.... ๋จผ์ € kubeadm์„ ์„ค์น˜ํ•œ ๋‹ค์Œ
๋…ธ๋ ฅํ•˜๋‹ค

โ€”
์ด ์Šค๋ ˆ๋“œ์— ๊ฐ€์ž…ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/kubernetes/kubernetes/issues/23726#issuecomment-421909051 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AkFH4U0Cwjeg2Y4sL8irk5velVQDj6u2ks5ub0lzgaJpZM4H9nxM
.

>

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋น„์Šˆ๋ˆ„ ์ˆ˜๋ˆ„์™€๋ฅด

๋จผ์ € ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

[ user@k8s-master ~]# mkdir -p $HOME/.kube
[ user@k8s-master ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[ user@k8s-master ~]# chown $(id -u):$(id -g) $HOME/.kube/config

Mac OS High Sierra์—์„œ ์‹คํ–‰ํ•˜๋ฉด์„œ Docker ์ž์ฒด์— ๋‚ด์žฅ๋œ Kubernetes๋ฅผ ํ™œ์„ฑํ™”ํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

screen shot 2018-10-16 at 12 48 10 pm

screen shot 2018-10-16 at 12 48 49 pm

"์„œ๋ฒ„ 10.0.48.115:6443์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์ด ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ํ˜ธ์ŠคํŠธ ๋˜๋Š” ํฌํŠธ๋ฅผ ์ง€์ •ํ–ˆ์Šต๋‹ˆ๊นŒ?"๋ผ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

kubectl ๋ฒ„์ „

ํด๋ผ์ด์–ธํŠธ ๋ฒ„์ „: version.Info{์ฃผ์š”:"1", ๋ถ€:"12", GitVersion:"v1.12.1", GitCommit:"4ed3216f3ec431b140b1d899130a69fc671678f4", GitTreeState:"clean", BuildDate:"20:"20 06Z", GoVersion:"go1.10.4", ์ปดํŒŒ์ผ๋Ÿฌ:"gc", ํ”Œ๋žซํผ:"linux/amd64"}
์„œ๋ฒ„ 10.0.48.115:6443์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์ด ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ํ˜ธ์ŠคํŠธ ๋˜๋Š” ํฌํŠธ๋ฅผ ์ง€์ •ํ–ˆ์Šต๋‹ˆ๊นŒ?

๋ˆ„๊ฐ€ ์ด๊ฒƒ์— ๋Œ€ํ•ด ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ณ ๋งˆ์›Œํ•˜๋‹ค

~/.kube์—์„œ ์ด์ „ ๊ตฌ์„ฑ์„ ์‚ญ์ œํ•œ ๋‹ค์Œ docker(macos์˜ ๊ฒฝ์šฐ)๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ณ  ๊ตฌ์„ฑ ํด๋”๋ฅผ ๋‹ค์‹œ ๋นŒ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. 'kubectl get nodes'๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ์ด์ œ ๋ชจ๋“  ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

minikube ๊ฐ€์ƒ ๋จธ์‹  ๋ฐ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๊ณ  minikube(v0.25.2)๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค. ๋‹ค๋ฅธ ๋ฒ„์ „์—๋Š” ๊ตฌ๋ฉ์ด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$ minikube delete
$ rm -rf ~/.minikube
$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.25.2/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

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

์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ–ˆ์Šต๋‹ˆ๋‹ค.

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

๊ฐ์‚ฌ ํ•ด์š”! ์ด๊ฒƒ์€ ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ๋‹ค!

์ œ ๊ฒฝ์šฐ์—๋Š” kubernetes์˜ ๋งˆ์Šคํ„ฐ ๋…ธ๋“œ๋ฅผ ์žฌ๋ถ€ํŒ…ํ–ˆ๊ณ , ๋‹ค์‹œ ์‹œ์ž‘ํ•  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ ๊ตํ™˜์˜ SWAP ํŒŒํ‹ฐ์…˜์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  1. sudo systemctl status kubelet
kubelet.service - kubelet: The Kubernetes Node Agent
   Loaded: loaded (/etc/systemd/system/kubelet.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/kubelet.service.d
           โ””โ”€10-kubeadm.conf, 90-local-extras.conf
   Active: activating (auto-restart) (Result: exit-code) since ๊ธˆ 2018-04-20 15:27:00 KST; 6s ago
     Docs: http://kubernetes.io/docs/
  Process: 17247 ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_SYSTEM_PODS_ARGS $KUBELET_NETWORK_ARGS $KUBELET_DNS_ARGS $KUBELET_AUTHZ_ARGS $KUBELET_CADVISOR_ARGS $KUBELET_CGROUP_ARGS $KUBELET_CERTIFICATE_ARGS $KUBELET_EXTRA_ARGS (code=exited, status=255)
 Main PID: 17247 (code=exited, status=255)
  1. sudo swapon -s
Filename    type        size    Used    priority
/dev/sda6   partition   950267  3580    -1
  1. sudo swapoff /dev/sda6

  2. sudo systemctl status kubelet

โ— kubelet.service - kubelet: The Kubernetes Node Agent
   Loaded: loaded (/lib/systemd/system/kubelet.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/kubelet.service.d
           โ””โ”€10-kubeadm.conf
   Active: active (running) since Mon 2019-01-14 08:28:56 -05; 15min ago
     Docs: https://kubernetes.io/docs/home/
 Main PID: 7018 (kubelet)
    Tasks: 25 (limit: 3319)
   CGroup: /system.slice/kubelet.service
           โ””โ”€7018 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes
  1. kubectl get nodes
NAME        STATUS   ROLES    AGE   VERSION
k8smaster   Ready    master   47h   v1.13.2
k8snode1    Ready    <none>   45h   v1.13.2
k8snode2    Ready    <none>   45h   v1.13.2

๋‚˜๋Š” ์ด๊ฒƒ์„ ์‹คํ–‰ํ•˜์ง€ ์•Š์•˜๋‹ค.

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

๋ฌธ์ œ๋ฅผ ์ผ์œผ์ผฐ์Šต๋‹ˆ๋‹ค.

ip ๊ฒฝ๋กœ๋Š” k8s ๋งˆ์Šคํ„ฐ์—์„œ xxx.xxx.xxx.xxx๋ฅผ ํ†ตํ•ด ๊ธฐ๋ณธ๊ฐ’์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

$ kubectl apply -f Deployment.yaml
"Deployment.yaml"์„ ์ธ์‹ํ•  ์ˆ˜ ์—†์Œ: http://localhost :8080/api?timeout=32s ๊ฐ€์ ธ์˜ค๊ธฐ: tcp 127.0.0.1:8080 ๋‹ค์ด์–ผ: ์—ฐ๊ฒฐ: ์—ฐ๊ฒฐ์ด ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
"Deployment.yaml"์„ ์ธ์‹ํ•  ์ˆ˜ ์—†์Œ: http://localhost :8080/api?timeout=32s ๊ฐ€์ ธ์˜ค๊ธฐ: tcp 127.0.0.1:8080 ๋‹ค์ด์–ผ: ์—ฐ๊ฒฐ: ์—ฐ๊ฒฐ์ด ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Mac OS High Sierra์—์„œ ์‹คํ–‰ํ•˜๋ฉด์„œ Docker ์ž์ฒด์— ๋‚ด์žฅ๋œ Kubernetes๋ฅผ ํ™œ์„ฑํ™”ํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

screen shot 2018-10-16 at 12 48 10 pm

screen shot 2018-10-16 at 12 48 49 pm

ํšจ๊ณผ๊ฐ€์žˆ๋‹ค. ์•„์ฃผ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์Šคํฌํƒ‘ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋จผ์ € ๊ธฐ๋ณธ ์„ค์ •์—์„œ ์†”๋ฃจ์…˜์„ ์ฐพ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ใ…‹.

Mac OS High Sierra์—์„œ ์‹คํ–‰ํ•˜๋ฉด์„œ Docker ์ž์ฒด์— ๋‚ด์žฅ๋œ Kubernetes๋ฅผ ํ™œ์„ฑํ™”ํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

screen shot 2018-10-16 at 12 48 10 pm

screen shot 2018-10-16 at 12 48 49 pm

tks

์–ด๋ฆฌ์„๊ฒŒ ๋“ค๋ฆด์ง€ ๋ชจ๋ฅด์ง€๋งŒ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋กœ์ปฌ์—์„œ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด miniKube๋ฅผ ์„ค์น˜ํ•˜์ง€ ์•Š์•˜์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

minikube๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๋‹ค์‹œ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ kubectl proxy --port=8080 ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์‹ญ์‹œ์˜ค.

์ข‹์Šต๋‹ˆ๋‹ค. Mac์šฉ docker(v 2.0.5.0)์—๋Š” ๋‘˜ ๋‹ค ํ† ๊ธ€ํ•ด์•ผ ํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ์„ค์ •์ด ์žˆ์Šต๋‹ˆ๋‹ค.

docker

๋ชจ๋“  ์šฉ๊ธฐ๋ฅผ ์ œ๊ฑฐํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

docker rm -f $(docker ps -aq)

๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•œ ํ›„ kubelet์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค.

systemctl restart kubelet

[ mayuchau@cg-id .kube]$ kubectl ๋…ธ๋“œ ๊ฐ€์ ธ์˜ค๊ธฐ
์„œ๋ฒ„ localhost:8080 ์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์ด ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ํ˜ธ์ŠคํŠธ ๋˜๋Š” ํฌํŠธ๋ฅผ ์ง€์ •ํ–ˆ์Šต๋‹ˆ๊นŒ?

์œ„์˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ์†”๋ฃจ์…˜์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

[ mayuchau@cg-id .kube]$ kubectl ๋…ธ๋“œ ๊ฐ€์ ธ์˜ค๊ธฐ
์„œ๋ฒ„ localhost:8080 ์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์ด ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ํ˜ธ์ŠคํŠธ ๋˜๋Š” ํฌํŠธ๋ฅผ ์ง€์ •ํ–ˆ์Šต๋‹ˆ๊นŒ?

์œ„์˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ์†”๋ฃจ์…˜์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ํšจ๊ณผ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์Šคํ„ฐ ๋…ธ๋“œ์—์„œ /var/run/docker.sock์˜ ๊ถŒํ•œ์„ ํ™•์ธํ•œ ํ›„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. kubectl์ด ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
    gcloud components list
    kubectl์„ ๋จผ์ € ์„ค์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ.

  2. gcloud ํ”Œ๋žซํผ์—์„œ ํ”„๋กœ์ ํŠธ์˜ Kubernetes ์—”์ง„ ์ฝ˜์†”๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  3. ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๋Š” ํด๋Ÿฌ์Šคํ„ฐ์™€ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ/ํ„ฐ๋ฏธ๋„์—์„œ ์‹คํ–‰ํ•œ ๋ช…๋ น์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

gcloud container clusters get-credentials <Cluster_Name> --zone <Zone> --project <Project_Id>

์ด ๋ช…๋ น์„ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
kubectl get nodes

์ด ๊ฐ€์ด๋“œ๋ฅผ ํ†ตํ•ด Docker๋ฅผ ํ†ตํ•ด ๋กœ์ปฌ๋กœ kubernetes๋ฅผ ์„ค์ •ํ•˜๋ฉด ์œ„์—์„œ ์„ค๋ช…ํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ทจํ•œ ์กฐ์น˜:

  • export K8S_VERSION='1.3.0-alpha.1' (1.2.0๋„ ์‹œ๋„)
  • docker run ๋ช…๋ น์„ ๋ณต์‚ฌํ•˜์—ฌ ๋ถ™์—ฌ๋„ฃ๊ธฐ
  • ์ ์ ˆํ•œ kubectl ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  PATH ์— ๋„ฃ์Šต๋‹ˆ๋‹ค( which kubectl ์ž‘๋™)
  • (์„ ํƒ ์‚ฌํ•ญ) ํด๋Ÿฌ์Šคํ„ฐ ์„ค์ •
  • kubectl get nodes ์‹คํ–‰

ํ•œ๋งˆ๋””๋กœ ๋งˆ๋ฒ•์ด ์—†๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ Ubuntu 14.04, docker 1.10.3์—์„œ ๋กœ์ปฌ๋กœ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜์‹œ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”

๊ฐ์‚ฌ ํ•ด์š”!!!
์ด๊ฒƒ์€ ๋‚ด ~/.bashrc์— KUBEKONFIG ์‹œ์Šคํ…œ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๋ณ€์ˆ˜ ๋‚ด๋ณด๋‚ด๊ธฐ๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์ƒ๊ธฐ์‹œ์ผœ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๊ฒƒ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋‚ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!

์˜ˆ:
### ADD in ~/.bashrc
export KUBECONFIG=$HOME/.kube/eksctl/clusters/serv-eks-dev

์ด ๋ฌธ์ œ์˜ ๊ฐ€๋Šฅํ•œ ์›์ธ ์ค‘ ํ•˜๋‚˜๋Š” kube ๊ตฌ์„ฑ์˜ current context ๊ฐ€ ์ผ๋ถ€ ๋„๊ตฌ๋กœ ์‚ญ์ œ๋˜๊ณ  ํ˜„์žฌ ์ปจํ…์ŠคํŠธ๊ฐ€ ๋‚จ์•„ ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

ํ™•์ธ:

kubectl config get-contexts

current ์ปจํ…์ŠคํŠธ๊ฐ€ ์—†์œผ๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ ์ปจํ…์ŠคํŠธ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

kubectl config use-context <context name>

๋‚˜๋Š” ๋น„์Šทํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ•˜์—ฌ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
export KUBECONFIG=/etc/kubernetes/admin.conf

๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๋„์›€์ด๋œ๋‹ค๋ฉด (์˜ค๋ฅ˜์— ๋Œ€ํ•œ Google ๊ฒ€์ƒ‰์„ ํ†ตํ•ด ์—ฌ๊ธฐ์— ์™”์Šต๋‹ˆ๋‹ค) Mac ์šฉ Docker Desktop์€ ๊ธฐ๋ณธ์ ์œผ๋กœ Kubernetes๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. Enabled Kubernetes ๋ฐ Apply & Restart ๋ฅผ ์„ ํƒํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค.
image

Mac OS: ํŠน์ • https://k3d.io/ ๋ฅผ ํ†ตํ•ด Docker๋ฅผ ํ†ตํ•ด ๋กœ์ปฌ๋กœ Kubernetes๋ฅผ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์„ค์น˜ ํ›„ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด kubectl cluster-info ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.
์„œ๋ฒ„ 0.0.0.0:51939์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์ด ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ํ˜ธ์ŠคํŠธ ๋˜๋Š” ํฌํŠธ๋ฅผ ์ง€์ •ํ–ˆ์Šต๋‹ˆ๊นŒ? ๋ˆ„๊ตฌ๋“ ์ง€์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์ถ”์‹ : Docker , Homebrew๋ฅผ ํ†ตํ•ด ์„ค์น˜๋œ docker-machine

kubectl config get-contexts ๋Š” @navkmurthy๋ฅผ ๋ฌด์—‡์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๊นŒ?

navkmurthy$ k3d ํด๋Ÿฌ์Šคํ„ฐ ์ƒ์„ฑ -p 5432:30080@agent [0] -p 9082:30081@agent [0] --agents 3 --update-default-kubeconfig
INFO[0000] ์ƒ์„ฑ๋œ ๋„คํŠธ์›Œํฌ 'k3d-k3s-default'
INFO ์ƒ์„ฑ๋œ ๋ณผ๋ฅจ 'k3d-k3s-default-images'
INFO[0001] ๋…ธ๋“œ 'k3d-k3s-default-server-0' ์ƒ์„ฑ ์ค‘
INFO[0001] ๋…ธ๋“œ 'k3d-k3s-default-agent-0' ์ƒ์„ฑ ์ค‘
INFO[0002] ๋…ธ๋“œ 'k3d-k3s-default-agent-1' ์ƒ์„ฑ ์ค‘
INFO 'k3d-k3s-default-agent-2' ๋…ธ๋“œ ์ƒ์„ฑ ์ค‘
INFO ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ 'k3d-k3s-default-serverlb' ์ƒ์„ฑ
์ •๋ณด ํด๋Ÿฌ์Šคํ„ฐ 'k3s-default'๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!
์ •๋ณด ์ด์ œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
kubectl ํด๋Ÿฌ์Šคํ„ฐ ์ •๋ณด
navkmurthy$ kubectl ํด๋Ÿฌ์Šคํ„ฐ ์ •๋ณด

ํด๋Ÿฌ์Šคํ„ฐ ๋ฌธ์ œ๋ฅผ ์ถ”๊ฐ€๋กœ ๋””๋ฒ„๊ทธํ•˜๊ณ  ์ง„๋‹จํ•˜๋ ค๋ฉด 'kubectl cluster-info dump'๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
์„œ๋ฒ„ 0.0.0.0:53706์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์ด ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ํ˜ธ์ŠคํŠธ ๋˜๋Š” ํฌํŠธ๋ฅผ ์ง€์ •ํ–ˆ์Šต๋‹ˆ๊นŒ?

@paulmwatson

navkmurthy$ kubectl ๊ตฌ์„ฑ get-contexts
ํ˜„์žฌ ์ด๋ฆ„ ํด๋Ÿฌ์Šคํ„ฐ ์ธ์ฆ ๋„ค์ž„์ŠคํŽ˜์ด์Šค

navkmurthy$

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