(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
