总算在成功的部署了k8之后,我打算再部署一下美丽的web UI:仪表板。
网上主要的部署方法都是一些它用yaml文件去生成的仪表板服务。然后所有的文章或多或少的都有点问题,不是步骤不一样了进行不下去了,内容或文件过期,或都就是作者认为某些内容是大家都懂的于是怱略了一些步骤,但是我已经进行不下去了。
首先是拉镜像的问题,仪表板的镜像依旧是在“某个外国知名搜索引擎”服务器上的没法直接拉下来,所以依旧使用从镜像服务器上下载之后再用码头工人标签命令更改名称的方法来解决问题。
官方的镜像地址是:k8s.gcr.io/kubernetes-dashboard-amd64: v1.10.1
我找了一个镜像的地址:mirrorgooglecontainers (下载命令为:码头工人拉mirrorgooglecontainers/kubernetes-dashboard-amd64: v1.10.1)
接下来是改名
docker tag mirrorgooglecontainers/kubernetes-dashboard-amd64: v1.10.1 k8s.gcr.io/kubernetes-dashboard-amd64: v1.10.1 docker rmi  mirrorgooglecontainers/kubernetes-dashboard-amd64: v1.10.1
然后有了镜像之后,开启仪表板的豆荚。网上也有各种yaml文件版本,我试下来最靠谱的是以下文件。将它命名为kubernetes-dashboard。yaml。
:服务 apiVersion: v1 元数据: 标签:才能 ,,,k8s-app: kubernetes-dashboard 名称:才能kubernetes-dashboard 名称空间:才能kube-system 规范: 类型:才能NodePort 港口:才能 ,,,的背后,端口:443 ,,,,,发送:8443 ,,,,,nodePort: 30001 选择器:才能 ,,,k8s-app:, kubernetes-dashboard
其30001年中可以自己改,在k8允许的范围内内改成自己想要的端口。这个端口是应用于物理机上的而不是豆荚网络。非k8集群的集群可以通过这个端口去访问(毕竟还是给浏览器去访问的。)我已开始没改端口,但是没有意识到30001端口已经被其他的服务给占掉了,所以yaml文件运行后没有起到起到什么作用。我在这里选了一个30012端口。
用这个文件来安装仪表板
kubectl create -f kubernetes-dashboard。yaml
接下来是用浏览器登陆,首先找到仪表板是在那个节点上运行的,
kubectl get pods ——all-namespaces -o wide |, grep dashboard |, awk & # 39; {print 8美元}& # 39;
然后在浏览器里访问这个节点节点。网址要加上https://<节点的ip或域名祝辞:& lt;前面yaml文件中的nodePort的值祝辞。我用的浏览器是chrome,立即显示了“证书不受信任”的页面,而且高级选项里继续选项也没有,就无法访问了。上网查了一下这个问题的解决方法,原因是证书过期了(0001年1月3日开的证书,整整过期2000 +年),只有火狐能够添加例外。而真正的解决方法是替换证书。在网上找到最好的方法如下文。
mkdir key ,, cd 关键 openssl genrsa  -out dashboard.key 2048年, openssl req  -new -out dashboard.csr  -key dashboard.key -subj & # 39;/CN=172.19.0.48& # 39; openssl x509  -req 拷贝;dashboard.csr  -signkey dashboard.key -out dashboard.crt kubectl delete  secret kubernetes-dashboard-certs  -n kube-system kubectl create  secret generic  kubernetes-dashboard-certs ——从文件=dashboard.key ——从文件=dashboard.crt -n kube-system , #新的证书 kubectl delete pod  kubernetes仪表板- 746 dfd476 - b2r5f -n kube-system ,,, #重启服务
其中有一些地方要根据实际情况改动,例如第三句的IP地址要改成节点节点的,还有最后一句删除pod名字也得改一下。获取的命令为
kubectl get pods ——all-namespaces -o wide |, grep dashboard |, awk & # 39; {print $ 2} & # 39;
然后在浏览器里就可以跳过证书受信问题了。接下来的问题是登陆界面,有两种登陆的方式,个人觉得还这是令牌种方便一点。网上也有高手总结了一下获取令牌命令的方法。
kubectl -n kube-system describe 美元(kubectl -n  kube-system get secret -n kube-system -o name |, grep 名称空间),|,grep 标记Kubernets安装仪表板报错怎么解决