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 클러스터가 구동됩니다.