[Kubernetes] minikube란? 설치 및 사용법
🚀 minikube란 ?
minikube는 macOS, Linux 및 Windows에서 로컬 쿠버네티스 클러스터를 쉽고 빠르게 세팅할 수 있는 도구이다.
🚀 minikube 설치
해당 설치방법은 Windows를 기반으로 작성되었다.
minikube start | minikube (k8s.io)
choco install minikube
choco
를 이용해 minikube를 설치한다. (choco
가 없다면 Chocolatey 개념 및 설치 방법를 참조)
🚀 minikube start
PS C:\Users\Shinsohui> minikube start
😄 Microsoft Windows 10 Education 10.0.19044 Build 19044 의 minikube v1.25.2
✨ 자동적으로 virtualbox 드라이버가 선택되었습니다
👍 minikube 클러스터의 minikube 컨트롤 플레인 노드를 시작하는 중
🔥 virtualbox VM (CPUs=2, Memory=4000MB, Disk=20000MB) 를 생성하는 중 ...
❗ This VM is having trouble accessing https://k8s.gcr.io
💡 To pull new external images, you may need to configure a proxy: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/
🐳 쿠버네티스 v1.23.3 을 Docker 20.10.12 런타임으로 설치하는 중
▪ kubelet.housekeeping-interval=5m
▪ 인증서 및 키를 생성하는 중 ...
▪ 컨트롤 플레인이 부팅...
▪ RBAC 규칙을 구성하는 중 ...
▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
🔎 Kubernetes 구성 요소를 확인...
🌟 애드온 활성화 : default-storageclass, storage-provisioner
🏄 끝났습니다! kubectl이 "minikube" 클러스터와 "default" 네임스페이스를 기본적으로 사용하도록 구성되었습니다.
minikube 1.25.2 버전이 설치된다.
설치시 어떠한 가상화 드라이버를 사용할 것인지 자동으로 선택한다.
미리 세팅해 놓은 크기가 작은 리눅스 이미지를 자동으로 받는다.
쿠버네티스 1.23.3 버전이 설치된 이미지를 받는다.
CPU=2, Memory=4000MB, Disk=2000MB로 설정한 VM을 생성한다.
가상 컴퓨터를 부팅하고 자동으로 kubeadm init
을 적용시킨다.
PS C:\Users\Shinsohui> kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane,master 30s v1.23.3
minikube라는 노드 1개로 이루어진 클러스터가 구성되어 있다.
PS C:\Users\Shinsohui> kubectl api-resources
생성 가능한 리소스 목록을 확인할 수 있다.
PS C:\Users\Shinsohui> kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
standard (default) k8s.io/minikube-hostpath Delete Immediate false 2m20s
동적 프로비저닝을 위해 standard
라는 이름의 스토리지 클래스가 존재한다.
PS C:\Users\Shinsohui> kubectl config view
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://192.168.100.100:6443
name: cluster.local
- cluster:
certificate-authority: C:\Users\Shinsohui\.minikube\ca.crt
extensions:
- extension:
last-update: Mon, 30 May 2022 21:19:43 KST
provider: minikube.sigs.k8s.io
version: v1.25.2
name: cluster_info
server: https://192.168.59.101:8443
name: minikube
직접 kubespray로 설치한 cluster.local
과 minikube
가 존재한다.
users:
- name: kubernetes-admin
user:
client-certificate-data: REDACTED
client-key-data: REDACTED
- name: minikube
user:
client-certificate: C:\Users\Shinsohui\.minikube\profiles\minikube\client.crt
client-key: C:\Users\Shinsohui\.minikube\profiles\minikube\client.key
contexts:
- context:
cluster: cluster.local
user: kubernetes-admin
name: kubernetes-admin@cluster.local
- context:
cluster: minikube
extensions:
- extension:
last-update: Mon, 30 May 2022 21:19:43 KST
provider: minikube.sigs.k8s.io
version: v1.25.2
name: context_info
namespace: default
user: minikube
name: minikube
current-context: minikube
minikube start 하면 config 파일이 자동으로 업데이트된다.
PS C:\Users\Shinsohui> kubectl config get-clusters
NAME
cluster.local
minikube
PS C:\Users\Shinsohui> kubectl config get-users
NAME
kubernetes-admin
minikube
PS C:\Users\Shinsohui> kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
kubernetes-admin@cluster.local cluster.local kubernetes-admin
* minikube minikube minikube default
PS C:\Users\Shinsohui> kubectl config use-context kubernetes-admin@cluster.local
쿠버네티스와 마찬가지로 다음과 같이 컨텍스트를 변경할 수 있다.
멀티 클러스터, 멀티 유저를 사용할 때는 어떤 클러스터에서 어떤 자격 증명으로 작업을 하고 있는지 주의해야 한다.
🚀 minikube 명령어
클러스터 상태 확인
PS C:\Users\Shinsohui> minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
가상 컴퓨터 접속
PS C:\Users\Shinsohui> minikube ssh
_ _
_ _ ( ) ( )
___ ___ (_) ___ (_)| |/') _ _ | |_ __
/' _ ` _ `\| |/' _ `\| || , < ( ) ( )| '_`\ /'__`\
| ( ) ( ) || || ( ) || || |\`\ | (_) || |_) )( ___/
(_) (_) (_)(_)(_) (_)(_)(_) (_)`\___/'(_,__/'`\____)
$ cat /etc/os-release
NAME=Buildroot
VERSION=2021.02.4-dirty
ID=buildroot
VERSION_ID=2021.02.4
PRETTY_NAME="Buildroot 2021.02.4"
$
어떤 리눅스인지 확인할 수 있다. minikube에서 사용하는 리눅스는 자체적으로 만든 리눅스이다.
$ apt
-bash: apt: command not found
$ yum
-bash: yum: command not found
$ apk
-bash: apk: command not found
패키지 관리자 명령어를 실행할 수 없어 별도로 패키지를 설치할 수 없다.
$ kubectl
-bash: kubectl: command not found
또한 가상 컴퓨터 내부에는 kubectl
명령어가 없다. 원한다면 설치할 수는 있다.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fd7ea2351f40 6e38f40d628d "/storage-provisioner" 6 minutes ago Up 6 minutes k8s_storage-provisioner_storage-provisioner_kube-system_3d73e56e-9556-49a0-9db3-0cf7c93d7f0f_3
가상 컴퓨터 내부에 도커는 설치되어 있다.
PS C:\Users\Shinsohui> minikube docker-env
$Env:DOCKER_TLS_VERIFY = "1"
$Env:DOCKER_HOST = "tcp://192.168.59.101:2376"
$Env:DOCKER_CERT_PATH = "C:\Users\Shinsohui\.minikube\certs"
$Env:MINIKUBE_ACTIVE_DOCKERD = "minikube"
# To point your shell to minikube's docker-daemon, run:
# & minikube -p minikube docker-env --shell powershell | Invoke-Expression
PowerShell에서 변수 = 값
쌍으로 이루어진 환경변수가 있다.
환경변수를 적용시키기 위해서 다음과 같이 명령을 실행하면 된다.
PS C:\Users\Shinsohui> minikube -p minikube docker-env --shell powershell | Invoke-Expression
PS C:\Users\Shinsohui> docker ps
도커 명령어를 원격에서 실행할 수 있게된다.
도커 명령어가 해당 환경변수를 참조해서 실행하게 된다.
변수는 해당되는 터미널에서만 유효하므로 PowerShell을 닫았다가 열면 사라진다.
minikube -p minikube docker-env --shell powershell | Invoke-Expression
명령을 내려서 변수를 등록한 후 도커 명령어를 사용해야한다.
클러스터 삭제
PS C:\Users\Shinsohui> minikube delete
🔥 virtualbox 의 "minikube" 를 삭제하는 중 ...
💀 "minikube" 클러스터 관련 정보가 모두 삭제되었습니다
PS C:\Users\Shinsohui> minikube status
🤷 Profile "minikube" not found. Run "minikube profile list" to view all profiles.
👉 To start a cluster, run: "minikube start"
virtualbox에서 VM을 삭제한다. status로 확인해보면 설정된 클러스터가 없다고 나타난다.
PS C:\Users\Shinsohui> minikube profile list
🤹 Exiting due to MK_USAGE_NO_PROFILE: No minikube profile was found.
💡 권장:
You can create one using 'minikube start'.
minikube start를 하면 minikube라는 이름의 profile이 만들어진다.
profile에는 minikube를 설치하기 위한 기본 정보들이 들어있다.
minikube start --help
CPU, Memory, 쿠버네티스 클러스터 버전 등의 옵션은 minikube를 start할 때만 적용된다.
즉, 이미 생성된 VM에는 적용되지 않으므로 반드시 삭제했다가 다시 만들어야 한다.
PS C:\Users\Shinsohui> minikube start --cpus 4 --memory 4G --disk-size 30G --kubernetes-version v1.22.9
다음 옵션으로 새로운 minikube를 생성한다.
이미지를 변경했으므로 새로운 버전의 이미지를 다운받는다.
설치 완료 후
PS C:\Users\Shinsohui> minikube ssh
$ df -h
$ lscpu
$ head /proc/meminfo
MemTotal: 4033032 kB
MemFree: 1706228 kB
MemAvailable: 2533772 kB
Buffers: 12956 kB
Cached: 1673956 kB
SwapCached: 0 kB
Active: 900304 kB
Inactive: 1242952 kB
Active(anon): 795012 kB
Inactive(anon): 355968 kB
PS C:\Users\Shinsohui> minikube node list
minikube 192.168.59.102
PS C:\Users\Shinsohui> minikube node add
😄 노드 m02 를 클러스터 minikube 에 추가합니다
❗ Cluster was created without any CNI, adding a node to it might cause broken networking.
👍 Starting worker node minikube-m02 in cluster minikube
🔥 virtualbox VM (CPUs=4, Memory=2200MB, Disk=30720MB) 를 생성하는 중 ...|
VM을 하나 더 생성해 자동으로 kubeadm join을 실행한다.
마찬가지로 필요하다면 옵션으로 리소스 양을 지정할 수 있다.
-n
옵션 : 시작 시 쿠버네티스 클러스터의 노드 개수를 지정할 수 있다. default : 1
PS C:\Users\Shinsohui> kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane,master 12m v1.22.9
minikube-m02 Ready <none> 2m55s v1.22.9
노드가 추가되었고 join까지 완료되었다.
🚀 add-on 설치하기
PS C:\Users\Shinsohui> minikube node list
minikube 192.168.59.102
minikube-m02 192.168.59.103
PS C:\Users\Shinsohui> minikube ip
192.168.59.102
minikube의 컨트롤 플레인의 ip를 볼 수 있다.
PS C:\Users\Shinsohui> minikube ssh
$ ip a s
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:b6:b9:7f brd ff:ff:ff:ff:ff:ff
inet 192.168.59.102/24 brd 192.168.59.255 scope global dynamic eth1
valid_lft 468sec preferred_lft 468sec
컨테이너 내부에서 확인한 값과 동일하다.
간단한 파드와 서비스를 만들어보자.
PS C:\Users\Shinsohui> kubectl create deployment myapp --image nginx --replicas 3
deployment.apps/myapp created
PS C:\Users\Shinsohui> kubectl expose deployment myapp --name mysvc --port 80 --target-port 80
service/mysvc exposed
PS C:\Users\Shinsohui> kubectl get po
NAME READY STATUS RESTARTS AGE
myapp-6d8d776547-8fv9v 1/1 Running 0 41s
myapp-6d8d776547-g5cm4 1/1 Running 0 41s
myapp-6d8d776547-v9ztr 1/1 Running 0 41s
PS C:\Users\Shinsohui> kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 17m
mysvc ClusterIP 10.100.214.57 <none> 80/TCP 11s
기본적으로 ClusterIP 타입의 서비스가 생성된다.
kubectl edit svc mysvc
type: NodePort
타입을 NodePort
로 변경한다.
PS C:\Users\Shinsohui> kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 6m45s
mysvc NodePort 10.103.242.238 <none> 80:31346/TCP 3m21s
이제 외부에서도 접속 가능하다.
PS C:\Users\Shinsohui> minikube service list
|-------------|------------|--------------|-----------------------------|
| NAMESPACE | NAME | TARGET PORT | URL |
|-------------|------------|--------------|-----------------------------|
| default | kubernetes | No node port |
| default | mysvc | 80 | http://192.168.59.107:31346 |
| kube-system | kube-dns | No node port |
|-------------|------------|--------------|-----------------------------|
쿠버네티스 클러스터 내의 모든 서비스의 목록이 나온다.
NodePort, LoadBalancer 타입은 URL에 접속 가능한 주소가 출력되며 해당 주소를 통해 서비스에 접속할 수 있다.
kubectl edit svc mysvc
type: LoadBalancer
이번에는 LoadBalancer 타입으로 변경해보자
PS C:\Users\Shinsohui> kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 9m55s
mysvc LoadBalancer 10.103.242.238 <pending> 80:31346/TCP 6m31s
클라우드 환경이 아니므로 클러스터 외부에 로드밸런서를 만들 수 없다.
따라서 LoadBalancer 서비스는 EXTERNAL-IP
는 <pending>
상태가 된다.
METALLB를 이용할 수 있지만 minikube에는 유용한 add-on 기능이 있다.
PS C:\Users\Shinsohui> minikube addons list
|-----------------------------|----------|--------------|--------------------------------|
| ADDON NAME | PROFILE | STATUS | MAINTAINER |
|-----------------------------|----------|--------------|--------------------------------|
| ambassador | minikube | disabled | third-party (ambassador) |
| auto-pause | minikube | disabled | google |
| csi-hostpath-driver | minikube | disabled | kubernetes |
| dashboard | minikube | disabled | kubernetes |
| default-storageclass | minikube | enabled ✅ | kubernetes
| storage-provisioner | minikube | enabled ✅ | google |
minikube에서 추가할 수 있는 다양한 addon 리스트를 확인할 수 있다.
목록에 없는 것도 yaml 파일로 직접 적용할 수 있다.
STATUS에서 enabled는 현재 설치되어있는 상태라는 뜻이다.
MAINTAINER는 해당 애드온을 관리하는 주체를 말한다.
🌟 애드온 활성화 : storage-provisioner, default-storageclass
default-storageclass
, storage-provisioner
애드온은 기본적으로 활성화되는 애드온으로 동적 프로비저너를 위해 제공된다.
PS C:\Users\Shinsohui> kubectl top nodes
error: Metrics API not available
현재 메트릭 API가 사용 불가하므로 매트릭을 수집할 수 없다.
metrics server가 설치되어 있지 않기 때문이다.
PS C:\Users\Shinsohui> kubectl get po -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-78fcd69978-csxpz 1/1 Running 0 17m
etcd-minikube 1/1 Running 0 18m
kindnet-n6xx8 1/1 Running 0 16m
kindnet-r4b67 1/1 Running 0 16m
kube-apiserver-minikube 1/1 Running 0 18m
kube-controller-manager-minikube 1/1 Running 0 18m
kube-proxy-dtv62 1/1 Running 0 17m
kube-proxy-mkpn9 1/1 Running 0 16m
kube-scheduler-minikube 1/1 Running 0 18m
storage-provisioner 1/1 Running 0 18m
목록에 metrics server는 보이지 않는다.kindnet-n6xx8
은 기본으로 적용되는 CNI이다. Calico로 설정할 수도 있다.
| metrics-server | minikube | disabled | kubernetes
metrics-server를 설치해보자
PS C:\Users\Shinsohui> minikube addons enable metrics-server
▪ Using image k8s.gcr.io/metrics-server/metrics-server:v0.4.2
🌟 'metrics-server' 애드온이 활성화되었습니다
| metrics-server | minikube | enabled ✅ | kubernetes
metrics-server가 설치되었다.
PS C:\Users\Shinsohui> kubectl get po -n kube-system
NAME READY STATUS RESTARTS AGE
metrics-server-77c99ccb96-wmbf5 1/1 Running 0 67s
kube-system 네임스페이스에 metrics-server가 설치된 것을 확인할 수 있다.
이번에는 metallb 애드온을 설치해보자
PS C:\Users\Shinsohui> minikube addons enable metallb
▪ Using image metallb/speaker:v0.9.6
▪ Using image metallb/controller:v0.9.6
🌟 'metallb' 애드온이 활성화되었습니다
PS C:\Users\Shinsohui> kubectl get ns
NAME STATUS AGE
default Active 24m
kube-node-lease Active 24m
kube-public Active 24m
kube-system Active 24m
metallb-system Active 5s
PS C:\Users\Shinsohui> kubectl get all -n metallb-system
NAME READY STATUS RESTARTS AGE
pod/controller-66bc445b99-jfzsl 1/1 Running 0 23s
pod/speaker-q4lc6 1/1 Running 0 23s
pod/speaker-w87xm 1/1 Running 0 23s
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/speaker 2 2 2 2 2 beta.kubernetes.io/os=linux 23s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/controller 1/1 1 1 23s
NAME DESIRED CURRENT READY AGE
replicaset.apps/controller-66bc445b99 1 1 1 23s
PS C:\Users\Shinsohui> kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 25m
mysvc LoadBalancer 10.103.242.238 <pending> 80:31346/TCP 21m
metallb
를 설치했지만 여전히 LoadBalancer
서비스의 EXTERNAL-IP
는 <pending>
상태이다.
| metallb | minikube | enabled ✅ | third-party (metallb) |
애드온 리스트에서 확인해보면 enabled
상태이다.
하지만 애드온을 enable
한다고 모두 정상 작동하는 것이 아니다.
PS C:\Users\Shinsohui> minikube addons disable metallb
disable
을 통해 애드온을 삭제할 수 있다.
PS C:\Users\Shinsohui> minikube addons
addons modifies minikube addons files using subcommands like "minikube addons enable dashboard"
Available Commands:
configure Configures the addon w/ADDON_NAME within minikube (example: minikube addons configure registry-creds). For
a list of available addons use: minikube addons list
disable Disables the addon w/ADDON_NAME within minikube (example: minikube addons disable dashboard). For a list
of available addons use: minikube addons list
enable Enables the addon w/ADDON_NAME within minikube. For a list of available addons use: minikube addons list
images List image names the addon w/ADDON_NAME used. For a list of available addons use: minikube addons list
list Lists all available minikube addons as well as their current statuses (enabled/disabled)
open Opens the addon w/ADDON_NAME within minikube (example: minikube addons open dashboard). For a list of
available addons use: minikube addons list
Usage:
minikube addons SUBCOMMAND [flags] [options]
Use "minikube <command> --help" for more information about a given command.
Use "minikube options" for a list of global command-line options (applies to all commands).
configure
라는 것은 애드온을 enable
하기 전에 세팅해야 하는 것들을 의미한다.
metallb를 설치할 때 metallb에 사용할 네트워크 대역을 지정했었다.
실제로 로드밸런서에 부여할 ip 대역을 지정해야 한다.
metallb 설치 시의 configure
가 이것이다.
우리가 metallb 애드온을 설치할 때 ip 대역을 지정하는 작업을 하지 않았기 때문에 정상 작동하지 않았던 것이다.
PS C:\Users\Shinsohui> minikube addons enable metrics-server
▪ Using image k8s.gcr.io/metrics-server/metrics-server:v0.4.2
🌟 'metrics-server' 애드온이 활성화되었습니다
PS C:\Users\Shinsohui> minikube addons enable ingress
▪ Using image k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.1.1
▪ Using image k8s.gcr.io/ingress-nginx/controller:v1.1.1
▪ Using image k8s.gcr.io/ingress-nginx/kube-webhook-certgen:v1.1.1
🔎 Verifying ingress addon...
🌟 'ingress' 애드온이 활성화되었습니다
PS C:\Users\Shinsohui> kubectl get ns
NAME STATUS AGE
default Active 6m39s
ingress-nginx Active 54s
kube-node-lease Active 6m40s
kube-public Active 6m40s
kube-system Active 6m40s
PS C:\Users\Shinsohui> kubectl get po -A
NAMESPACE NAME READY STATUS RESTARTS AGE
ingress-nginx ingress-nginx-admission-create--1-wdhgs 0/1 Completed 0 60s
ingress-nginx ingress-nginx-admission-patch--1-9zdzn 0/1 Completed 0 60s
ingress-nginx ingress-nginx-controller-5fc9586f46-9mtvd 1/1 Running 0 60s
kube-system coredns-78fcd69978-l2hls 1/1 Running 0 6m29s
kube-system etcd-minikube 1/1 Running 0 6m43s
kube-system kube-apiserver-minikube 1/1 Running 0 6m44s
kube-system kube-controller-manager-minikube 1/1 Running 0 6m43s
kube-system kube-proxy-djb6b 1/1 Running 0 6m29s
kube-system kube-scheduler-minikube 1/1 Running 0 6m45s
kube-system metrics-server-77c99ccb96-2st9l 1/1 Running 0 70s
kube-system storage-provisioner 1/1 Running 0 6m42s
PS C:\Users\Shinsohui> minikube addons configure metallb
-- Enter Load Balancer Start IP:
사용할 ip 대역을 지정해야한다. 이때 임의의 ip 대역을 부여해서는 안된다.
minikube가 사용하는 대역을 사용해야 한다.
PS C:\Users\Shinsohui> minikube addons configure metallb
-- Enter Load Balancer Start IP: 192.168.59.200
-- Enter Load Balancer End IP: 192.168.59.209
▪ Using image metallb/speaker:v0.9.6
▪ Using image metallb/controller:v0.9.6
✅ metallb 이 성공적으로 설정되었습니다
PS C:\Users\Shinsohui> kubectl get ns
NAME STATUS AGE
default Active 10m
ingress-nginx Active 4m54s
kube-node-lease Active 10m
kube-public Active 10m
kube-system Active 10m
metallb-system Active 6s
PS C:\Users\Shinsohui> kubectl get cm -n metallb-system
NAME DATA AGE
config 1 15s
kube-root-ca.crt 1 15s
PS C:\Users\Shinsohui> kubectl describe cm -n metallb-system config
Name: config
Namespace: metallb-system
Labels: <none>
Annotations: <none>
Data
====
config:
----
address-pools:
- name: default
protocol: layer2
addresses:
- 192.168.59.200-192.168.59.209
BinaryData
====
Events: <none>
PS C:\Users\Shinsohui>
PS C:\Users\Shinsohui> kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 13m
mysvc LoadBalancer 10.107.90.245 192.168.59.200 80:30888/TCP 36s
PS C:\Users\Shinsohui> minikube service list
|---------------|------------------------------------|--------------|-----------------------------|
| NAMESPACE | NAME | TARGET PORT | URL |
|---------------|------------------------------------|--------------|-----------------------------|
| default | kubernetes | No node port |
| default | mysvc | 80 | http://192.168.59.109:30888 |
| ingress-nginx | ingress-nginx-controller | http/80 | http://192.168.59.109:30899 |
| | | https/443 | http://192.168.59.109:31042 |
| ingress-nginx | ingress-nginx-controller-admission | No node port |
| kube-system | kube-dns | No node port |
| kube-system | metrics-server | No node port |
|---------------|------------------------------------|--------------|-----------------------------|
192.168.59.200으로 정상적으로 접속 가능하다.
PS C:\Users\Shinsohui> minikube addons enable dashboard
새롭게 VM을 만들 때 적용하고 싶은 옵션이 있다면 config에 적용할 수 있다.
PS C:\Users\Shinsohui> minikube config
config modifies minikube config files using subcommands like "minikube config set driver kvm2"
Configurable fields:
* driver
* vm-driver
* container-runtime
* feature-gates
* v
* cpus
* disk-size
* host-only-cidr
* memory
* log_dir
* kubernetes-version
* iso-url
* WantUpdateNotification
* WantBetaUpdateNotification
* ReminderWaitPeriodInHours
* WantNoneDriverWarning
* WantVirtualBoxDriverWarning
* profile
* bootstrapper
* insecure-registry
* hyperv-virtual-switch
* disable-driver-mounts
* cache
* EmbedCerts
* native-ssh
설정 가능한 config 목록을 볼 수 있다.
PS C:\Users\Shinsohui> minikube config set cpus 2
❗ These changes will take effect upon a minikube delete and then a minikube start
PS C:\Users\Shinsohui> minikube config set memory 4G
❗ These changes will take effect upon a minikube delete and then a minikube start
PS C:\Users\Shinsohui> minikube config set driver virtualbox
❗ These changes will take effect upon a minikube delete and then a minikube start
PS C:\Users\Shinsohui> minikube config set kubernetes-version v1.22.9
PS C:\Users\Shinsohui> minikube config view
- driver: virtualbox
- kubernetes-version: v1.22.9
- memory: 4G
- cpus: 2
설정한 값들을 모두 확인할 수 있다. minikube start
하면 적용된다.
PS C:\Users\Shinsohui> minikube delete
🔥 virtualbox 의 "minikube" 를 삭제하는 중 ...
💀 "minikube" 클러스터 관련 정보가 모두 삭제되었습니다
PS C:\Users\Shinsohui> kubectl config view
minikube를 삭제하면 kubeconfig 파일에서도 삭제된다.