说明
在 Kubernetes 社区中,有一个很受欢迎的 Dashboard 项目,它可以给用户提供一个可视化的 Web 界面来查看当前集群的各种信息。今天我看看安装它会不会有坑。
用到的网站:https://github.com/kubernetes/dashboard/releases
可能需要:Docker 配置国内镜像源
如果手中还没有正常跑通的k8s集群的话,可先查看:kubeadm 安装 k8s 集群(国内网络)
安装
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
意料之中,果然有点小坑,相信看过kubeadm 安装 k8s 集群(国内网络)的同学已经大概猜到这个是怎么回事了。
我们使用 kubectl describe pod -n kube-system kubernetes-dashboard-5f7b999d65-gzfxf
查看下:
我们可以去 docker 官方镜像仓库查找对应镜像,然后下载下来,重命名一下就可以了。
其实手动去下载他们还是挺麻烦的,这里我们采用下面的方法解决 ImagePullBackOff
的问题
# 官方仓库搜索镜像
docker search kubernetes-dashboard-amd64:v1.10.1
然后我们选取 STARS 最多的那个,比如这里是
mirrorgooglecontainers/kubernetes-dashboard-amd64
下载 kubernetes-dashboard.yaml 文件
wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
修改 kubernetes-dashboard.yaml 文件
image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1
改为
image: docker.io/mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.1
然后执行
kubectl apply -f kubernetes-dashboard.yaml
正常等一会儿就可以了
开启通道
kubectl proxy
验证是否OK
但是上面那个只能本机访问,由于我这是云主机,所以这样就不能再浏览器打开可视化页面了。
我们可以使用 --address
和 --accept-hosts
参数来允许外部访问
kubectl proxy --address='0.0.0.0' --accept-hosts='^*$'
然后我们就可以在浏览器打开
http://公网IP:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login
访问了,如下:如果浏览器无响应的话,可能是云主机的安全组策略禁止公网访问8001端口了,可以在控制台开放一下。
由于登录需要Kubeconfig
或者token令牌
这里以token令牌
访问做个示例
# 获取secrets
kubectl get serviceaccount -n kube-system -l k8s-app=kubernetes-dashboard -o yaml
# 获取token
kubectl describe secrets -n kube-system 你的secrets.name
复制找到的token令牌
填入输入框内便可登录