์ด ๊ฐ์ด๋๋ฅผ ํตํด 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์์ ๋ก์ปฌ๋ก ์คํํ๊ณ ์์ต๋๋ค. ๋ ๋ง์ ์ ๋ณด๊ฐ ํ์ํ์๋ฉด ์๋ ค์ฃผ์ธ์
๋ฒ์ 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 ํด๋ฌ์คํฐ ์ ๋ณด
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๋ฅผ ํ์ฑํํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
"์๋ฒ 10.0.48.115:6443์ ๋ํ ์ฐ๊ฒฐ์ด ๊ฑฐ๋ถ๋์์ต๋๋ค. ์ฌ๋ฐ๋ฅธ ํธ์คํธ ๋๋ ํฌํธ๋ฅผ ์ง์ ํ์ต๋๊น?"๋ผ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
ํด๋ผ์ด์ธํธ ๋ฒ์ : 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 ํํฐ์ ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ด ์์ต๋๋ค.
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)
swapon -s
Filename type size Used priority
/dev/sda6 partition 950267 3580 -1
sudo swapoff /dev/sda6
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
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๋ฅผ ํ์ฑํํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
ํจ๊ณผ๊ฐ์๋ค. ์์ฃผ ๊ฐ๋จํฉ๋๋ค. ๋ฐ์คํฌํ ์ํํธ์จ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋จผ์ ๊ธฐ๋ณธ ์ค์ ์์ ์๋ฃจ์ ์ ์ฐพ๋ ๊ฒ์ด ์ข์ต๋๋ค. ใ .
Mac OS High Sierra์์ ์คํํ๋ฉด์ Docker ์์ฒด์ ๋ด์ฅ๋ Kubernetes๋ฅผ ํ์ฑํํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
tks
์ด๋ฆฌ์๊ฒ ๋ค๋ฆด์ง ๋ชจ๋ฅด์ง๋ง ํด๋ฌ์คํฐ๋ฅผ ๋ก์ปฌ์์ ์คํํ๊ธฐ ์ํด miniKube๋ฅผ ์ค์นํ์ง ์์์ ์ ์์ต๋๋ค.
minikube๊ฐ ์๋ ๊ฒฝ์ฐ ๋ค์ ์ค์นํ๊ฑฐ๋ kubectl proxy --port=8080
๋ฅผ ์ฌ์ฉํด ๋ณด์ญ์์ค.
์ข์ต๋๋ค. Mac์ฉ docker(v 2.0.5.0)์๋ ๋ ๋ค ํ ๊ธํด์ผ ํ๋ ๋ ๊ฐ์ง ์ค์ ์ด ์์ต๋๋ค.
docker rm -f $(docker ps -aq)
systemctl restart kubelet
[ mayuchau@cg-id .kube]$ kubectl ๋
ธ๋ ๊ฐ์ ธ์ค๊ธฐ
์๋ฒ localhost:8080 ์ ๋ํ ์ฐ๊ฒฐ์ด ๊ฑฐ๋ถ๋์์ต๋๋ค. ์ฌ๋ฐ๋ฅธ ํธ์คํธ ๋๋ ํฌํธ๋ฅผ ์ง์ ํ์ต๋๊น?
์์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ์์์ ์ธ๊ธํ ์๋ฃจ์ ์ ์๋ํ์ง๋ง ํจ๊ณผ๊ฐ ์์์ต๋๋ค.
[ mayuchau@cg-id .kube]$ kubectl ๋ ธ๋ ๊ฐ์ ธ์ค๊ธฐ
์๋ฒ localhost:8080 ์ ๋ํ ์ฐ๊ฒฐ์ด ๊ฑฐ๋ถ๋์์ต๋๋ค. ์ฌ๋ฐ๋ฅธ ํธ์คํธ ๋๋ ํฌํธ๋ฅผ ์ง์ ํ์ต๋๊น?์์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ์์์ ์ธ๊ธํ ์๋ฃจ์ ์ ์๋ํ์ง๋ง ํจ๊ณผ๊ฐ ์์์ต๋๋ค.
๋ง์คํฐ ๋ ธ๋์์ /var/run/docker.sock์ ๊ถํ์ ํ์ธํ ํ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
kubectl์ด ์ค์น๋์ด ์๋์ง ํ์ธํ์ญ์์ค. ๋ค์์ ์ฌ์ฉํ์ฌ ํ์ธํ์ญ์์ค.
gcloud components list
kubectl์ ๋จผ์ ์ค์นํ์ง ์๋ ๊ฒฝ์ฐ.
gcloud ํ๋ซํผ์์ ํ๋ก์ ํธ์ Kubernetes ์์ง ์ฝ์๋ก ์ด๋ํฉ๋๋ค.
ํ๋ก์ ํธ๊ฐ ์๋ ํด๋ฌ์คํฐ์ ์ฐ๊ฒฐ๋ฉ๋๋ค. ๋ก์ปฌ ๋ช ๋ น ํ๋กฌํํธ/ํฐ๋ฏธ๋์์ ์คํํ ๋ช ๋ น์ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
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
๋ฅผ ์ ํํ๋ฉด ์ค๋ฅ๊ฐ ์ ๋ ฌ๋ฉ๋๋ค.
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์ ๋ํ ์ฐ๊ฒฐ์ด ๊ฑฐ๋ถ๋์์ต๋๋ค. ์ฌ๋ฐ๋ฅธ ํธ์คํธ ๋๋ ํฌํธ๋ฅผ ์ง์ ํ์ต๋๊น?
navkmurthy$ kubectl ๊ตฌ์ฑ get-contexts
ํ์ฌ ์ด๋ฆ ํด๋ฌ์คํฐ ์ธ์ฆ ๋ค์์คํ์ด์ค
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
"kubectl config"๋ฅผ ์ฌ์ฉํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.