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

요지한님의 프로필 이미지

작성한 질문수

데브옵스(DevOps)를 위한 쿠버네티스 마스터

우분투 환경으로 클러스터 구성 설명 2 - 클러스터 설정

kubelet이 작동하지 않아요

해결된 질문

작성

·

12K

0

다른분이 질문주신 에러랑 같은 에러나서 kubelet을 확인해보았는데요

$ 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: activating (auto-restart) (Result: exit-code) since Wed 2021-09-01 14:27:17 

     Docs: https://kubernetes.io/docs/home/

  Process: 4242 ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARG

 Main PID: 4242 (code=exited, status=1/FAILURE)

_______________________________________

$ journalctl -xeu kubelet

 9월 01 14:28:31 master kubelet[5121]: I0901 14:28:31.215001    5121 server.go:440] "Kubelet version" kubeletVersion="v1.22.1"

 9월 01 14:28:31 master kubelet[5121]: I0901 14:28:31.215369    5121 server.go:868] "Client rotation is on, will bootstrap in background"

 9월 01 14:28:31 master kubelet[5121]: I0901 14:28:31.217288    5121 certificate_store.go:130] Loading cert/key pair from "/var/lib/kubelet/pki/kubelet-client-current.pem".

 9월 01 14:28:31 master kubelet[5121]: I0901 14:28:31.219826    5121 dynamic_cafile_content.go:155] "Starting controller" name="client-ca-bundle::/etc/kubernetes/pki/ca.crt"

 9월 01 14:28:31 master kubelet[5121]: I0901 14:28:31.344157    5121 server.go:687] "--cgroups-per-qos enabled, but --cgroup-root was not specified.  defaulting to /"

 9월 01 14:28:31 master kubelet[5121]: I0901 14:28:31.344318    5121 container_manager_linux.go:280] "Container manager verified user specified cgroup-root exists" cgroupRoot=[]

 9월 01 14:28:31 master kubelet[5121]: I0901 14:28:31.344368    5121 container_manager_linux.go:285] "Creating Container Manager object based on Node Config" nodeConfig={RuntimeCgroupsName: Syst

 9월 01 14:28:31 master kubelet[5121]: I0901 14:28:31.344824    5121 topology_manager.go:133] "Creating topology manager with policy per scope" topologyPolicyName="none" topologyScopeName="conta

 9월 01 14:28:31 master kubelet[5121]: I0901 14:28:31.344847    5121 container_manager_linux.go:320] "Creating device plugin manager" devicePluginEnabled=true

 9월 01 14:28:31 master kubelet[5121]: I0901 14:28:31.344873    5121 state_mem.go:36] "Initialized new in-memory state store"

 9월 01 14:28:31 master kubelet[5121]: I0901 14:28:31.344950    5121 kubelet.go:314] "Using dockershim is deprecated, please consider using a full-fledged CRI implementation"

 9월 01 14:28:31 master kubelet[5121]: I0901 14:28:31.344974    5121 client.go:78] "Connecting to docker on the dockerEndpoint" endpoint="unix:///var/run/docker.sock"

 9월 01 14:28:31 master kubelet[5121]: I0901 14:28:31.344985    5121 client.go:97] "Start docker client with request timeout" timeout="2m0s"

 9월 01 14:28:31 master kubelet[5121]: I0901 14:28:31.360346    5121 docker_service.go:566] "Hairpin mode is set but kubenet is not enabled, falling back to HairpinVeth" hairpinMode=promiscuous-

 9월 01 14:28:31 master kubelet[5121]: I0901 14:28:31.360368    5121 docker_service.go:242] "Hairpin mode is set" hairpinMode=hairpin-veth

 9월 01 14:28:31 master kubelet[5121]: I0901 14:28:31.360442    5121 cni.go:239] "Unable to update cni config" err="no networks found in /etc/cni/net.d"

 9월 01 14:28:31 master kubelet[5121]: I0901 14:28:31.365939    5121 cni.go:239] "Unable to update cni config" err="no networks found in /etc/cni/net.d"

 9월 01 14:28:31 master kubelet[5121]: I0901 14:28:31.366083    5121 docker_service.go:257] "Docker cri networking managed by the network plugin" networkPluginName="cni"

 9월 01 14:28:31 master kubelet[5121]: I0901 14:28:31.366166    5121 cni.go:239] "Unable to update cni config" err="no networks found in /etc/cni/net.d"

 9월 01 14:28:31 master kubelet[5121]: I0901 14:28:31.378615    5121 docker_service.go:264] "Docker Info" dockerInfo=&{ID:FGK6:UGPU:XMZT:TOKQ:VKEU:5DXR:TLC6:66MA:BUFY:SFEG:2ZGF:T7VC Containers:0

 9월 01 14:28:31 master kubelet[5121]: E0901 14:28:31.378644    5121 server.go:294] "Failed to run kubelet" err="failed to run Kubelet: misconfiguration: kubelet cgroup driver: \"systemd\" is di

 9월 01 14:28:31 master systemd[1]: kubelet.service: Main process exited, code=exited, status=1/FAILURE

 9월 01 14:28:31 master systemd[1]: kubelet.service: Failed with result 'exit-code'.

________________________________________

이렇게 나옵니다 

답변 3

1

안녕하세요 강사 최일선입니다.

1.22 버전에서 문제가 발생하기 시작한 문제 같습니다.

다음 명령을 사용해 이름을 변경하고 데몬을 재시작할 수 있습니다. 이후 kubeadm init을 수행하시면 정상 동작합니다.

cat <<EOF | sudo tee /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

service docker restart

쿠버네티스의 cgroup과 도커의 cgroup 이름이 일치하지 않아서 발생하는 문제로 다음 두 명령어를 사용해 도커 cgroup을 "cgroupfs" 에서 systemd로 변경이 가능합니다. 반드시 daemon.json 파일 생성후에 도커 데몬을 재시작해주시기 바랍니다.

그리고 다음 명령으로 현재 도커 cgroup 확인이 가능합니다. 

$ sudo docker info | grep -i cgroup

# 출력
 Cgroup Driver: cgroupfs
 Cgroup Version: 1

감사합니다.

요지한님의 프로필 이미지
요지한
질문자

감사합니다 잘 작동하는 것 확인하였습니다!

1

안녕하세요 강사 최일선입니다.

저도 오늘 해보고 댓글달거나 강의를 수정하거나 하겠습니다. 버전업데이트로 인한 문제로 보입니다. 감사합니다!

0

 9월 01 14:28:31 master kubelet[5121]: E0901 14:28:31.378644    5121 server.go:294] "Failed to run kubelet" err="failed to run Kubelet: misconfiguration: kubelet cgroup driver: \"systemd\" is di

cgroup driver가 일치하지 않아서 발생하는 에러에용

저기 에러난 파일 열어서 도커 드라이버랑 쿠버네티스 드라이버를 똑같이 맞춰주시고 서비스 재시작 해보세용