標籤:count cluster master ant 檔案 googl rgs current extension
在之前一篇文章Centos7部署Kubernetes叢集(http://www.cnblogs.com/zhenyuyaodidiao/p/6500830.html)中已經搭建了基本的K8s叢集,本文將在此基礎之上繼續搭建K8s DashBoard。
1、yaml檔案
編輯dashboard.yaml,注意或更改以下紅色部分:
apiVersion: extensions/v1beta1kind: Deploymentmetadata:# Keep the name in sync with image version and# gce/coreos/kube-manifests/addons/dashboard counterparts name: kubernetes-dashboard-latest namespace: kube-systemspec: replicas: 1 template: metadata: labels: k8s-app: kubernetes-dashboard version: latest kubernetes.io/cluster-service: "true" spec: containers: - name: kubernetes-dashboard image: gcr.io/google_containers/kubernetes-dashboard-amd64:v1.5.1 resources: # keep request = limit to keep this container in guaranteed class limits: cpu: 100m memory: 50Mi requests: cpu: 100m memory: 50Mi ports: - containerPort: 9090 args: - --apiserver-host=http://10.0.251.148:8080 livenessProbe: httpGet: path: / port: 9090 initialDelaySeconds: 30 timeoutSeconds: 30
編輯dashboardsvc.yaml檔案:
apiVersion: v1kind: Servicemetadata: name: kubernetes-dashboard namespace: kube-system labels: k8s-app: kubernetes-dashboard kubernetes.io/cluster-service: "true"spec: selector: k8s-app: kubernetes-dashboard ports: - port: 80 targetPort: 9090
2、鏡像準備
在dashboard.yaml中定義了dashboard所用的鏡像:gcr.io/google_containers/kubernetes-dashboard-amd64:v1.5.1(當然你可以選擇其他的版本),另外,啟動k8s的pod還需要一個額外的鏡像:registry.access.redhat.com/rhel7/pod-infrastructure:latest(node中,/etc/kubernetes/kubelet的配置),由於一些眾所周知的原因,這兩個鏡像在國內是下載不下來的,以下介紹如何準備這兩個鏡像。
2.1 國外下載,國內匯入
從海外的伺服器上pull下來對應的鏡像,之後通過docker save儲存成tar包,將tar包傳回國內,在每個node上執行docker load將鏡像匯入。類似的命令如下:
海外伺服器執行:docker save gcr.io/google_containers/kubernetes-dashboard-amd64:v1.5.1 > dashboard.tardocker save registry.access.redhat.com/rhel7/pod-infrastructure:latest > podinfrastructure.tarscp *.tar [email protected]你國內的外網IP:/home/tar各個node上執行:docker load < dashboard.tardocker load < podinfrastructure.tar
2.2 搭梯子
在node所在同網段(相同交換器)內,搭建一個可以正常訪問google、Facebook等網站的fq網關,將叢集中所有機器的GATEWAY指向該地址,之後重啟網路。這樣,所有的機器就能夠正常下載這兩個鏡像了。
3、啟動
在master執行如下命令:
kubectl create -f dashboard.yamlkubectl create -f dashboardsvc.yaml
之後,dashboard搭建完成。
4、驗證
命令驗證,master上執行如下命令:
[[email protected] ~]# kubectl get deployment --all-namespacesNAMESPACE NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGEkube-system kubernetes-dashboard-latest 1 1 1 1 1h[[email protected]-master ~]# kubectl get svc --all-namespacesNAMESPACE NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGEdefault kubernetes 10.254.0.1 <none> 443/TCP 9dkube-system kubernetes-dashboard 10.254.44.119 <none> 80/TCP 1h[[email protected]-master ~]# kubectl get pod -o wide --all-namespacesNAMESPACE NAME READY STATUS RESTARTS AGE IP NODEkube-system kubernetes-dashboard-latest-3866786896-vsf3h 1/1 Running 0 1h 10.0.82.2 k8s-node-1
介面驗證,瀏覽器訪問:http://10.0.251.148:8080/ui
5、銷毀應用
在master上執行:
kubectl delete deployment kubernetes-dashboard-latest --namespace=kube-systemkubectl delete svc kubernetes-dashboard --namespace=kube-system
基於kubernetes叢集部署DashBoard