이번 글에서는 Windows 환경에서 minikube를 설치하고 간단하게 실행하는 방법에 대해 살펴보고자 합니다. minikube는 로컬 환경에서 Kubernetes의 클러스터를 손쉽게 구성할 수 있도록 돕는 툴 중의 하나입니다. k3s라는 툴도 존재하지만, minikube를 보편적으로 사용하는 것 같아 minikube를 통해 진행하겠습니다.
minikube를 설치하기 이전에 docker가 설치되어있어야 하므로, docker가 설치되지 않은 분은 docker 설치 관련 글(https://dslyh01.tistory.com/39)을 참고해 주시길 바랍니다.
1. minikube 설치
minikube는 다음 링크(https://minikube.sigs.k8s.io/docs/start/)에서 설치하는 것이 가능합니다. 해당 링크에 접속한 이후, Operating system 옵션에서 사용 환경에 맞는 OS를 선택합니다. Windows의 경우 latest release를 클릭하면 되고, Linux나 macOS의 경우에는 나타는 명령어를 통해 설치하면 됩니다.
저는 Windows 환경에서 진행했기 때문에 설치 파일을 통해 진행하였습니다. 설치 파일에서 '다음', '동의함' 등과 같은 일반적인 것들을 선택하고 나면 설치가 완료됩니다.
설치가 제대로 되었는지 확인하기 위해서는 cmd 창에서 아래의 명령어를 입력해 주면 됩니다. 그런데 저는 설치는 되었지만, Unable to resolve the current Docker CLI context "default"와 같은 경고 메시지가 나타났습니다.
$ minikube version
W1027 09:17:26.777750 26632 main.go:291] Unable to resolve the current Docker CLI context "default": context "default": context not found: open C:\Users\leeyh\.docker\contexts\meta\37a8eec1ce19687d132fe29051dca629d164e2c4958ba141d5f4133a33f0688f\meta.json: The system cannot find the path specified.
minikube version: v1.31.2
commit: fd7ecd9c4599bef9f04c0986c4a0187f98a4396e
관련 글을 찾아보니 아래의 명령어를 통해 minikube context를 추가해 주면 된다고 합니다. 아래의 명령어 실행 후, 다시 minikube version을 확인해 보니 경고 메시지가 사라진 것을 확인할 수 있었습니다. 이것으로 minikube 설치는 완료되었습니다.
https://devopsbuild.com/minikube-unable-to-resolve-the-current-docker-cli-context-default/
Minikube - Unable to resolve the current Docker CLI context default - context not found
Unable to resolve the current Docker CLI context "default": context "default": context not found: open The system cannot find the path specified.
devopsbuild.com
$ kubectl config set-context minikube
Context "minikube" modified.
$ minikube version
minikube version: v1.31.2
commit: fd7ecd9c4599bef9f04c0986c4a0187f98a4396e
2. minikube 실행
minikube 실행도 간단합니다. 단순하게 minikube start를 입력해 주면 됩니다. 명령어 뒤에 --cpus 2 --memory 2000 등의 추가 옵션을 통해 사양을 지정하는 것도 가능합니다.
$ minikube start
* Microsoft Windows 10 Pro 10.0.19045.3570 Build 19045.3570 의 minikube v1.31.2
* 자동적으로 docker 드라이버가 선택되었습니다
* Using Docker Desktop driver with root privileges
* minikube 클러스터의 minikube 컨트롤 플레인 노드를 시작하는 중
* 베이스 이미지를 다운받는 중 ...
* 쿠버네티스 v1.27.4 을 다운로드 중 ...
> preloaded-images-k8s-v18-v1...: 393.21 MiB / 393.21 MiB 100.00% 26.30 M
> gcr.io/k8s-minikube/kicbase...: 447.62 MiB / 447.62 MiB 100.00% 26.72 M
* Creating docker container (CPUs=2, Memory=4000MB) ...
* 쿠버네티스 v1.27.4 을 Docker 24.0.4 런타임으로 설치하는 중
- 인증서 및 키를 생성하는 중 ...
- 컨트롤 플레인이 부팅...
- RBAC 규칙을 구성하는 중 ...
* Configuring bridge CNI (Container Networking Interface) ...
* Kubernetes 구성 요소를 확인...
- Using image gcr.io/k8s-minikube/storage-provisioner:v5
* 애드온 활성화 : storage-provisioner, default-storageclass
* 끝났습니다! kubectl이 "minikube" 클러스터와 "default" 네임스페이스를 기본적으로 사용하도록 구성되었습니다.
minikube를 실행하면 자동적으로 image를 다운로드하고, minikube container를 실행하여 Kubernetes 클러스터를 생성합니다. 해당 사항은 docker 명령어를 통해 확인 가능합니다.
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
gcr.io/k8s-minikube/kicbase v0.0.40 c6cc01e60919 3 months ago 1.19GB
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e430af14dbab gcr.io/k8s-minikube/kicbase:v0.0.40 "/usr/local/bin/entr…" About a minute ago Up About a minute 127.0.0.1:53610->22/tcp, 127.0.0.1:53611->2376/tcp, 127.0.0.1:53613->5000/tcp, 127.0.0.1:53609->8443/tcp, 127.0.0.1:53612->32443/tcp minikube
minikube를 실행하였기 때문에 클러스터와 상호작용하는 것이 가능합니다. 아래의 명령어를 통해 pod들을 확인할 수 있습니다.
$ kubectl get pod -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-5d78c9869d-blqqv 1/1 Running 0 19m
etcd-minikube 1/1 Running 0 20m
kube-apiserver-minikube 1/1 Running 0 20m
kube-controller-manager-minikube 1/1 Running 0 20m
kube-proxy-lq7ql 1/1 Running 0 19m
kube-scheduler-minikube 1/1 Running 0 20m
storage-provisioner 1/1 Running 0 20m
minikube를 종료하고 싶다면, minikube stop 명령어를 통해 종료하면 됩니다.
$ minikube stop
* "minikube" 노드를 중지하는 중 ...
* "minikube"를 SSH로 전원을 끕니다 ...
* 1개의 노드가 중지되었습니다.
이번 글에서는 minikube를 설치하고 간단하게 관련 명령어들을 실행해 봤습니다. 아직 Kubernetes에 대해 개념적으로 부족한 부분이 많아, 공부하면서 계속 정리하고자 합니다.
<참고>
https://velog.io/@gentledev10/install-minikube
minikube 설치 및 사용
minikube 를 설치하고 간단한 사용법을 알아보자
velog.io
https://nangman14.tistory.com/77
Minikube로 로컬 환경에서 쿠버네티스 클러스터 구성하기(MacOS, Windows 환경)
쿠버네티스 환경이 대중화되면서 다양한 플랫폼을 기반으로 쿠버네티스를 구동할 수 있게 되었습니다. 하지만 쿠버네티스를 프로덕션 환경에 올리기 전에 기술에 익숙해지거나 버전 테스트를
nangman14.tistory.com
'MLOps > Kubernetes' 카테고리의 다른 글
[Kubernetes] Service 기초 (1) | 2023.11.25 |
---|---|
[Kubernetes] Helm 설치 (1) | 2023.11.15 |
[Kubernetes] Pod 기초 (0) | 2023.11.13 |
[Kubernetes] minikube 설치 및 실행 (Linux) (2) | 2023.11.10 |
[Kubernetes] Kubernetes 기초 (0) | 2023.11.01 |
댓글