Minikube란?
- 가벼운 Kubernetes 구현체
- Linux, macOS, Windows에서 구동이 가능함
- 로컬 머신에 VM을 만들고 하나의 노드로 구성된 간단한 클러스터를 생성함
Minikube 설치
https://ganyga.tistory.com/entry/k8s-Mac-M1%EC%97%90-Docker-Kubectl-Minikube-%EC%84%A4%EC%B9%98
Minikube 명령어
minikube --help
minikube는 개발 워크플로우에 최적화된 로컬 쿠버네티스를 제공하고 관리합니다.
기본 명령어:
start 로컬 쿠버네티스 클러스터를 시작합니다
status 로컬 쿠버네티스 클러스터의 상태를 가져옵니다
stop 실행 중인 로컬 쿠버네티스 클러스터를 중지합니다
delete 로컬 쿠버네티스 클러스터를 삭제합니다
dashboard minikube 클러스터 내의 쿠버네티스 대시보드에 접근합니다
pause 쿠버네티스를 잠시 멈춥니다
unpause 잠시 멈췄던 쿠버네티스를 재개합니다
이미지 명령어
docker-env Provides instructions to point your terminal's docker-cli to the Docker Engine inside minikube.
(Useful for building docker images directly inside minikube)
podman-env Configure environment to use minikube's Podman service
cache Manage cache for images
image Manage images
환경 설정 및 관리 명령어:
addons Enable or disable a minikube addon
config Modify persistent configuration values
profile Get or list the current profiles (clusters)
update-context Update kubeconfig in case of an IP or port change
Networking and Connectivity Commands:
service 서비스에 연결된 URL을 반환합니다
tunnel Connect to LoadBalancer services
고급 명령어:
mount 특정 디렉토리를 minikube 에 마운트합니다
ssh (디버깅을 위해) minikube 환경에 접속합니다
kubectl 클러스터 버전에 맞는 kubectl 바이너리를 실행합니다
node 노드를 추가하거나 삭제, 나열합니다
cp Copy the specified file into minikube
Troubleshooting Commands:
ssh-key Retrieve the ssh identity key path of the specified node
ssh-host Retrieve the ssh host key of the specified node
ip 지정된 노드의 IP 주소를 가져옵니다
logs 로컬 쿠버네티스 클러스터를 디버그하기 위해 로그를 반환합니다
update-check 현재 그리고 최신 버전을 출력합니다
version minikube 의 버전을 출력합니다
options Show a list of global command-line options (applies to all commands).
Other Commands:
completion Generate command completion for a shell
license Outputs the licenses of dependencies to a directory
Cluster 생성
아무런 옵션을 주지 않으면, 이름이 minikube인 단일 클러스터 생성
minikube start
kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
minikube Ready control-plane 53m v1.28.3 192.168.49.2 <none> Ubuntu 22.04.3 LTS 6.6.16-linuxkit docker://24.0.7
클러스터 생성 옵션
- -p : 클러스터 이름 지정
- --kubernetes-version=v1.28.0 : 클러스터 특정 버전 지정
- --static-ip 192.168.0.100 : 고정 IP 설정
클러스터에 대한 고정 IP 설정 방법(--static-ip 옵션 사용)
전제 조건
- minikube v1.29.0 이상
- Docker 또는 Podman 드라이버
유효한 고정 IP 범위
10.0.0.2 - 10.255.255.254
172.16.0.2 - 172.31.255.254
192.168.0.2 - 192.168.255.254
참고 : 기존 클러스터에는 고정 IP를 추가할 수 없으며, 클러스터를 삭제하고 다시 생성해야 함
minikube start --driver docker --static-ip 192.168.0.100
Minikube 사용 가능한 Addon(애드온) 리스트
minikube addons list
|-----------------------------|----------|--------------|--------------------------------|
| ADDON NAME | PROFILE | STATUS | MAINTAINER |
|-----------------------------|----------|--------------|--------------------------------|
| ambassador | minikube | disabled | 3rd party (Ambassador) |
| auto-pause | minikube | disabled | minikube |
| cloud-spanner | minikube | disabled | Google |
| csi-hostpath-driver | minikube | disabled | Kubernetes |
| dashboard | minikube | disabled | Kubernetes |
| default-storageclass | minikube | enabled ✅ | Kubernetes |
| efk | minikube | disabled | 3rd party (Elastic) |
| freshpod | minikube | disabled | Google |
| gcp-auth | minikube | disabled | Google |
| gvisor | minikube | disabled | minikube |
| headlamp | minikube | disabled | 3rd party (kinvolk.io) |
| helm-tiller | minikube | disabled | 3rd party (Helm) |
| inaccel | minikube | disabled | 3rd party (InAccel |
| | | | [info@inaccel.com]) |
| ingress | minikube | disabled | Kubernetes |
| ingress-dns | minikube | disabled | minikube |
| inspektor-gadget | minikube | disabled | 3rd party |
| | | | (inspektor-gadget.io) |
| istio | minikube | disabled | 3rd party (Istio) |
| istio-provisioner | minikube | disabled | 3rd party (Istio) |
| kong | minikube | disabled | 3rd party (Kong HQ) |
| kubeflow | minikube | disabled | 3rd party |
| kubevirt | minikube | disabled | 3rd party (KubeVirt) |
| logviewer | minikube | disabled | 3rd party (unknown) |
| metallb | minikube | disabled | 3rd party (MetalLB) |
| metrics-server | minikube | disabled | Kubernetes |
| nvidia-device-plugin | minikube | disabled | 3rd party (NVIDIA) |
| nvidia-driver-installer | minikube | disabled | 3rd party (Nvidia) |
| nvidia-gpu-device-plugin | minikube | disabled | 3rd party (Nvidia) |
| olm | minikube | disabled | 3rd party (Operator Framework) |
| pod-security-policy | minikube | disabled | 3rd party (unknown) |
| portainer | minikube | disabled | 3rd party (Portainer.io) |
| registry | minikube | disabled | minikube |
| registry-aliases | minikube | disabled | 3rd party (unknown) |
| registry-creds | minikube | disabled | 3rd party (UPMC Enterprises) |
| storage-provisioner | minikube | enabled ✅ | minikube |
| storage-provisioner-gluster | minikube | disabled | 3rd party (Gluster) |
| storage-provisioner-rancher | minikube | disabled | 3rd party (Rancher) |
| volumesnapshots | minikube | disabled | Kubernetes |
|-----------------------------|----------|--------------|--------------------------------|
애드온 활성화 방법
[cluster name] addons enable [addon name]
minikube addons enable metrics-server
애드온 비활성화 방법
[cluster name] addons disable [addon name]
minikube addons disable metrics-server
'Container > Kubernetes' 카테고리의 다른 글
[k8s] minikube 클러스터 삭제 명령어 (0) | 2024.05.23 |
---|---|
[k8s] Minikube Kubernetes 용 ArgoCD설치 (0) | 2024.03.05 |
[k8s] Minikube에 node (worker) 추가하기 (0) | 2024.03.05 |
[k8s] Ubuntu 22.04에서 Kubernetes(쿠버네티스) Cluster 구성하기 (0) | 2024.02.28 |