Kubernetes: kubeadm ์ดˆ๊ธฐํ™” ํ›„ x509 ์ธ์ฆ์„œ ๋ฌธ์ œ

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

๋ฒ„๊ทธ ๋ณด๊ณ : (๋‚ด ์ƒ๊ฐ์—๋Š”?)

๋ฌด์Šจ ์ผ์ด ์žˆ์—ˆ๋Š”์ง€ :

Ubuntu 16.04์—์„œ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. sudo apt-get update
  2. sudo apt-get upgrade
  3. sudo su
  4. kubeadm reset
  5. kubeadm init --token [redacted] --apiserver-advertise-address=192.168.13.1 --pod-network-cidr=10.244.0.0/16
  6. exit
  7. mkdir -p $HOME/.kube
  8. sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  9. sudo chown $(id -u):$(id -g) $HOME/.kube/config
  10. kubectl get nodes

์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋‹ค์Œ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.

Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kubernetes")

kubectl , kubeadm ๋ฐ kubelet (๋ฅผ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ --purge ) ๋ช‡ ๋ฒˆ ์ œ๊ฑฐํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ(kubeadm 1.7) ) ์ž‘๋™ํ•˜๋Š” admin.conf ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

curl --cacert /etc/kubernetes/pki/ca.crt --cert /etc/kubernetes/pki/apiserver-kubelet-client.crt --key /etc/kubernetes/pki/apiserver-kubelet-client.key https://192.168.13.1:6443

๊ทธ๋ฆฌ๊ณ  ์–ป๋‹ค:

{
  "paths": [
    "/api",
    "/api/v1",
    "/apis",
    "/apis/",
    "/apis/apiextensions.k8s.io",
    "/apis/apiextensions.k8s.io/v1beta1",
    "/apis/apiregistration.k8s.io",
    "/apis/apiregistration.k8s.io/v1beta1",
    "/apis/apps",
    "/apis/apps/v1beta1",
    "/apis/authentication.k8s.io",
    "/apis/authentication.k8s.io/v1",
    "/apis/authentication.k8s.io/v1beta1",
    "/apis/authorization.k8s.io",
    "/apis/authorization.k8s.io/v1",
    "/apis/authorization.k8s.io/v1beta1",
    "/apis/autoscaling",
    "/apis/autoscaling/v1",
    "/apis/batch",
    "/apis/batch/v1",
    "/apis/certificates.k8s.io",
    "/apis/certificates.k8s.io/v1beta1",
    "/apis/extensions",
    "/apis/extensions/v1beta1",
    "/apis/networking.k8s.io",
    "/apis/networking.k8s.io/v1",
    "/apis/policy",
    "/apis/policy/v1beta1",
    "/apis/rbac.authorization.k8s.io",
    "/apis/rbac.authorization.k8s.io/v1alpha1",
    "/apis/rbac.authorization.k8s.io/v1beta1",
    "/apis/settings.k8s.io",
    "/apis/settings.k8s.io/v1alpha1",
    "/apis/storage.k8s.io",
    "/apis/storage.k8s.io/v1",
    "/apis/storage.k8s.io/v1beta1",
    "/healthz",
    "/healthz/autoregister-completion",
    "/healthz/ping",
    "/healthz/poststarthook/apiservice-registration-controller",
    "/healthz/poststarthook/apiservice-status-available-controller",
    "/healthz/poststarthook/bootstrap-controller",
    "/healthz/poststarthook/ca-registration",
    "/healthz/poststarthook/extensions/third-party-resources",
    "/healthz/poststarthook/generic-apiserver-start-informers",
    "/healthz/poststarthook/kube-apiserver-autoregistration",
    "/healthz/poststarthook/rbac/bootstrap-roles",
    "/healthz/poststarthook/start-apiextensions-controllers",
    "/healthz/poststarthook/start-apiextensions-informers",
    "/healthz/poststarthook/start-kube-aggregator-informers",
    "/healthz/poststarthook/start-kube-apiserver-informers",
    "/logs",
    "/metrics",
    "/swagger-2.0.0.json",
    "/swagger-2.0.0.pb-v1",
    "/swagger-2.0.0.pb-v1.gz",
    "/swagger.json",
    "/swaggerapi",
    "/ui",
    "/ui/",
    "/version"
  ]
}

์˜ˆ์ƒํ–ˆ๋˜ ์ผ :

kubeadm init ๋ฅผ ํ†ตํ•ด ๋งˆ์Šคํ„ฐ๋ฅผ ์ดˆ๊ธฐํ™”ํ•œ ํ›„ kubectl ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. x509 ์ด๋ฏ€๋กœ ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ :

  • Kubernetes ๋ฒ„์ „( kubectl version ): 1.7
  • OS(์˜ˆ: /etc/os-release): Ubuntu 16.04.2 LTS
  • ์ปค๋„(์˜ˆ: uname -a ): Linux radium-control 4.4.0-83-generic #106-Ubuntu SMP Mon Jun 26 17:54:43 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
arekubeadm sicluster-lifecycle

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

$KUBECONFIG ๊ฐ€๋ฆฌํ‚ค๋Š” /etc/kubernetes/kubelet.conf ์žˆ์Šต๋‹ˆ๊นŒ?

export KUBECONFIG=/etc/kubernetes/kubelet.conf
kubectl get nodes

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

@carldanley ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์„œ๋ช… ๋ ˆ์ด๋ธ”์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ํ†ตํ•ด ์„œ๋ช… ๋ ˆ์ด๋ธ” ์„
(1) ์‹œ๊ทธ๋ฅผ ์–ธ๊ธ‰: @kubernetes/sig-<team-name>-misc
์˜ˆ: API ๊ธฐ๊ณ„์˜ ๊ฒฝ์šฐ @kubernetes/sig-api-machinery-*
(2) ์ˆ˜๋™์œผ๋กœ ๋ ˆ์ด๋ธ” ์ง€์ •: /sig <label>
์˜ˆ: ์‹ ํ˜ธ/ํ™•์žฅ์„ฑ์˜ ๊ฒฝ์šฐ /sig scalability

_์ฐธ๊ณ : ๋ฐฉ๋ฒ• (1)์€ ํŒ€์— ์•Œ๋ฆผ์„ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ํŒ€ ๋ชฉ๋ก์€ ์—ฌ๊ธฐ์—์„œ , ๋ ˆ์ด๋ธ” ๋ชฉ๋ก์€ ์—ฌ๊ธฐ ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค _

/sig ํด๋Ÿฌ์Šคํ„ฐ ์ˆ˜๋ช… ์ฃผ๊ธฐ

ํ™•์‹ค์ด ๋„์›€์ด๋œ๋‹ค๋ฉด,ํ•˜์ง€๋งŒ ๋‚œ ๊ฐ™์€ํ–ˆ๋‹ค ๋‚ด๊ฐ€ ๋ณต์‚ฌ, ์ด์ „ ์„ค์น˜ ๊ฐ€์ด๋“œ๋ฅผ ์‚ฌ์šฉ ๊นจ๋‹ฌ์•˜๋‹ค /etc/kubernetes/admin.conf ์— ~/.kube/admin.conf ๋ฐ ์„ค์ • $KUBECONFIG=$HOME/.kube/admin.conf . ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ง€์šฐ๊ณ  kubectl ๊ธฐ๋ณธ์ ์œผ๋กœ ~/.kube/config ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ kubeadm v1.7์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๊ฒƒ์„ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค - ๋…ธ๋“œ๊ฐ€ ํด๋Ÿฌ์Šคํ„ฐ์— ํ•ฉ๋ฅ˜ํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค

๋‚ด ์„ค์น˜์— ๋Œ€ํ•ด ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. v1.6.5 ๋ฐ 1.6.7๋กœ ์‹œ๋„ํ•˜๋ฉด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

.

( kubeadm init ๊ดœ์ฐฎ์•„ ๋ณด์ธ๋‹ค)

ns2 ~ # kubeadm init
[kubeadm] WARNING: kubeadm is in beta, please do not use it for production clusters.
[init] Using Kubernetes version: v1.7.3
[init] Using Authorization modes: [Node RBAC]
[preflight] Running pre-flight checks
[preflight] WARNING: docker version is greater than the most recently validated version. Docker version: 17.03.1-ce. Max validated version: 1.12
[preflight] WARNING: no supported init system detected, skipping checking for services
[preflight] WARNING: no supported init system detected, skipping checking for services
[preflight] WARNING: no supported init system detected, skipping checking for services
[preflight] WARNING: socat not found in system path
[preflight] No supported init system detected, won't ensure kubelet is running.
[certificates] Generated CA certificate and key.
[certificates] Generated API server certificate and key.
[certificates] API Server serving cert is signed for DNS names [ns2 kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [10.96.0.1 ip_of_my_server]
[certificates] Generated API server kubelet client certificate and key.
[certificates] Generated service account token signing key and public key.
[certificates] Generated front-proxy CA certificate and key.
[certificates] Generated front-proxy client certificate and key.
[certificates] Valid certificates and keys now exist in "/etc/kubernetes/pki"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/controller-manager.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/scheduler.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/admin.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"
[apiclient] Created API client, waiting for the control plane to become ready
[apiclient] All control plane components are healthy after 36.004283 seconds
[token] Using token: 62af23.9fba33a48799d425
[apiconfig] Created RBAC rules
[addons] Applied essential addon: kube-proxy
[addons] Applied essential addon: kube-dns

Your Kubernetes master has initialized successfully!

To start using your cluster, you need to run (as a regular user):

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

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  http://kubernetes.io/docs/admin/addons/

You can now join any number of machines by running the following on each node
as root:

  kubeadm join --token [some string] [ip_of_my_server]:6443

( kubeadm join ๊ดœ์ฐฎ์•„ ๋ณด์ž…๋‹ˆ๋‹ค)

h1 ~ # kubeadm join --token [some string] [ip_of_my_server]:6443 --skip-preflight-checks 
[kubeadm] WARNING: kubeadm is in beta, please do not use it for production clusters.
[preflight] Skipping pre-flight checks
[discovery] Trying to connect to API Server "192.168.0.254:6443"
[discovery] Created cluster-info discovery client, requesting info from "https://192.168.0.254:6443"
[discovery] Cluster info signature and contents are valid, will use API Server "https://192.168.0.254:6443"
[discovery] Successfully established connection with API Server "192.168.0.254:6443"
[bootstrap] Detected server version: v1.7.3
[bootstrap] The server supports the Certificates API (certificates.k8s.io/v1beta1)
[csr] Created API client to obtain unique certificate for this node, generating keys and certificate signing request
[csr] Received signed certificate from the API server, generating KubeConfig...
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"

Node join complete:
* Certificate signing request sent to master and response
  received.
* Kubelet informed of new secure connection details.

Run 'kubectl get nodes' on the master to see this machine join.

(ํ•˜์ง€๋งŒ kubectl get nodes ์‹คํŒจ)

byungnam2<strong i="17">@ns2</strong> ~ $ kubectl get nodes
Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kubernetes")

$KUBECONFIG ๊ฐ€๋ฆฌํ‚ค๋Š” /etc/kubernetes/kubelet.conf ์žˆ์Šต๋‹ˆ๊นŒ?

export KUBECONFIG=/etc/kubernetes/kubelet.conf
kubectl get nodes

@liggitt $KUBECONFIG ์„ /etc/kubernetes/kubelet.conf ํ•˜๋ฉด ์ด์ œ ์‹œ๊ฐ„ ์ดˆ๊ณผ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

ns2 ~ # ./kubernetes/kubernetes/server/bin/kubectl get nodes
Error from server (ServerTimeout): the server cannot complete the requested operation at this time, try again later (get nodes)

๊ทธ๋ฆฌ๊ณ  ์ด์ œ ๋‚ด๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ๋งค๋‰ด์–ผ์— ๊ทธ๋Ÿฌํ•œ ์ง„์ˆ ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— $KUBECONFIG ๊ฐ€ ์–ด๋””์—์„œ ์™”๋Š”์ง€ ์›ํ•ฉ๋‹ˆ๋‹ค.

๋…ธ๋“œ ๊ฒฐํ•ฉ ๋ช…๋ น์˜ ์ถœ๋ ฅ์—์„œ:

[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"

kubeadm์œผ๋กœ ํ”Œ๋ ˆ์ดํ•˜๋Š” ๋™์•ˆ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ช‡ ๋ฒˆ kubeadm init ๋ฐ kubeadm reset ํ›„ kubelet์€ certificate signed by unknown authority (kubelet ๋กœ๊ทธ์—์„œ) ๋•Œ๋ฌธ์— apiserver์™€ ํ†ต์‹ ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ kubeadm init ๋ธ”๋ก๋„ ์˜๊ตฌํžˆ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค.

/run/kubernetes/ ์ˆ˜๋™์œผ๋กœ ์ œ๊ฑฐํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ๋‹ค์‹œ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. kubeadm reset ์‹คํ–‰ํ•  ๋•Œ ์ธ์ฆ์„œ๋ฅผ ์ฒญ์†Œํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

/area kubeadm

kubeadm 1.8์„ ์‚ฌ์šฉ ์ค‘์ธ๋ฐ ์ด ๋ฌธ์ œ๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

ubuntu@ip-172-31-9-157:~$ kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.0", GitCommit:"6e937839ac04a38cac63e6a7a306c5d035fe7b0a", GitTreeState:"clean", BuildDate:"2017-09-28T22:46:41Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
ubuntu@ip-172-31-9-157:~$
ubuntu@ip-172-31-9-157:~$
ubuntu@ip-172-31-9-157:~$ kubectl get nodes
Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kubernetes")
ubuntu@ip-172-31-9-157:~$
ubuntu@ip-172-31-9-157:~$
ubuntu@ip-172-31-9-157:~$

์ˆ˜๋™์œผ๋กœ /var/run/kubernetes . kubeadm reset ์‹คํ–‰ํ•  ๋•Œ ์ฒญ์†Œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ๋ฌธ์ œ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ฃผ์˜: "ํด๋Ÿฌ์Šคํ„ฐ ์‚ฌ์šฉ์„ ์‹œ์ž‘ํ•˜๋ ค๋ฉด (์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋กœ) ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค."

[ root@master1 ~]# kubectl ๋…ธ๋“œ ๊ฐ€์ ธ์˜ค๊ธฐ
์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Œ: x509: ์•Œ ์ˆ˜ ์—†๋Š” ๊ธฐ๊ด€์—์„œ ์„œ๋ช…ํ•œ ์ธ์ฆ์„œ(์•„๋งˆ๋„ ํ›„๋ณด ๊ธฐ๊ด€ ์ธ์ฆ์„œ "kubernetes"๋ฅผ ํ™•์ธํ•˜๋Š” ๋™์•ˆ "crypto/rsa: ํ™•์ธ ์˜ค๋ฅ˜"๋กœ ์ธํ•ด)

[ root@master1 ~]# su - regular_user

[ regular_user@master1 ~]$ mkdir -p $HOME/.kube
[ regular_user@master1 ~]$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[ regular_user@master1 ~]$ sudo chown $(id -u):$(id -g) $HOME/.kube/config

[ regular_user@master1 ~]$ kubectl ๋…ธ๋“œ ๊ฐ€์ ธ์˜ค๊ธฐ
์ด๋ฆ„ ์ƒํƒœ ์—ญํ•  ๋‚˜์ด ๋ฒ„์ „
master1.virti.corp NotReady ๋งˆ์Šคํ„ฐ 6m v1.8.1
master2.virti.corp ์ค€๋น„ ์•ˆ ๋จ4m v1.8.1

@jeffbr13 ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํšจ๊ณผ๊ฐ€์žˆ๋‹ค.

์ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฌธ์„œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์‹ญ์‹œ์˜ค.

kubeadm reset ํ›„ kubeadm init๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๊ณ  ๋‹ค์Œ์„ ๋ฃจํŠธ๋กœ ์‹คํ–‰ํ•œ ๊ฒฝ์šฐ ์ƒˆ ๊ตฌ์„ฑ์„ ์–ป์œผ๋ ค๋ฉด ๋ฃจํŠธ๋กœ ๋‹ค์‹œ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

๊ทธ๋Ÿฐ ๋‹ค์Œ ์—ฌ์ „ํžˆ ๋ฃจํŠธ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

"sudo kubeadm reset"์„ ์‹คํ–‰ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์บ์‹œ๋œ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ง€์šฐ๋ ค๋ฉด .kube ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ œ๊ฑฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ ํ›„์— @petersonwsantos๋ฅผ ํŒ”๋กœ์šฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ค, KUBECONFIG๋ฅผ ์„ค์ • ํŒŒ์ผ์˜ ์ด๋ฆ„์„ (์˜ˆ: $HOME/.kube/config) ๋ฌด์—‡์œผ๋กœ๋“  ์„ค์ •ํ•˜์‹ญ์‹œ์˜ค.

ํƒฑํฌ ์นœ๊ตฌ int true.

๋‹ค์Œ ์ค„๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑํ•˜๋ฉด _$kubectl get nodes_๊ฐ€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

_root:~/k8s# ๊ณ ์–‘์ด 04-config.sh
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
sudo chmod 777 $HOME/.kube/config
๋‚ด๋ณด๋‚ด๊ธฐ KUBECONFIG=/etc/kubernetes/kubelet.conf
๋‚ด๋ณด๋‚ด๊ธฐ KUBECONFIG=/home/ubuntu/.kube/config
kubectl ๊ฐ€์ ธ์˜ค๊ธฐ ๋…ธ๋“œ

์ด๋Š” ๋‹ค์ค‘ ๋งˆ์Šคํ„ฐ ์„ค์ •์ด ์žˆ๊ณ  ๊ฐ ๋งˆ์Šคํ„ฐ์—์„œ /etc/kubernetes/pki/ca.* ๋ฅผ ์ƒ์„ฑํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋งˆ์Šคํ„ฐ์—์„œ ๋‚˜๋จธ์ง€ ๋งˆ์Šคํ„ฐ๋กœ ๋ณต์‚ฌํ•˜๋Š” ๋Œ€์‹ .

kubernetes ๋ฌธ์„œ์—์„œ ์†”๋ฃจ์…˜์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.
๋ฌธ์„œ๋ฅผ ๋”ฐ๋ฅด๋Š” ๋™์•ˆ ์ด ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ .kube ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ์žŠ์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
mkdir -p $HOME/.kube

์ด ๋ช…๋ น์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— .kube ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
mv $HOME/.kube $HOME/.kube.bak

https://kubernetes.io/docs/setup/independent/troubleshooting-kubeadm/

์ด ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์˜ ๊ฒฝ์šฐ /root/.kube ํด๋”๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๋ฐฑ์—… ์œ„์น˜๋กœ ์ด๋™ํ•˜๊ณ  ๋‹ค์‹œ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. kubeadm์„ sudo๋กœ ์‹คํ–‰ํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋” ์ด์ƒ ์œ ํšจํ•˜์ง€ ์•Š์€ ์บ์‹œ๋œ ๋ฃจํŠธ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ๋†’์Šต๋‹ˆ๋‹ค.

๋‚ด ๋ฌธ์ œ๋Š” KubeEdge ์‹œ์ž‘ํ•˜๊ธฐ ๊ฐ€์ด๋“œ์—์„œ ์ƒ์„ฑํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ์ธ์ฆ์„œ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ssl๊ณผ kubeedge๋ฅผ ์–ด์ง€๋Ÿฝํžˆ์ง€ ์•Š๊ณ  ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์˜: "ํด๋Ÿฌ์Šคํ„ฐ ์‚ฌ์šฉ์„ ์‹œ์ž‘ํ•˜๋ ค๋ฉด (์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋กœ) ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค."

[ root@master1 ~]# kubectl ๋…ธ๋“œ ๊ฐ€์ ธ์˜ค๊ธฐ
์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Œ: x509: ์•Œ ์ˆ˜ ์—†๋Š” ๊ธฐ๊ด€์—์„œ ์„œ๋ช…ํ•œ ์ธ์ฆ์„œ(์•„๋งˆ๋„ ํ›„๋ณด ๊ธฐ๊ด€ ์ธ์ฆ์„œ "kubernetes"๋ฅผ ํ™•์ธํ•˜๋Š” ๋™์•ˆ "crypto/rsa: ํ™•์ธ ์˜ค๋ฅ˜"๋กœ ์ธํ•ด)

[ root@master1 ~]# su - regular_user

[ regular_user@master1 ~]$ mkdir -p $HOME/.kube
[ regular_user@master1 ~]$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[ regular_user@master1 ~]$ sudo chown $(id -u):$(id -g) $HOME/.kube/config

์ด๊ฒƒ์€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ๋œ ์ดํ›„๋กœ KUBECONFIG๋ฅผ ๋‹ค์‹œ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์„ ์ œ์™ธํ•˜๊ณ 

๋‚ด๋ณด๋‚ด๊ธฐ KUBECONFIG=$HOME/.kube/config

[ regular_user@master1 ~]$ kubectl ๋…ธ๋“œ ๊ฐ€์ ธ์˜ค๊ธฐ
์ด๋ฆ„ ์ƒํƒœ ์—ญํ•  ๋‚˜์ด ๋ฒ„์ „
master1.virti.corp NotReady ๋งˆ์Šคํ„ฐ 6m v1.8.1
master2.virti.corp NotReady 4m v1.8.1

$KUBECONFIG ๊ฐ€๋ฆฌํ‚ค๋Š” /etc/kubernetes/kubelet.conf ์žˆ์Šต๋‹ˆ๊นŒ?

export KUBECONFIG=/etc/kubernetes/kubelet.conf
kubectl get nodes

๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๋ณด๋‚ด๊ธฐ KUBECONFIG=/etc/kubernetes/kubelet.conf
kubectl ๊ฐ€์ ธ์˜ค๊ธฐ ๋…ธ๋“œ

๋‚˜์—๊ฒŒ์„œ ์ผ์ด๋‹ค

์ฃผ์˜: "ํด๋Ÿฌ์Šคํ„ฐ ์‚ฌ์šฉ์„ ์‹œ์ž‘ํ•˜๋ ค๋ฉด (์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋กœ) ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค."

[ root@master1 ~]# kubectl ๋…ธ๋“œ ๊ฐ€์ ธ์˜ค๊ธฐ
์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Œ: x509: ์•Œ ์ˆ˜ ์—†๋Š” ๊ธฐ๊ด€์—์„œ ์„œ๋ช…ํ•œ ์ธ์ฆ์„œ(์•„๋งˆ๋„ ํ›„๋ณด ๊ธฐ๊ด€ ์ธ์ฆ์„œ "kubernetes"๋ฅผ ํ™•์ธํ•˜๋Š” ๋™์•ˆ "crypto/rsa: ํ™•์ธ ์˜ค๋ฅ˜"๋กœ ์ธํ•ด)

[ root@master1 ~]# su - regular_user

[ regular_user@master1 ~]$ mkdir -p $HOME/.kube
[ regular_user@master1 ~]$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[ regular_user@master1 ~]$ sudo chown $(id -u):$(id -g) $HOME/.kube/config

[ regular_user@master1 ~]$ kubectl ๋…ธ๋“œ ๊ฐ€์ ธ์˜ค๊ธฐ
์ด๋ฆ„ ์ƒํƒœ ์—ญํ•  ๋‚˜์ด ๋ฒ„์ „
master1.virti.corp NotReady ๋งˆ์Šคํ„ฐ 6m v1.8.1
master2.virti.corp NotReady 4m v1.8.1

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

kubeadm init ๋‹ค์Œ์— $HOME/.kube ํด๋”๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

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