K8S多master部署三:部署DashBoard-UI界面

前情提要

如下全部操做均在單master羣集已完成部署的狀況下進行。node

全部服務器均保證防火牆常閉,核心功能selinux關閉。linux

服務器角色分配

角色 地址 安裝組件
master 192.168.142.220 kube-apiserver kube-controller-manager kube-scheduler etcd
master02 192.168.142.120 kube-apiserver kube-controller-manager kube-scheduler
node1 192.168.142.136 kubelet kube-proxy docker flannel etcd
node2 192.168.142.132 kubelet kube-proxy docker flannel etcd
nginx1 192.168.142.130 nginx keepalived
nginx2 192.168.142.140 nginx keepalived
VIP 192.168.142.20 虛擬地址

Master端創建DashBoard

創建dashboard工做目錄nginx

#在master上進行操做
[root@master ~]# cd /k8s/

#將須要上傳的頁面文件到此文件夾下
[root@master k8s]# mkdir dashboard

K8S多master部署三:部署DashBoard-UI界面

「dashboard-rbac」 受權許可鏈接APIservergit

「dashboard-secret」 進行加密配置github

「dashboard-configmap」 dashboard配置文件docker

「dashboard-controller」 應用配置shell

「dashboard-service」 用於發佈應用json

上面四個YAML文件從GITHUB上進行下載,地址:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/dashboardvim

生成相關的POD

#順序不能變!!!切記!!切記!!
[root@master dashboard]# kubectl create -f dashboard-rbac.yaml

[root@master dashboard]# kubectl create -f dashboard-secret.yaml

[root@master dashboard]# kubectl create -f dashboard-configmap.yaml

[root@master dashboard]# kubectl create -f dashboard-controller.yaml

[root@master dashboard]# kubectl create -f dashboard-service.yaml

將POD劃入指定命名空間

[root@master dashboard]# kubectl get pods -n kube-system
NAME                                    READY   STATUS    RESTARTS   AGE
kubernetes-dashboard-65f974f565-d2wgw   1/1     Running   2          90s

#查看詳細信息
[root@master dashboard]# kubectl get pods,svc -n kube-system
NAME                                        READY   STATUS             RESTARTS   AGE
pod/kubernetes-dashboard-65f974f565-d2wgw   1/1     Running            2          116s

NAME                           TYPE       CLUSTER-IP   EXTERNAL-IP   PORT(S)         AGE
service/kubernetes-dashboard   NodePort   10.0.0.109   <none>        443:30001/TCP   112s

此時,在瀏覽器訪問某個node節點的30001端口便可

K8S多master部署三:部署DashBoard-UI界面


致使這個問題的根部緣由就是缺乏證書,某些瀏覽器會阻止不安全的訪問

編寫執行腳本進行證書自籤api

[root@master01 dashboard]# bash dashboard.sh /root/k8s/apiserver/
##腳本手工進行編寫
#!/bin/bash
#DashBoard用證書
#
cat > dashboard-csr.json <<EOF
{
   "CN": "Dashboard",
   "hosts": [],
   "key": {
       "algo": "rsa",
       "size": 2048
   },
   "names": [
       {
           "C": "CN",
           "L": "BeiJing",
           "ST": "BeiJing"
       }
   ]
}
EOF

K8S_CA=$1
cfssl gencert -ca=$K8S_CA/ca.pem -ca-key=$K8S_CA/ca-key.pem -config=$K8S_CA/ca-config.json -profile=kubernetes dashboard-csr.json | cfssljson -bare dashboard

kubectl delete secret kubernetes-dashboard-certs -n kube-system
kubectl create secret generic kubernetes-dashboard-certs --from-file=./ -n kube-system

從新應用新的自簽證書,並應用

#從新應用自籤的證書
[root@master01 dashboard]# vim dashboard-controller.yaml
        args:
          # PLATFORM-SPECIFIC ARGS HERE
          - --auto-generate-certificates
          - --tls-key-file=dashboard-key.pem
          - --tls-cert-file=dashboard.pem    ##添加最後兩行

#進行從新部署
[root@master01 dashboard]# kubectl apply -f dashboard-controller.yaml

K8S多master部署三:部署DashBoard-UI界面
K8S多master部署三:部署DashBoard-UI界面

生成進入的令牌

#生成令牌
[root@master01 dashboard]# kubectl create -f k8s-admin.yaml

#將令牌進行保存
[root@master01 dashboard]# kubectl get secret -n kube-system
NAME                               TYPE                                  DATA   AGE
dashboard-admin-token-klr2w        kubernetes.io/service-account-token   3      74s
default-token-68xvt                kubernetes.io/service-account-token   3      54m
kubernetes-dashboard-certs         Opaque                                10     11m
kubernetes-dashboard-key-holder    Opaque                                2      23m
kubernetes-dashboard-token-drsc7   kubernetes.io/service-account-token   3      23m

#查看保存的令牌
[root@master01 dashboard]# kubectl describe secret dashboard-admin-token-klr2w -n kube-system
##複製token便可

把複製的token進行粘貼便可進入WEB頁面

K8S多master部署三:部署DashBoard-UI界面

以上,就是整個K8S所有節點部署的配置過程~~~

相關文章
相關標籤/搜索