k8s-dashboard安装与使用
For English users: you can refer to my answers at stackoverflow
本文适用于kubernetes 1.9-1.11版本,其它版本未验证。
安装
-
https模式
官方部署文档,注意必须提供证书!
kubectl apply -f https://github.com/kubernetes/dashboard/blob/master/src/deploy/recommended/kubernetes-dashboard.yaml
-
http模式
kubectl apply -f https://github.com/kubernetes/dashboard/blob/master/src/deploy/alternative/kubernetes-dashboard.yaml
以上两种模式,配置文件最后可以添加type: NodePort 实现外网的访问
外网访问
-
apiserver
apiserver是在pod中启动的,访问端口是6443,但是加了认证机制 -
kube-proxy
kube proxy 命令会启动一个代理,供访问apiserverkubectl proxy --address='0.0.0.0' --accept-hosts='^* 默认启动8001端口(端口可以指定),这时可以从外网访问了 `http(s)://MasterIP:8001/api/v1/namespaces/kube-system/services/http(s):kubernetes-dashboard:/proxy/` (根据上一步安装模式决定是否通过https)
-
node port
如果上一步添加了NodePort,直接使用
nodeIp:port
访问
登陆
-
https模式
访问方式参见
https://github.com/kubernetes/dashboard/wiki/Accessing-Dashboard---1.7.X-and-above 页面全部是通过https访问的方式,如果没有指定证书,登陆按钮是无效的(即使提供了token)
参照第3点生成token登陆 -
http模式
参见
https://github.com/kubernetes/dashboard/wiki/Accessing-Dashboard---1.6.X-and-below
http部署的,即使版本高于1.6,还是要使用1.6及以下的方式访问
参照第3点生成token,由于Kube-proxy和apiserver的访问方式添加的头会被丢弃,所以http方式只能通过
nodeIp:port
的方式访问, 且该模式不会有登陆页面,只能通过对每一个请求添加头:Authorization: Bearer <token>
进行访问 -
生成token
参考
https://github.com/kubernetes/dashboard/wiki/Creating-sample-user默认启动8001端口(端口可以指定),这时可以从外网访问了 `http(s)://MasterIP:8001/api/v1/namespaces/kube-system/services/http(s):kubernetes-dashboard:/proxy/` (根据上一步安装模式决定是否通过https)
-
node port
如果上一步添加了NodePort,直接使用
nodeIp:port
访问
登陆
-
https模式
访问方式参见
https://github.com/kubernetes/dashboard/wiki/Accessing-Dashboard---1.7.X-and-above 页面全部是通过https访问的方式,如果没有指定证书,登陆按钮是无效的(即使提供了token)
参照第3点生成token登陆 -
http模式
参见
https://github.com/kubernetes/dashboard/wiki/Accessing-Dashboard---1.6.X-and-below
http部署的,即使版本高于1.6,还是要使用1.6及以下的方式访问
参照第3点生成token,由于Kube-proxy和apiserver的访问方式添加的头会被丢弃,所以http方式只能通过
nodeIp:port
的方式访问, 且该模式不会有登陆页面,只能通过对每一个请求添加头:Authorization: Bearer <token>
进行访问 -
生成token
参考
https://github.com/kubernetes/dashboard/wiki/Creating-sample-user