天天看點

CentOS部署Kubernetes-dashboard叢集 k8s 1.14.1

安裝環境及版本

dashboard元件:kubernetes-dashboard-v1.10.1

需準備的鏡像:

k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1           

k8s.gcr.io/heapster-amd64:v1.5.4                        

k8s.gcr.io/heapster-influxdb-amd64:v1.5.2               

k8s.gcr.io/heapster-grafana-amd64:v5.0.4

為友善無科學上網方式的同學,也可執行以下腳本直接從阿裡鏡像倉庫拉取(感謝阿裡為國内開發者作出的貢獻)

#!/bin/bash

DASHDOARD_VERSION=v1.10.1

HEAPSTER_VERSION=v1.5.4

GRAFANA_VERSION=v5.0.4

INFLUXDB_VERSION=v1.5.2

username=registry.cn-hangzhou.aliyuncs.com/google_containers

images=(

        kubernetes-dashboard-amd64:${DASHDOARD_VERSION}

        heapster-grafana-amd64:${GRAFANA_VERSION}

        heapster-amd64:${HEAPSTER_VERSION}

        heapster-influxdb-amd64:${INFLUXDB_VERSION}

        )

for image in ${images[@]}

do

docker pull ${username}/${image}

docker tag ${username}/${image} k8s.gcr.io/${image}

docker rmi ${username}/${image}

done

主節點與個node節點均需要以上鏡像:

k8s.gcr.io/kubernetes-dashboard-amd64               v1.10.1             f9aed6605b81        3 months ago        122MB

k8s.gcr.io/heapster-amd64                           v1.5.4              72d68eecf40c        8 months ago        75.3MB

k8s.gcr.io/heapster-influxdb-amd64                  v1.5.2              eb180058aee0        8 months ago        16.5MB

k8s.gcr.io/heapster-grafana-amd64                   v5.0.4              25e1da333f76        8 months ago        171MB

在主節點上準備部署所需的yaml檔案:

dashboard項目官方位址:https://github.com/kubernetes/dashboard/releases

這是作者自己修改過的yaml檔案: https://github.com/xl4025/k8s-dashboard-master.git

包含有:

kubernetes-dashboard.yaml     

kubernetes-dashboard-admin.rbac.yaml

heapster.yaml

heapster-rbac.yaml

官方的檔案中隻包含了kubernetes-dashboard.yaml,且kubernetes在1.6版本以後啟用了RBAC通路控制政策,直接使用官方版會出現通路權限不足的報錯

 此問題可使用kubectl或Kubernetes API進行配置。使用RBAC可以直接授權給使用者,讓使用者擁有授權管理的權限,這樣就不再需要直接觸碰Master Node。

相關修改為:

kubernetes-dashboard.yaml 中修改 serviceAccountName,外部通路dashboard的方式(本文為token通路)

kubernetes-dashboard-admin(預設為kubernetes-dashboard)

kind: Service

apiVersion: v1

metadata:

  labels:

    k8s-app: kubernetes-dashboard

  name: kubernetes-dashboard-external

  namespace: kube-system

spec:

  ports:

    - port: 9090

      targetPort: 9090

      nodePort: 31666

  type: NodePort

  selector:

    k8s-app: kubernetes-dashboard

在kubernetes-dashboard-admin.rbac.yaml中則是執行了建立kubernetes-dashboard-admin使用者并賦予所有權限的指令

PS:yaml中涉及的image版本請根據自己實際情況調整

安裝dashboard及相關元件

ll

#以下内容其中grafana和influxdb是作者自己增加的,讀者可不用部署

-rw-r--r-- 1 root root 2314 4月   3 10:02 grafana.yaml

-rw-r--r-- 1 root root  264 11月 23 15:19 heapster-rbac.yaml

-rw-r--r-- 1 root root 1100 4月   3 09:52 heapster.yaml

-rw-r--r-- 1 root root  998 4月   3 10:02 influxdb.yaml

-rw-r--r-- 1 root root  504 4月   3 10:13 kubernetes-dashboard-admin.rbac.yaml

-rw-r--r-- 1 root root 5132 4月   3 12:40 kubernetes-dashboard.yaml

#執行安裝

kubectl apply -n kube-system -f .

#執行完成後檢視pod是否正常運作

kubectl get pod -n kube-system |grep kubernetes-dashboard

kubernetes-dashboard-6cfdc589c7-krfmk   1/1     Running   0          164m

#檢視服務暴露的端口号

kubectl get service  -n kube-system |grep kubernetes-dashboard

kubernetes-dashboard-external   NodePort    10.99.7.179    <none>        9090:31666/TCP           22h

Running狀态說明運作正常,直接可通過masterip:端口号通路ui界面。

讀者可根據需要修改nodePort參數來修改通路端口。

在叢集中可以使用10.99.7.179:9090通路

不在叢集中機器通路位址masterip:31666

繼續閱讀