오늘은 Kubernetes minikube start error - Unit file cri-docker.socket does not exist 해결방법에 대해
포스팅 하려고 합니다.
일반적으로 kubernetes의 환경에서 가장 minimun한 아키텍처로
1개의 master node와 2개의 worker node로 구성이 되어있지만,
minikube로 한개의 node에서 master node와 worker node 역할을 모두 할수있습니다.
물론 kubernetes의 간소화 버전 및 기능이라 기본적인 동작과 구성 요소는 비슷할 것입니다.
kubernetes의 runtime으로 동작하는 docker 및 containerd와 같이 minikube 또한 runtime이 필요합니다.
minikube service 를 실행했을때 발생하는 runtime erorr는 다음과 같습니다.
stderr: Failed to enable unit: Unit file cri-docker.socket does not exist.
에러 내용을 통해 runtime인 cri-docker를 찾을 수 없다는 이야기 입니다.
root@ubuntu30:/cri-dockerd# minikube start --driver=none
* minikube v1.26.0 on Ubuntu 20.04 (kvm/amd64)
* Using the none driver based on existing profile
X Requested memory allocation (1888MB) is less than the recommended minimum 1900MB. Deployments may fail.
X The requested memory allocation of 1888MiB does not leave room for system overhead (total system memory: 1888MiB). You may face stability issues.
* Suggestion: Start minikube with less memory allocated: 'minikube start --memory=1888mb'
* Starting control plane node minikube in cluster minikube
* Restarting existing none bare metal machine for "minikube" ...
* OS release is Ubuntu 20.04.4 LTS
X Exiting due to RUNTIME_ENABLE: sudo systemctl enable cri-docker.socket: exit status 1
stdout:
stderr:
Failed to enable unit: Unit file cri-docker.socket does not exist.
*
╭─────────────────────────────────────────────────────────────────────────────────────────────╮
│ │
│ * If the above advice does not help, please let us know: │
│ https://github.com/kubernetes/minikube/issues/new/choose │
│ │
│ * Please run `minikube logs --file=logs.txt` and attach logs.txt to the GitHub issue. │
│ │
╰─────────────────────────────────────────────────────────────────────────────────────────────╯
상세한 내용을 다루면 더 좋겠지만, 일반적으로 minikube는 test용도로 사용될 것이기 때문에
간단하게 해결방법에 대한 내용만 다루고 마무리 하도록 하겠습니다.
위 문제를 해결하기 위해서 cri-dockerd를 설치하면 됩니다.
# Run these commands as root
wget https://storage.googleapis.com/golang/getgo/installer_linux
chmod +x ./installer_linux
./installer_linux
source ~/.bash_profile
git clone https://github.com/Mirantis/cri-dockerd.git
cd cri-dockerd
mkdir bin
go get && go build -o bin/cri-dockerd
mkdir -p /usr/local/bin
install -o root -g root -m 0755 bin/cri-dockerd /usr/local/bin/cri-dockerd
cp -a packaging/systemd/* /etc/systemd/system
sed -i -e 's,/usr/bin/cri-dockerd,/usr/local/bin/cri-dockerd,' /etc/systemd/system/cri-docker.service
systemctl daemon-reload
systemctl enable cri-docker.service
systemctl enable --now cri-docker.socket
그리고 다시 minikube를 start 하면 정상적으로 동작할 것입니다.
지금까지 Kubernetes]minikube start error - Unit file cri-docker.socket does not exist 해결방법에 대한 포스팅 이었습니다.
'Develope > Kubernetes' 카테고리의 다른 글
[Kubernetes] 신규 worker node join 방법 (0) | 2022.11.11 |
---|---|
[Kubernetes] Certified Kubernetes Administrator (CKA) Exam 시험 일정 변경 오류 이슈 (1) | 2022.10.03 |
[Kubernetes] Kubevirt vm containerDisk image 생성 방법 (0) | 2022.08.25 |
[Kubernetes] 쿠버네티스 pod 및 오브젝트 다양한 강제 삭제 방법 (0) | 2022.07.19 |
[Kubernetes] 쿠버네티스 설치 및 환경구성(ubuntu 20.04) (0) | 2022.07.11 |