이번 글에서는 Linux 환경에서 minikube를 설치하고 간단하게 실행하는 방법에 대해 살펴보고자 합니다. 저번 글에서는 Windows 환경에서의 minikube 설치 과정에 대해 알아봤었습니다. 하지만 wsl 내에서는 minikube가 실행되지 않아, Linux 환경으로 재설치를 진행했습니다. Windows 환경의 minikube는 제어판을 통해 제거하실 수 있습니다.
1. minikube 설치
Windows와 마찬가지로 해당 링크(https://minikube.sigs.k8s.io/docs/start/)에서 설치 방법을 확인할 수 있습니다. Operating System에서 Linux를 선택하면, 설치 파일 대신 코드가 나옵니다. 두 라인의 코드를 그대로 실행해 주시면 됩니다.
cmd 창에서 wsl을 통해 Linux Ubuntu 환경에 들어갑니다. 이후 코드를 실행하면 다음과 같이 실행되며 설치가 금방 마무리 됩니다.
$ wsl
$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 89.3M 100 89.3M 0 0 28.4M 0 0:00:03 0:00:03 --:--:-- 28.4M
$ sudo install minikube-linux-amd64 /usr/local/bin/minikube
[sudo] password for dane:
2. minikube 실행 오류 해결
설치가 완료된 후 minikube를 실행하면, Windows 환경에서 설치하는 것과는 달리 Linux 환경에서 설치할 때는 이모티콘들이 나타납니다. 하지만 마지막에 다음과 같은 오류가 발생하였습니다.
initialization failed, will try again: wait: /bin/bash -c "sudo env PATH="/var/lib/minikube/binaries/v1.28.3:$PATH" kubeadm init --config /var/tmp/minikube/kubeadm.yaml --ignore-preflight-errors=DirAvailable--etc-kubernetes-manifests,DirAvailable--var-lib-minikube,DirAvailable--var-lib-minikube-etcd,FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml,FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml,FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml,FileAvailable--etc-kubernetes-manifests-etcd.yaml,Port-10250,Swap,NumCPU,Mem,SystemVerification,FileContent--proc-sys-net-bridge-bridge-nf-call-iptables": Process exited with status 1
$ minikube start
😄 minikube v1.32.0 on Ubuntu 22.04 (amd64)
✨ Using the docker driver based on existing profile
👍 Starting control plane node minikube in cluster minikube
🚜 Pulling base image ...
🏃 Updating the running docker "minikube" container ...
🐳 Preparing Kubernetes v1.28.3 on Docker 24.0.7 ...
▪ Generating certificates and keys ...
💢 initialization failed, will try again: wait: /bin/bash -c "sudo env PATH="/var/lib/minikube/binaries/v1.28.3:$PATH" kubeadm init --config /var/tmp/minikube/kubeadm.yaml --ignore-preflight-errors=DirAvailable--etc-kubernetes-manifests,DirAvailable--var-lib-minikube,DirAvailable--var-lib-minikube-etcd,FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml,FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml,FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml,FileAvailable--etc-kubernetes-manifests-etcd.yaml,Port-10250,Swap,NumCPU,Mem,SystemVerification,FileContent--proc-sys-net-bridge-bridge-nf-call-iptables": Process exited with status 1
오류에 대해 검색해 보니 다행히 저와 동일한 오류가 발생한 분이 계셔서 해당 글(https://velog.io/@jeongiin/MLOps-감격스러운-minikube-start-성공)을 참고하였습니다. 코드는 다음과 같습니다.
$ minikube stop
✋ Stopping node "minikube" ...
🛑 Powering off "minikube" via SSH ...
🛑 1 node stopped.
$ minikube delete
🔥 Deleting "minikube" in docker ...
🔥 Deleting container "minikube" ...
🔥 Removing /home/dane/.minikube/machines/minikube ...
💀 Removed all traces of the "minikube" cluster.
$ rm -rf ~/.minikube
위와 같이 삭제를 진행하고 다시 minikube를 실행하면, 성공적으로 실행된 것을 확인할 수 있습니다.
$ minikube start
😄 minikube v1.32.0 on Ubuntu 22.04 (amd64)
✨ Automatically selected the docker driver. Other choices: none, ssh
📌 Using Docker driver with root privileges
❗ For an improved experience it's recommended to use Docker Engine instead of Docker Desktop.
Docker Engine installation instructions: https://docs.docker.com/engine/install/#server
👍 Starting control plane node minikube in cluster minikube
🚜 Pulling base image ...
💾 Downloading Kubernetes v1.28.3 preload ...
> preloaded-images-k8s-v18-v1...: 403.35 MiB / 403.35 MiB 100.00% 30.95 M
🔥 Creating docker container (CPUs=2, Memory=2200MB) ...
🐳 Preparing Kubernetes v1.28.3 on Docker 24.0.7 ...
▪ Generating certificates and keys ...
▪ Booting up control plane ...
▪ Configuring RBAC rules ...
🔗 Configuring bridge CNI (Container Networking Interface) ...
🔎 Verifying Kubernetes components...
▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
🌟 Enabled addons: storage-provisioner, default-storageclass
🏄 Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
'MLOps > Kubernetes' 카테고리의 다른 글
[Kubernetes] Service 기초 (1) | 2023.11.25 |
---|---|
[Kubernetes] Helm 설치 (1) | 2023.11.15 |
[Kubernetes] Pod 기초 (0) | 2023.11.13 |
[Kubernetes] Kubernetes 기초 (0) | 2023.11.01 |
[Kubernetes] minikube 설치 및 실행 (Windows) (0) | 2023.10.27 |
댓글