minikube 로 로컬에 쿠버네티스 환경 구성하기

미니쿠베는 local 환경에서 쿠버네티스를 학습하고 개발하는데 활용하는 것에 포커싱한 로컬용 쿠버네티스입니다.

minikube 를 사용하려면 사전에 docker 나 podman 등 container 도구를 설치해야 합니다.


설치


Linux

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube


OSX m1

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-arm64
sudo install minikube-darwin-arm64 /usr/local/bin/minikube


이외 환경에 설치하려면 minikube start | minikube (k8s.io)  에서 사용하는 환경에 맞는 설치 방법을 참고하면 됩니다.


설치가 끝났으면 cluster를 구동합니다.

minikube start


저는 Rocky Linux 에 설치했는데 다음과 같은 에러 발생했습니다.

* minikube v1.24.0 on Rocky 8.5
* Unable to pick a default driver. Here is what was considered, in preference order:
  - docker: Not installed: exec: "docker": executable file not found in $PATH
  - podman: Not healthy: "sudo -k -n podman version --format {{.Version}}" exit status 1: sudo: a password is required
  - podman: Suggestion: Add your user to the 'sudoers' file: 'lesstif ALL=(ALL) NOPASSWD: /usr/bin/podman' <https://podman.io>

에러 메시지를 보니 minikube 를 실행하는 계정(lesstif)이 podman 을 실행할 때 암호가 필요해서 에러가 났으므로 권고대로 /etc/sudoers 파일을 수정해 주면 됩니다.


/etc/sudoers 을 수정하기 위한 명령어인 visudo 명령을 실행합니다.

$ sudo visudo


/etc/sudoers 파일 맨 뒤에 다음 내용을 추가합니다. 저는 lesstif 이지만 이 계정은 사용자마다 다를 수 있습니다.

lesstif ALL=(ALL) NOPASSWD: /usr/bin/podman


저장하고 나온후에 다시 cluster를 실행합니다.

$ minikube start

* minikube v1.24.0 on Rocky 8.5
* Automatically selected the podman driver
* Starting control plane node minikube in cluster minikube
* Pulling base image ...
* Downloading Kubernetes v1.22.3 preload ...
    > preloaded-images-k8s-v13-v1...: 501.73 MiB / 501.73 MiB  100.00% 86.18 Mi
    > gcr.io/k8s-minikube/kicbase: 355.78 MiB / 355.78 MiB  100.00% 17.23 MiB p
E0102 20:48:32.537687 4162862 cache.go:201] Error downloading kic artifacts:  not yet implemented, see issue #8426
* Creating podman container (CPUs=2, Memory=7900MB) ...
* Preparing Kubernetes v1.22.3 on Docker 20.10.8 ...
  - Generating certificates and keys ...
  - Booting up control plane ...
  - Configuring RBAC rules ...
* Verifying Kubernetes components...
  - Using image gcr.io/k8s-minikube/storage-provisioner:v5
* Enabled addons: storage-provisioner, default-storageclass
* kubectl not found. If you need it, try: 'minikube kubectl -- get pods -A'
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default


정상적으로 Kubernetes 클러스터가 구동됩니다.


같이 보기