(1).部署Kubernetes Dashboard web頁面
Kubernetes Dashboard(儀表盤)是Kubernetes項目中基於Web監控和操作界面的項目。
1)確認節點正常
[root@kube-master ~]# kubectl get node NAME STATUS AGE kube-node1 Ready 35d kube-node2 Ready 35d
2)創建名為dashborad-deployment.yaml的deployment資源配置文件
[root@kube-master ~]# vim dashboard-deployment.yaml apiVersion: extensions/v1beta1 #指定api版本 kind: Deployment #指定資源類型 metadata: #指定資源元數據(屬性) name: kubernetes-dashboard-latest #指定deployment名稱 namespace: kube-system #指定命名空間 spec: #資源內容詳細定義 replicas: 1 #副本期望值 template: #模板 metadata: #模板元數據 labels: #自定義標簽 k8s-app: kubernetes-dashboard version: latest kubernetes.io/cluster-service: "true" spec: #模板內容詳細定義 containers: #容器內容詳細定義 - name: kubernetes-dashboard #容器名稱(docker容器實例名稱的一部分) image: docker.io/bestwu/kubernetes-dashboard-amd64:v1.6.3 #使用鏡像,這個鏡像是中文的 imagePullPolicy: IfNotPresent #拉取策略 resources: #容器運行資源限制 limits: #上限 cpu: 100m #0.1核 memory: 50Mi #50M(1024計算) requests: #下限 cpu: 100m memory: 50Mi ports: #容器對外開放端口 - containerPort: 9090 #容器端口號 args: #容器啟動時的參數命令 - --apiserver-host=http://192.168.128.110:8080 livenessProbe: #監控檢測設置 httpGet: #http獲取檢測 path: / #uri地址 port: 9090 #容器端口號 initialDelaySeconds: 30 #啟動后首次檢測時間為30秒后 timeoutSeconds: 30 #檢測超時時間30秒
3)創建名為dashboard-service.yaml的service服務配置文件
[root@kube-master ~]# vim dashboard-service.yaml apiVersion: v1 #指定api版本 kind: Service #指定資源類型 metadata: #資源元數據(屬性) name: kubernetes-dashboard # namespace: kube-system #命名空間,需要保證與deployment處於同一命名空間 labels: #標簽 k8s-app: kubernetes-dashboard kubernetes.io/cluster-service: "true" spec: #服務內容詳細定義 selector: #標簽選擇器,選擇dashboard-deployment獨有標簽 k8s-app: kubernetes-dashboard ports: #服務對外開放端口 - port: 80 #提供給內部Pod訪問使用的端口 nodePort: 30303 #提供給外部訪問的端口 targetPort: 9090 #Pod內部的服務的端口號
4)准備相關鏡像
所有節點都下載相關鏡像,當然不下載也是沒事的,因為可以自動下載。registry.access.redhat.com/rhel7/pod-infrastructure:latest和docker.io/bestwu/kubernetes-dashboard-amd64:v1.6.3,由於k8s已經在使用中,所以pod-infrastructure存在故不做下載。
[root@kube-node1 ~]# docker pull docker.io/bestwu/kubernetes-dashboard-amd64:v1.6.3 Trying to pull repository docker.io/bestwu/kubernetes-dashboard-amd64 ... v1.6.3: Pulling from docker.io/bestwu/kubernetes-dashboard-amd64 ff9e00b73eb4: Pull complete Digest: sha256:d820c9a0a0a7cd7d0c9d3630a2db0fc33d190db31f3e0797d4df9dc4a6a41c6b Status: Downloaded newer image for docker.io/bestwu/kubernetes-dashboard-amd64:v1.6.3
5)啟動dashboard的deployment和service
[root@kube-master ~]# kubectl create -f dashboard-deployment.yaml deployment "kubernetes-dashboard-latest" created [root@kube-master ~]# kubectl create -f dashboard-service.yaml service "kubernetes-dashboard" created
啟動完成后通過命令查看
[root@kube-master ~]# kubectl get deployment --namespace=kube-system NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE kubernetes-dashboard-latest 1 1 1 1 3d [root@kube-master ~]# kubectl get service --namespace=kube-system NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes-dashboard 10.254.146.81 <none> 80/TCP 3d [root@kube-master ~]# kubectl get pod --namespace=kube-system -o wide NAME READY STATUS RESTARTS AGE IP NODE kubernetes-dashboard-latest-4124080496-dprcl 1/1 Running 1 3d 10.255.39.2 kube-node1
6)通過http://[masterIP]:8080/ui訪問
我這里就是http://192.168.128.110:8080/ui,之后會自動跳轉到如下頁面
7)銷毀
如果只是短時間內不用可以只刪除service,如果長時間不用刪除deployment和service
[root@kube-master ~]# kubectl delete -f dashboard-service.yaml service "kubernetes-dashboard" deleted [root@kube-master ~]# kubectl delete -f dashboard-deployment.yaml deployment "kubernetes-dashboard-latest" deleted