해결된 질문
작성
·
2.5K
2
컴퓨터를 끄고 다시 켜니 master node만 ready이고 worker node들 전부가 not ready이네요
자동으로 살아나지 않을까 싶어 kubectl delete를 통해 worker node1만 지웠는데 안 살아나네요
이런 경우 어떻게 해야할까요?
밑에는 현재 노드들 정보와 w2 노드의 describe정보 입니다.
[root@m-k8s k8s-min-5GiB]# kubectl describe node w2-k8s
Name: w2-k8s
Roles: <none>
Labels: beta.kubernetes.io/arch=amd64
beta.kubernetes.io/os=linux
kubernetes.io/arch=amd64
kubernetes.io/hostname=w2-k8s
kubernetes.io/os=linux
Annotations: kubeadm.alpha.kubernetes.io/cri-socket: /var/run/dockershim.sock
node.alpha.kubernetes.io/ttl: 0
projectcalico.org/IPv4Address: 192.168.1.102/24
projectcalico.org/IPv4IPIPTunnelAddr: 172.16.103.128
volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp: Thu, 25 Mar 2021 02:16:10 +0900
Taints: node.kubernetes.io/unreachable:NoExecute
node.kubernetes.io/unreachable:NoSchedule
Unschedulable: false
Lease:
HolderIdentity: w2-k8s
AcquireTime: <unset>
RenewTime: Thu, 25 Mar 2021 03:10:05 +0900
Conditions:
Type Status LastHeartbeatTime LastTransitionTime Reason Message
---- ------ ----------------- ------------------ ------ -------
NetworkUnavailable False Thu, 25 Mar 2021 02:16:53 +0900 Thu, 25 Mar 2021 02:16:53 +0900 CalicoIsUp Calico is running on this node
MemoryPressure Unknown Thu, 25 Mar 2021 03:07:19 +0900 Thu, 25 Mar 2021 03:10:48 +0900 NodeStatusUnknown Kubelet stopped posting node status.
DiskPressure Unknown Thu, 25 Mar 2021 03:07:19 +0900 Thu, 25 Mar 2021 03:10:48 +0900 NodeStatusUnknown Kubelet stopped posting node status.
PIDPressure Unknown Thu, 25 Mar 2021 03:07:19 +0900 Thu, 25 Mar 2021 03:10:48 +0900 NodeStatusUnknown Kubelet stopped posting node status.
Ready Unknown Thu, 25 Mar 2021 03:07:19 +0900 Thu, 25 Mar 2021 03:10:48 +0900 NodeStatusUnknown Kubelet stopped posting node status.
Addresses:
InternalIP: 192.168.1.102
Hostname: w2-k8s
Capacity:
cpu: 1
ephemeral-storage: 38770180Ki
hugepages-2Mi: 0
memory: 1014764Ki
pods: 110
Allocatable:
cpu: 1
ephemeral-storage: 35730597829
hugepages-2Mi: 0
memory: 912364Ki
pods: 110
System Info:
Machine ID: d0cc7f8f61e348aba24d3920bbe02ce5
System UUID: CCD4F52A-56DC-4B85-A80C-89882351D7D9
Boot ID: 3f854fbc-589b-4cd5-baad-b31a70ab7c37
Kernel Version: 3.10.0-1127.19.1.el7.x86_64
OS Image: CentOS Linux 7 (Core)
Operating System: linux
Architecture: amd64
Container Runtime Version: docker://19.3.14
Kubelet Version: v1.20.2
Kube-Proxy Version: v1.20.2
PodCIDR: 172.16.2.0/24
PodCIDRs: 172.16.2.0/24
Non-terminated Pods: (2 in total)
Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits AGE
--------- ---- ------------ ---------- --------------- ------------- ---
kube-system calico-node-zqcds 250m (25%) 0 (0%) 0 (0%) 0 (0%) 3d23h
kube-system kube-proxy-wmqs2 0 (0%) 0 (0%) 0 (0%) 0 (0%) 3d23h
Allocated resources:
(Total limits may be over 100 percent, i.e., overcommitted.)
Resource Requests Limits
-------- -------- ------
cpu 250m (25%) 0 (0%)
memory 0 (0%) 0 (0%)
ephemeral-storage 0 (0%) 0 (0%)
hugepages-2Mi 0 (0%) 0 (0%)
Events: <none>
답변 2
1
0
안녕하세요
일단 워커 노드를 지우는 경우 자동으로 복구되지는 않습니다.
이것을 이해하려면 다음 강의가 있어야 하는데...ㅠㅠ 간단하게 말씀드리면 워커 노드가 다시 마스터에 조인(join)되어야 합니다.
해당 명령은 work_nodes.sh에 구현되어 있습니다.
# config for work_nodes only
kubeadm join --token 123456.1234567890123456 \
--discovery-token-unsafe-skip-ca-verification 192.168.1.10:6443
다만 제 예상에는 문제의 원인이 Calico / CNI 일 것으로 보여지는데...
이것을 트러블 슈팅하는 것보다 제일 쉬운건 워커 노드를 다시 생성하는 것이 제일 쉽습니다.
아래의 방법 중에 선택하시면 될 것 같습니다. (1: 제일 쉬움 / 내려갈 수록 어려움)
1. 워커노드 모두 삭제 후, 다시 vagrant up
2. calico 관련 모두 삭제 후, 워커 노드를 위의 join 명령으로 모두 다시 attach
(이미 어느정도 아시는 것 같아서 그냥 이렇게 드립니다. )
3. calico의 로그를 보고 문제의 원인을 트러블슈팅
위의 내용을 참고하시면 노드 복구는 어렵지 않으실 겁니다.
Calico가 문제가 생기는 경우는 너무 다양해서 어느 부분이 문제였다를 얘기하지 못하는 점 이해 바랍니다.
Calico 말고는 1년 반 동안 책 쓰면 나오는 진짜 문제들은 모두 잡아서 랩을 만들었기 때문에
다른 부분은 거의 문제가 생기지 않습니다.
감사합니다.
조훈 드림.
다행이네요 ^^ 즐거운 쿠버네티스 여행 길이 되시길요.
오늘 저녁에 뭔가 흥미를 유발할 수 있는 것을 하나 더 녹화하려고 해요.
시간 되시면 봐주세요~!