인프런 커뮤니티 질문&답변

uytr083님의 프로필 이미지
uytr083

작성한 질문수

쉽게 시작하는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}

worker node, not ready 시 어떻게 해야 하나요?

해결된 질문

작성

·

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

uytr083님의 프로필 이미지
uytr083
질문자

감사합니다 제시해주신 1번 방법으로 해결하였습니다.

조훈(Hoon Jo)님의 프로필 이미지
조훈(Hoon Jo)
지식공유자

다행이네요 ^^ 즐거운 쿠버네티스 여행 길이 되시길요. 

오늘 저녁에 뭔가 흥미를 유발할 수 있는 것을 하나 더 녹화하려고 해요. 

시간 되시면 봐주세요~!

0

조훈(Hoon Jo)님의 프로필 이미지
조훈(Hoon Jo)
지식공유자

안녕하세요 

일단 워커 노드를 지우는 경우 자동으로 복구되지는 않습니다. 

이것을 이해하려면 다음 강의가 있어야 하는데...ㅠㅠ 간단하게 말씀드리면 워커 노드가 다시 마스터에 조인(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년 반 동안 책 쓰면 나오는 진짜 문제들은 모두 잡아서 랩을 만들었기 때문에 

다른 부분은 거의 문제가 생기지 않습니다. 

감사합니다.

 

조훈 드림. 

uytr083님의 프로필 이미지
uytr083

작성한 질문수

질문하기