環境仍是前面的環境html
kubernetes dashboard (儀表盤)是一個將通用的基於web的監控和操做界面加入kubernetes的項目node
[root@master k8s]# vim dashboard-deployment.yaml apiVersion: extensions/v1beta1 kind: Deployment metadata: # Keep the name in sync with image version and # gce/coreos/kube-manifests/addons/dashboard counterparts name: kubernetes-dashboard-latest namespace: kube-system spec: #---定義pod屬性 replicas: 1 template: metadata: labels: k8s-app: kubernetes-dashboard version: latest kubernetes.io/cluster-service: "true" spec: containers: - name: kubernetes-dashboard image: docker.io/bestwu/kubernetes-dashboard-amd64:v1.6.3 #---鏡像源,下面章節3上傳的鏡像 imagePullPolicy: IfNotPresent resources: # keep request = limit to keep this container in guaranteed class limits: #---關於pod使用的cpu和內存硬件資源作限制 cpu: 100m memory: 50Mi requests: cpu: 100m memory: 50Mi ports: - containerPort: 9090 args: - --apiserver-host=http://192.168.216.51:8080 #這裏填寫本身的apiserver服務器地址及端口 # - --apiserver-host=http://192.168.216.51:8080 livenessProbe: httpGet: path: / port: 9090 initialDelaySeconds: 30 timeoutSeconds: 30
[root@master k8s]# vim dashboard-service.yaml apiVersion: v1 kind: Service metadata: name: kubernetes-dashboard #---這個要和上面deployment中定義的同樣 namespace: kube-system #---一樣和上面deployment定義同樣 labels: k8s-app: kubernetes-dashboard kubernetes.io/cluster-service: "true" spec: selector: k8s-app: kubernetes-dashboard ports: - port: 80 targetPort: 9090
說明:service的三種端口nginx
port:service暴露在集羣ip上的端口,提供給集羣內部客戶訪問service入口web
nodePort:是k8s提供給集羣外部客戶訪問service入口的一種方式docker
targetPort:targetPort是pod中容器實例上的端口,從port和nodePort上到來的數據最終通過kube-proxy流入到後端pod的targetport上進入容器vim
自行下載這些鏡像而後導入,或者在線下載鏡像後端
[root@node2 k8s]# ll total 1497532 -rw-r--r-- 1 root root 139341824 Jan 16 2019 docker.io-bestwu-kubernetes-dashboard-amd64-zh.tar -rw-r--r-- 1 root root 86496256 Jan 16 2019 kubernetes-dashboard-amd64.tar #另一個版本,能夠先不上傳 -rw-r--r-- 1 root root 218623488 Jan 16 2019 pod-infrastructure.tar [root@node2 k8s]# pwd /root/k8s
下載後導入,以前已經下載過pod-infrastructureapi
docker load -i docker.io-bestwu-kubernetes-dashboard-amd64-zh.tar
docker load -i kubernetes-dashboard-amd64.tar
[root@master k8s]# cd /etc/kubernetes/yaml/ [root@master kubernetes]# kubectl create -f /etc/kubernetes/yaml/dashboard-deployment.yaml deployment "kubernetes-dashboard-latest" created [root@master kubernetes]# kubectl create -f /etc/kubernetes/yaml/dashboard-service.yaml service "kubernetes-dashboard" created
由於定義了namespace因此須要加上--all-namespaces才能夠顯示,而默認是namespaces=default的deployment服務器
[root@master ~]# kubectl get deployment --all-namespaces NAMESPACE NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE kube-system kubernetes-dashboard-latest 1 1 1 1 23m [root@master ~]# kubectl get svc --all-namespaces NAMESPACE NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE default kubernetes 10.254.0.1 <none> 443/TCP 13d default nginx 10.254.8.125 <nodes> 80:31011/TCP 8d kube-system kubernetes-dashboard 10.254.32.13 <none> 80/TCP 23m [root@master ~]#
kubectl delete deployment kubernetes-dashboard-latest--namespace=kube-system kubectl delete svc kubernetes-dashboard--namespace=kube-system
http://192.168.216.51:8080/uiapp
[root@master ~]# kubectl run nginx --image=docker.io/nginx --replicas=1 --port=9000 deployment "nginx" created [root@master ~]# kubectl get pod NAME READY STATUS RESTARTS AGE nginx-2187705812-n5wsr 1/1 Running 0 37s nginx-2187705812-zngv0 1/1 Running 0 25s
kubernetes系列文章:
Kubernetes3-kubectl管理Kubernetes容器平臺-1
Kubernetes3-kubectl管理Kubernetes容器平臺-2
參考:互聯網內容