您好,登錄后才能下訂單哦!
這篇文章主要介紹了Minikube如何搭建Kubernetes集群,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
打開 https://github.com/kubernetes/minikube/releases/tag/v1.19.0 下載最新版本的二進制軟件包(deb、rpm包),再使用 apt 或 yum 安裝。
或者直接下載 minikube 最新版本二進制文件(推薦)。
curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.19.0/minikube-linux-amd64 # 上面的是阿里云構建的版本,如果使用 google 構建的,需要翻qiang。 #linux版本 curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 #win版本 curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64
chmod +x minikube
sudo mv minikube /usr/local/bin
通過 minikube version
命令可以查看 minikube 的版本,接下來我們使用 minikube start
命令,可以直接創建一個 kubernetes 集群。minikube 會自動下載 kubeadm、kubectl、kubelet。
如果啟動不起來,可以創建一個 docker 用戶。
useradd -m docker passwd docker # 修改密碼后,加入用戶組 gpasswd -a docker docker
打開 /etc/sudoers 文件,在 root ALL=(ALL:ALL) ALL
下 增加新的一行:
docker ALL=(ALL)ALL
然后切換為 docker 用戶:su docker
。
筆者注:如果使用 root 用戶啟動 minikube 命令,會提示錯誤,需要使用非 root 用戶(一般為docker)。如果你不想切換為別的用戶,可以使用 --driver==none
。
minikube start --driver=none
* Pulling base image ... * Downloading Kubernetes v1.20.2 preload ... > preloaded-images-k8s-v10-v1...: 491.71 MiB / 491.71 MiB 100.00% 60.04 Mi > gcr.io/k8s-minikube/kicbase...: 357.67 MiB / 357.67 MiB 100.00% 7.41 MiB * Creating docker container (CPUs=2, Memory=4000MB) .../
接下來 minikube 會拉取各種鏡像,需要一些時間。minikube 完成初始化后,打開新的終端窗口,執行 minikube dashboard
啟動面板,根據 URL 地址,可以訪問面板。
PS:如果報 X Exiting due to GUEST_MISSING_CONNTRACK: Sorry, Kubernetes 1.20.2 requires conntrack to be installed in root's path
,則需要安裝 constrack ,apt install constrack
。
正常的話,執行 docker ps
后是這樣的。
如果覺得麻煩。。。可以用腳本。。。
新建一個 start.sh,文件內容如下:
echo -n "Starting Kubernetes..." minikube version minikube start --wait=false sleep 2 n=0 until [ $n -ge 10 ] do minikube addons enable dashboard && break n=$[$n+1] sleep 1 done sleep 1 n=0 until [ $n -ge 10 ] do kubectl apply -f /opt/kubernetes-dashboard.yaml &>/dev/null && break n=$[$n+1] sleep 1 done echo "Kubernetes Started"
新建一個 kubernetes-dashboard.yaml ,文件內容如下:
apiVersion: v1 kind: Namespace metadata: labels: addonmanager.kubernetes.io/mode: Reconcile kubernetes.io/minikube-addons: dashboard name: kubernetes-dashboard selfLink: /api/v1/namespaces/kubernetes-dashboard spec: finalizers: - kubernetes status: phase: Active --- apiVersion: v1 kind: Service metadata: labels: app: kubernetes-dashboard name: kubernetes-dashboard-katacoda namespace: kubernetes-dashboard spec: ports: - port: 80 protocol: TCP targetPort: 9090 nodePort: 30000 selector: k8s-app: kubernetes-dashboard type: NodePort
把 kubernetes-dashboard.yaml 放到 /opt 目錄中。
然后啟動 啟動 start.sh 即可。
Kubernetes Deployment 可以檢查 Pod 的健康狀況,并在 Pod 中的容器終止的情況下重新啟動新的容器。
deployment 可以部署應用并管理實例數量,它提供了一種故障的自我修復機制,當應用掛了后,deployment 可以自動啟動一個新的實例,維護固定數量的 pod。
kubectl create
命令創建管理 Pod 的 Deployment。
kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4 # k8s.gcr.io/echoserver:1.4 是鏡像名稱,hello-node 是 node 名稱
k8s.gcr.io/echoserver 鏡像暴露了 8080 端口。
查看 Deployment:
kubectl get deployments
查看 pod :
kubectl get pods
查看集群事件:
kubectl get events
查看 kubectl
配置:
kubectl config view
默認情況下,pod 只能在 kubernetes 集群的內部網絡訪問,如果要外部網絡訪問,則需要暴露 pod 為 kubnetes service。這里我們把上一小節的 hello-node 節點暴露出去。
kubectl expose deployment hello-node --type=LoadBalancer --port=8080
然后查看剛剛創建的 service:
kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-node LoadBalancer 10.96.194.154 <pending> 8080:31686/TCP 85s kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 22m
然后試用 minikube service 提供一個 ip 供外界訪問。
minikube service hello-node
root@instance-1:~# minikube service hello-node |-----------|------------|-------------|-------------------------| | NAMESPACE | NAME | TARGET PORT | URL | |-----------|------------|-------------|-------------------------| | default | hello-node | 8080 | http://10.170.0.2:31686 | |-----------|------------|-------------|-------------------------| * Opening service default/hello-node in default browser... http://10.170.0.2:31686
首先生成 service、deployment 。
kubectl delete service hello-node kubectl delete deployment hello-node
然后停止 Minikube 虛擬機(VM):
minikube stop
接著刪除 Minikube 虛擬機(VM):
minikube delete
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Minikube如何搭建Kubernetes集群”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。