微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

前情提要

以下所有操作均在单master群集已完成部署的情况下进行。

所有服务器均保证防火墙常闭,核心功能selinux关闭

服务器角色分配

角色 地址 安装组件
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工作目录

#在master上进行操作
[root@master ~]# cd /k8s/

#将需要上传页面文件到此文件夹下
[root@master k8s]# mkdir dashboard

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

“dashboard-rbac” 授权许可连接APIserver

“dashboard-secret” 进行加密配置

“dashboard-configmap” dashboard配置文件

“dashboard-controller” 应用配置

“dashboard-service” 用于发布应用

上面四个YAML文件从GITHUB上进行下载,地址:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/dashboard

生成相关的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界面


导致这个问题的根部原因就是缺少证书,某些浏览器会阻止不安全的访问

编写执行脚本进行证书自签

[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全部节点部署的配置过程~~~

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐