基於kubernetes集群部署DashBoard


目錄貼:Kubernetes學習系列

  

在之前一篇文章:Centos7部署Kubernetes集群,中已經搭建了基本的K8s集群,本文將在此基礎之上繼續搭建K8s DashBoard。

1、yaml文件

  編輯dashboard.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:
  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: v1
kind: Service
metadata:
  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.tar
docker save registry.access.redhat.com/rhel7/pod-infrastructure:latest > podinfrastructure.tar
scp *.tar root@你國內的外網IP:/home/tar
各個node上執行:
docker load < dashboard.tar
docker load < podinfrastructure.tar

2.2 搭梯子

  在node所在同網段(相同交換機)內,搭建一個可以正常訪問google、Facebook等網站的fq網關,將集群中所有機器的GATEWAY指向該地址,之后重啟網絡。這樣,所有的機器就能夠正常下載這兩個鏡像了。

 

3、啟動

  在master執行如下命令:

kubectl create -f dashboard.yaml
kubectl create -f dashboardsvc.yaml

  之后,dashboard搭建完成。

 

4、驗證

  命令驗證,master上執行如下命令:

[root@k8s-master ~]# kubectl get deployment --all-namespaces
NAMESPACE NAME DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
kube-system kubernetes-dashboard-latest 1  1         1            1           1h
[root@k8s-master ~]# kubectl get svc  --all-namespaces
NAMESPACE   NAME          CLUSTER-IP    EXTERNAL-IP   PORT(S)   AGE
default       kubernetes             10.254.0.1      <none>        443/TCP   9d
kube-system   kubernetes-dashboard   10.254.44.119   <none>        80/TCP    1h
[root@k8s-master ~]# kubectl get pod  -o wide  --all-namespaces
NAMESPACE  NAME  READY     STATUS    RESTARTS     AGE   IP  NODE
kube-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-system
kubectl delete svc  kubernetes-dashboard --namespace=kube-system

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM