源地址:https://minikube.sigs.k8s.io/docs/start/
一裳涛。啟動minikube
minikube start //默認啟動,可以加后面幾種參數(shù)端三,自己看環(huán)境選擇
2.驅(qū)動參數(shù)---指定驅(qū)動名稱
說明: 若要為
minikube start
設(shè)置--vm-driver
郊闯,在下面提到<驅(qū)動名稱>
的地方, 用小寫字母輸入你安裝的 hypervisor 的名稱育拨。 指定 VM 驅(qū)動程序 列舉了--vm-driver
值的完整列表熬丧。
minikube start --vm-driver=<驅(qū)動名稱>
sudo su - shitingbao
minikube start --vm-driver=<驅(qū)動名稱> --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
# 舉個例子
minikube start --vm-driver=none --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
//使用docker驅(qū)動要加這個參數(shù)
minikube start --driver=docker
注意
:這里要注意的是析蝴,使用none參數(shù)需要你的root權(quán)限闷畸,如果你的vm-driver使用的docker腾啥,那就不能在root下運行冯吓,他會報要給錯誤组贺,這里不同的參數(shù)使用權(quán)限還不同失尖,這里使用none作為例子掀潮。
運行成功后會出現(xiàn)類似下面這個
如果不使用鏡像仪吧,就可能會出現(xiàn)下面這個無法拉取鏡像的問題
一旦 minikube start
完成薯鼠,你可以運行下面的命令來檢查集群的狀態(tài):
minikube status
如果你的集群正在運行,minikube status
的輸出結(jié)果應(yīng)該類似于這樣:
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
這里他會在docker中運行一些基本的容器羞芍,你可以在docker ps中看到一些正在運行的容器郊艘,大致是這樣
成功
做到這一步纱注,說明你的kubernetes已經(jīng)運行成功了奈附。接下來可以做一些其他操作。
1.下載對應(yīng)的 kubectl 工具(已經(jīng)是最新的 kubectl 可省略)
minikube kubectl -- get po -A
1.1 使用 kubectl create 命令創(chuàng)建管理 Pod 的 Deployment将鸵。該 Pod 根據(jù)提供的 Docker 鏡像運行 Container(下面用nginx鏡像做例子顶掉,不使用官方例子痒筒,因為親和一些),需要提前 docker pull nginx
kubectl create deployment hello-nginx --image=nginx:latest
這句話代表運行一個名稱為 hello-nginx 的 pod 內(nèi)為 nginx 鏡像的 Deployment
1.2 查看 Deployment:
kubectl get deployments
輸出結(jié)果類似于這樣:
NAME READY UP-TO-DATE AVAILABLE AGE
hello-node 1/1 1 1 1m
1.3 查看 Pod:
kubectl get pods
輸出結(jié)果類似于這樣:
NAME READY STATUS RESTARTS AGE
hello-node-5f76cf6ccf-br9b5 1/1 Running 0 1m
1.5查看集群事件:
kubectl get events
1.6 查看 kubectl 配置:
kubectl config view
注意:默認情況下,Pod 只能通過 Kubernetes 集群中的內(nèi)部 IP 地址訪問解藻。 要使得
hello-node容器可以從 Kubernetes 虛擬網(wǎng)絡(luò)的外部訪問螟左,你必須將 Pod 暴露為 Kubernetes Service
。
2. 使用 kubectl expose
命令將 Pod 暴露給公網(wǎng)
官方教程:https://kubernetes.io/zh/docs/tutorials/kubernetes-basics/expose/expose-interactive/
命令詳情地址:http://docs.kubernetes.org.cn/475.html
這個不同的 type 都可以 巷嚣,詳細區(qū)別去官方解釋看
kubectl expose deployment hello-nginx --type=NodePort --port=80 --target-port=80
注意:創(chuàng)建新服務(wù)并將其公開給外部通信廷粒,我們將使用帶有 NodePort 的expose命令作為參數(shù)(minikube還不支持LoadBalancer選項)评雌。
查看你創(chuàng)建的 Service:
kubectl get services
輸出結(jié)果類似于這樣:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-node LoadBalancer 10.108.144.78 <pending> 80:30369/TCP 21s
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 23m
注意:
1.NodePort : 會隨機在服務(wù)器上選一個端口作為對應(yīng),這里默認的 nginx 的 80 端口指的是容器內(nèi)的砂轻,30369 是實際的服務(wù)器端口(外部訪問的端口)
對于支持負載均衡器的云服務(wù)平臺而言搔涝,平臺將提供一個外部 IP 來訪問該服務(wù)和措。 在 Minikube 上,LoadBalancer 使得服務(wù)可以通過命令 minikube service 訪問诬留。
查看 nginx 訪問地址
運行下面的命令:
minikube service hello-nginx(使用這個要注意外部的調(diào)用)
這里的這個地址就是你本地的地址,可以直接訪問試試
對應(yīng)宿主機的端口轉(zhuǎn)發(fā)
或者绿贞,使用kubectl轉(zhuǎn)發(fā)端口,將目標80 端口籍铁,就是上面那個容器實際的 nginx 端口關(guān)聯(lián)到 宿主機的 8080 上,外部直接訪問 8080 即可訪問該容器的nginx(curl
127.0.0.1:8080)拒名。注意: --address 0.0.0.0 是說都可以訪問靡狞,不加這個只能本地 127.0.0.1 訪問
kubectl port-forward --address 0.0.0.0 service/hello-nginx 8080:80
停止運行
在確認 Minikube 與 hypervisor 均正常工作后隔嫡,你可以繼續(xù)使用 Minikube 或停止集群腮恩。要停止集群秸滴,請運行:
minikube stop
清理本地狀態(tài)
如果你之前安裝過 Minikube募判,即使已經(jīng)停止了咒唆,再次運行 minikube start
會返回一個錯誤:
machine does not exist
那么全释,你需要清理 minikube 的本地狀態(tài)(因為已經(jīng)運行過會有上一次的信息浸船,下一次啟動需要先清理上一次的信息):
minikube delete
or
minikube delete --all
這時候再去運行start
命令就可以正常啟動李命,也就是說箫老,執(zhí)行stop后需要執(zhí)行delete刪除,下次才能start阔籽。