前情提要
以下所有操作均在主群单集已完成部署的情况下进行。
所有服务器均保证防火墙常闭,核心功能selinux关闭。
服务器角色分配
角色 地址 安装组件 主 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码头工人法兰绒etcd node2 192.168.142.132 kubelet kube-proxy码头工人法兰绒etcd nginx1 192.168.142.130 nginx keepalive nginx2 192.168.142.140 nginx keepalive 贵宾 192.168.142.20 虚拟地址 <人力资源/>主端建立仪表板/h3>
<>强建立仪表板工作目录强>
<代码类=" language-shell "> #在主人上进行操作 root@master ~ # cd/美丽/#将需要上传的页面文件到此文件夹下 [root@master k8] # mkdir仪表板代码>
" dashboard-rbac "授权许可连接APIserver
" dashboard-secret "进行加密配置
" dashboard-configmap "仪表板配置文件
" dashboard-controller "应用配置
"仪表板服务"用于发布应用
引用>上面四个YAML文件从GITHUB上进行下载,地址:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/dashboard <代码> 代码>
生成相关的豆荚
<代码类=" language-shell "> #顺序不能变! ! !切记! !切记! ! (root@master仪表板)# kubectl创建- f dashboard-rbac.yaml (root@master仪表板)# kubectl创建- f dashboard-secret.yaml (root@master仪表板)# kubectl创建- f dashboard-configmap.yaml (root@master仪表板)# kubectl创建- f dashboard-controller.yaml (root@master仪表板)# kubectl创建- f dashboard-service.yaml 代码>将POD划入指定命名空间
<代码类=" language-shell "> (root@master仪表板)# kubectl豆荚- n kube-system 重启名字就绪状态的年龄 kubernetes -仪表板- 65 f974f565 d2wgw 1/1运行2 90年代 #查看详细信息 (root@master仪表板)# kubectl豆荚,svc - n kube-system 重启名字就绪状态的年龄 豆荚/kubernetes -仪表板- 65 f974f565 d2wgw 1/1运行2 116年代 名字类型集群ip外部ip端口(年代) 服务/kubernetes-dashboard NodePort 10.0.0.109 & lt; none>112年代443:30001/TCP 代码> >之前此时,在浏览器访问某个节点节点的30001端口即可
<人力资源/>
导致这个问题的根部原因就是缺少证书,某些浏览器会阻止不安全的访问
<强>编写执行脚本进行证书自签强>
<代码类=" language-shell "> (root@master01仪表板)# bash仪表板。sh/root/k8s/apiserver/# #脚本手工进行编写 # !/bin/bash #仪表盘用证书 # 猫在dashboard-csr。json & lt; & lt; EOF { “CN”:“仪表板”, “主机”:[], “关键”:{ “算法”:“rsa”, “大小”:2048 }, “名称”:[ { “C”:“CN”, “L”:“北京”, “圣”:“北京” } ] } EOF K8S_CA=1美元 cfssl gencert ca=$ K8S_CA/ca。pem -ca-key=$ K8S_CA/ca-key。pem配置=$ K8S_CA/ca-config。json文件=kubernetes dashboard-csr。json | cfssljson光秃秃的仪表板 kubectl kubernetes-dashboard-certs - n kube-system删除秘密 kubectl创建通用kubernetes-dashboard-certs秘密——从文件=?- n kube-system 代码>重新应用新的自签证书,并应用
<代码类=" language-shell "> #重新应用自签的证书 # vim dashboard-controller.yaml root@master01仪表板 参数: #特定于平台的arg游戏在这里 ————auto-generate-certificates ————tls-key-file=dashboard-key.pem ————tls-cert-file=仪表板。pem # #添加最后两行 #进行重新部署 (root@master01仪表板)# kubectl应用- f dashboard-controller.yamlk8多主部署三:部署ui界面