Minikube에서 하고 싶을 때의 tips
9532 단어 추kubernetes
소개
「Minikube로 〇〇하고 싶다」를 모은 Tips입니다.
minikube v1.17.1에서 확인했습니다.
Minikube에서 〇〇하고 싶다.
노드의 CPU / 메모리를 설정하고 싶습니다.
minikube start --cpus 2 --memory 2G
VM이 아니라 docker로 Node를 시작하고 싶습니다.
minikube start --driver docker
사실 driver는 여러가지 선택할 수 있습니다.virtualbox
, vmwarefusion
, kvm2
, vmware
, none
, docker
, podman
로컬 컨테이너 이미지를 사용하고 싶습니다.
「일일이 Container Registry에 push해서 소통하는 것 귀찮아!」라고 하는 때에 추천입니다.
eval $(minikube docker-env)
위의 명령을 실행 한 후 ssh
그러면 minikube의 노드에 이미지가 더 잘 표시됩니다.
그러나 docker build
이외의 태그를 사용하십시오. latest
를 지정하면 외부를 탐색하고 ErrImagePull이됩니다.
여러 노드의 클러스터를 만들고 싶습니다.
사실 Multi-Node 클러스터도 만들 수 있습니다.
이제 Taint, NodeSelector, Pod (Anti) Affinity를 확인할 수 있습니다.
minikube start --nodes 3
구축 결과
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane,master 76s v1.20.2
minikube-m02 Ready <none> 42s v1.20.2
minikube-m03 Ready <none> 19s v1.20.2
Kubernetes 버전을 지정하고 싶습니다.
minikube start --kubernetes-version v1.20.2
type: Loadbalancer인 Service를 사용하고 싶다
Minikube 클러스터에서 latest
서비스 리소스를 만들면 일반적으로 EXTERNAL-IP는 type: LoadBalancer
가 되지만 하위 명령Pending
으로 해결할 수 있습니다.
터널 서비스와 이에 연결하는 Deployment 만들기
$ kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4
deployment.apps/hello-node created
$ kubectl expose deployment hello-node --type=LoadBalancer --port=8080
service/hello-node exposed
$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-node LoadBalancer 10.105.111.30 <pending> 8080:30427/TCP 5s
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 5m20s
다른 터미널에서`minikube tunnel 실행
$ minikube tunnel
Status:
machine: minikube
pid: 23411
route: 10.96.0.0/12 -> 192.168.49.2
minikube: Running
services: [hello-node]
errors:
minikube: no errors
router: no errors
loadbalancer emulator: no errors
서비스의 EXTERNAL-IP 확인
gashirar:~$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-node LoadBalancer 10.105.111.30 10.105.111.30 8080:30427/TCP 3m31s
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 8m46s
소통
$ curl 10.105.111.30:8080
CLIENT VALUES:
client_address=192.168.49.2
command=GET
real path=/
query=nil
request_version=1.1
request_uri=http://10.105.111.30:8080/
SERVER VALUES:
server_version=nginx: 1.10.0 - lua: 10001
HEADERS RECEIVED:
accept=*/*
host=10.105.111.30:8080
user-agent=curl/7.68.0
BODY:
-no body in request-
Node 안에 들어가고 싶다
minikube ssh
kubelet 프로세스를 확인할 수도 있습니다.
$ minikube ssh
docker@minikube:~$ sudo systemctl status kubelet
● kubelet.service - kubelet: The Kubernetes Node Agent
Loaded: loaded (/lib/systemd/system/kubelet.service; disabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/kubelet.service.d
└─10-kubeadm.conf
Active: active (running) since Tue 2021-02-09 12:02:22 UTC; 20min ago
Docs: http://kubernetes.io/docs/
Main PID: 2395 (kubelet)
Tasks: 21 (limit: 23919)
Memory: 51.6M
CGroup: /docker/3914f62704ff9cbd7ea263df7287ac734d30983a5bcf9f1b5127825434093f64/system.slice/kubelet.service
└─2395 /var/lib/minikube/binaries/v1.20.2/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --config=/var/lib/kubelet/config.yaml --container-runtime=docker --hostna
me-override=minikube --kubeconfig=/etc/kubernetes/kubelet.conf --network-plugin=cni --node-ip=192.168.49.2
프록시 환경에서 실행하고 싶습니다.
TBD(구축이 가능했으므로 나중에 순서를 정리합니다)
metrics-server를 도입하고 싶습니다.
minikube addons enable metrics-server
Istio를 도입하고 싶습니다.
minikube addons enable istio-provisioner
minikube addons enable istio
EFK Stack을 도입하고 싶습니다.
minikube addons enable efk
Kibana의 Dashboard가보고 싶을 때는 type: LoadBalancer
명령을 실행하는 것이 좋습니다.
$ minikube service -n kube-system kibana-logging
|-------------|----------------|-------------|---------------------------|
| NAMESPACE | NAME | TARGET PORT | URL |
|-------------|----------------|-------------|---------------------------|
| kube-system | kibana-logging | 5601 | http://192.168.49.2:30003 |
|-------------|----------------|-------------|---------------------------|
🎉 Opening service kube-system/kibana-logging in default browser...
kibana도 확실히 볼 수 있습니다.
(보충) minikube addons list
metrics-server나 efk, istio 이외에도 여러가지 addon이 제공되고 있습니다.
$ minikube addons list
|-----------------------------|----------|--------------|
| ADDON NAME | PROFILE | STATUS |
|-----------------------------|----------|--------------|
| ambassador | minikube | disabled |
| csi-hostpath-driver | minikube | disabled |
| dashboard | minikube | disabled |
| default-storageclass | minikube | enabled ✅ |
| efk | minikube | disabled |
| freshpod | minikube | disabled |
| gcp-auth | minikube | disabled |
| gvisor | minikube | disabled |
| helm-tiller | minikube | disabled |
| ingress | minikube | disabled |
| ingress-dns | minikube | disabled |
| istio | minikube | disabled |
| istio-provisioner | minikube | disabled |
| kubevirt | minikube | disabled |
| logviewer | minikube | disabled |
| metallb | minikube | disabled |
| metrics-server | minikube | disabled |
| nvidia-driver-installer | minikube | disabled |
| nvidia-gpu-device-plugin | minikube | disabled |
| olm | minikube | disabled |
| pod-security-policy | minikube | disabled |
| registry | minikube | disabled |
| registry-aliases | minikube | disabled |
| registry-creds | minikube | disabled |
| storage-provisioner | minikube | enabled ✅ |
| storage-provisioner-gluster | minikube | disabled |
| volumesnapshots | minikube | disabled |
|-----------------------------|----------|--------------|
결론
Docker Driver의 대응에 더해 Multi-Node Cluster도 가능하게 된 Minikube.
꼭 여러가지 놀아보세요.
Reference
이 문제에 관하여(Minikube에서 하고 싶을 때의 tips), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gashirar/items/ffbde9a8f924ffba09df
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
노드의 CPU / 메모리를 설정하고 싶습니다.
minikube start --cpus 2 --memory 2G
VM이 아니라 docker로 Node를 시작하고 싶습니다.
minikube start --driver docker
사실 driver는 여러가지 선택할 수 있습니다.
virtualbox
, vmwarefusion
, kvm2
, vmware
, none
, docker
, podman
로컬 컨테이너 이미지를 사용하고 싶습니다.
「일일이 Container Registry에 push해서 소통하는 것 귀찮아!」라고 하는 때에 추천입니다.
eval $(minikube docker-env)
위의 명령을 실행 한 후
ssh
그러면 minikube의 노드에 이미지가 더 잘 표시됩니다.그러나
docker build
이외의 태그를 사용하십시오. latest
를 지정하면 외부를 탐색하고 ErrImagePull이됩니다.여러 노드의 클러스터를 만들고 싶습니다.
사실 Multi-Node 클러스터도 만들 수 있습니다.
이제 Taint, NodeSelector, Pod (Anti) Affinity를 확인할 수 있습니다.
minikube start --nodes 3
구축 결과
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane,master 76s v1.20.2
minikube-m02 Ready <none> 42s v1.20.2
minikube-m03 Ready <none> 19s v1.20.2
Kubernetes 버전을 지정하고 싶습니다.
minikube start --kubernetes-version v1.20.2
type: Loadbalancer인 Service를 사용하고 싶다
Minikube 클러스터에서
latest
서비스 리소스를 만들면 일반적으로 EXTERNAL-IP는 type: LoadBalancer
가 되지만 하위 명령Pending
으로 해결할 수 있습니다.터널 서비스와 이에 연결하는 Deployment 만들기
$ kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4
deployment.apps/hello-node created
$ kubectl expose deployment hello-node --type=LoadBalancer --port=8080
service/hello-node exposed
$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-node LoadBalancer 10.105.111.30 <pending> 8080:30427/TCP 5s
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 5m20s
다른 터미널에서`minikube tunnel 실행
$ minikube tunnel
Status:
machine: minikube
pid: 23411
route: 10.96.0.0/12 -> 192.168.49.2
minikube: Running
services: [hello-node]
errors:
minikube: no errors
router: no errors
loadbalancer emulator: no errors
서비스의 EXTERNAL-IP 확인
gashirar:~$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-node LoadBalancer 10.105.111.30 10.105.111.30 8080:30427/TCP 3m31s
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 8m46s
소통
$ curl 10.105.111.30:8080
CLIENT VALUES:
client_address=192.168.49.2
command=GET
real path=/
query=nil
request_version=1.1
request_uri=http://10.105.111.30:8080/
SERVER VALUES:
server_version=nginx: 1.10.0 - lua: 10001
HEADERS RECEIVED:
accept=*/*
host=10.105.111.30:8080
user-agent=curl/7.68.0
BODY:
-no body in request-
Node 안에 들어가고 싶다
minikube ssh
kubelet 프로세스를 확인할 수도 있습니다.
$ minikube ssh
docker@minikube:~$ sudo systemctl status kubelet
● kubelet.service - kubelet: The Kubernetes Node Agent
Loaded: loaded (/lib/systemd/system/kubelet.service; disabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/kubelet.service.d
└─10-kubeadm.conf
Active: active (running) since Tue 2021-02-09 12:02:22 UTC; 20min ago
Docs: http://kubernetes.io/docs/
Main PID: 2395 (kubelet)
Tasks: 21 (limit: 23919)
Memory: 51.6M
CGroup: /docker/3914f62704ff9cbd7ea263df7287ac734d30983a5bcf9f1b5127825434093f64/system.slice/kubelet.service
└─2395 /var/lib/minikube/binaries/v1.20.2/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --config=/var/lib/kubelet/config.yaml --container-runtime=docker --hostna
me-override=minikube --kubeconfig=/etc/kubernetes/kubelet.conf --network-plugin=cni --node-ip=192.168.49.2
프록시 환경에서 실행하고 싶습니다.
TBD(구축이 가능했으므로 나중에 순서를 정리합니다)
metrics-server를 도입하고 싶습니다.
minikube addons enable metrics-server
Istio를 도입하고 싶습니다.
minikube addons enable istio-provisioner
minikube addons enable istio
EFK Stack을 도입하고 싶습니다.
minikube addons enable efk
Kibana의 Dashboard가보고 싶을 때는
type: LoadBalancer
명령을 실행하는 것이 좋습니다.$ minikube service -n kube-system kibana-logging
|-------------|----------------|-------------|---------------------------|
| NAMESPACE | NAME | TARGET PORT | URL |
|-------------|----------------|-------------|---------------------------|
| kube-system | kibana-logging | 5601 | http://192.168.49.2:30003 |
|-------------|----------------|-------------|---------------------------|
🎉 Opening service kube-system/kibana-logging in default browser...
kibana도 확실히 볼 수 있습니다.
(보충) minikube addons list
metrics-server나 efk, istio 이외에도 여러가지 addon이 제공되고 있습니다.
$ minikube addons list
|-----------------------------|----------|--------------|
| ADDON NAME | PROFILE | STATUS |
|-----------------------------|----------|--------------|
| ambassador | minikube | disabled |
| csi-hostpath-driver | minikube | disabled |
| dashboard | minikube | disabled |
| default-storageclass | minikube | enabled ✅ |
| efk | minikube | disabled |
| freshpod | minikube | disabled |
| gcp-auth | minikube | disabled |
| gvisor | minikube | disabled |
| helm-tiller | minikube | disabled |
| ingress | minikube | disabled |
| ingress-dns | minikube | disabled |
| istio | minikube | disabled |
| istio-provisioner | minikube | disabled |
| kubevirt | minikube | disabled |
| logviewer | minikube | disabled |
| metallb | minikube | disabled |
| metrics-server | minikube | disabled |
| nvidia-driver-installer | minikube | disabled |
| nvidia-gpu-device-plugin | minikube | disabled |
| olm | minikube | disabled |
| pod-security-policy | minikube | disabled |
| registry | minikube | disabled |
| registry-aliases | minikube | disabled |
| registry-creds | minikube | disabled |
| storage-provisioner | minikube | enabled ✅ |
| storage-provisioner-gluster | minikube | disabled |
| volumesnapshots | minikube | disabled |
|-----------------------------|----------|--------------|
결론
Docker Driver의 대응에 더해 Multi-Node Cluster도 가능하게 된 Minikube.
꼭 여러가지 놀아보세요.
Reference
이 문제에 관하여(Minikube에서 하고 싶을 때의 tips), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gashirar/items/ffbde9a8f924ffba09df
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Minikube에서 하고 싶을 때의 tips), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/gashirar/items/ffbde9a8f924ffba09df텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)