天天看點

Minikube使用文檔

最近在參與社群flink-operator的開發,開發的過程中經常使用到minikube來本地驗證這篇文章記錄下相關使用

安裝

https://minikube.sigs.k8s.io/docs/start/ 需要先安裝docker環境

登入節點

minikube ssh
           

調整資源

啟動pod逾時

_ Warning FailedScheduling 23s (x2 over 91s) default-scheduler 0/1 nodes are available: 1 Insufficient memory._

直接指令行設定資源

minikube start --cpus 4 --memory 8G
           
minikube config set cpus N
minikube config set memory N
           

要先删除,否則重新開機後node還是不變,調整資源後可能需要相應的docker容器也進行調整

https://github.com/eclipse/che/issues/14067

minikube delete 
minikube stop
minikube start --cpus 4 --memory 8G
kubectl describe node minikube
           

拷貝檔案

https://minikube.sigs.k8s.io/docs/commands/cp/

本機和minikube node以及node之間都可以拷貝檔案

minikube cp ~/TopSpeedWindowing.jar minikube:/tmp/flink/userlib/TopSpeedWindowing.jar
           

加載鏡像

load之前要先把使用鏡像的pod停止,否則鏡像還在被使用

minikube image load aitozi/flink-java-operator:latest
           

可以minikube ssh之後檢視鏡像id和本地是否一緻,這樣可以加快debug流程.

使用問題

删除crd失敗

第一步首先要删除所有相關的cr,删除cr也卡住

Minikube使用文檔

通過将finalizer置空删除

kubectl get flinkdep basic-checkpoint-ha-example -o=json | \
jq '.metadata.finalizers = null' | kubectl apply -f -
           

這樣apply之後就能删除了, cr和crd也可以正常删除了

load 鏡像不生效

在使用過程中遇到如果minikube 節點的node本地磁盤打滿了,此時load鏡像不會報錯,但是load鏡像是不生效的,應該算是個bug吧,需要load完鏡像檢查一下

Mac無法通路minikube ip

預設使用的是docker driver,但是Mac docker desktop不會建立docker0網橋,是以無法ping通minikube node ip。可以使用vm的方式啟動minikube

https://github.com/kubernetes/minikube/issues/11193

https://stackoverflow.com/questions/63600378/cant-access-minikube-service-using-nodeport-from-host-on-mac

https://docs.docker.com/desktop/mac/networking/#known-limitations-use-cases-and-workarounds

測試不同域名的k8s叢集通路情況

apiVersion: v1
kind: Pod
metadata:
  name: busybox-sleep
spec:
  containers:
  - name: busybox
    image: busybox
    args:
    - sleep
    - "1000000"
  - name: hello-minikubi
    image: k8s.gcr.io/echoserver:1.4
           
minikube ssh
docker ps 
docker exec -it 92de341e7767  /bin/sh
           

測試LoadBalancer和NodePort

kubectl expose deployment hello-minikube --type=LoadBalancer --port=8080
kubectl expose deployment hello-minikube --type=ClusterIP --cluster-ip='None' --port=8080
           

本文來自部落格園,作者:Aitozi,轉載請注明原文連結:https://www.cnblogs.com/Aitozi/p/16064063.html

下一篇: 戰争與回憶