k8s-dashboard安装与使用

本文适用于kubernetes 1.9-1.11版本,其它版本未验证。
本文介绍了kube-dashboard的安装和访问,主要是官方wiki介绍的比较混乱,初次使用者经常面临kube-dashboard不能访问,kube-dashboard不能登陆,怎么登陆的问题。

For English users: you can refer to my answers at stackoverflow

安装

  1. https模式
    官方部署文档,注意必须提供证书

    1
    kubectl apply -f https://github.com/kubernetes/dashboard/blob/master/src/deploy/recommended/kubernetes-dashboard.yaml
  2. http模式

    1
    kubectl apply -f https://github.com/kubernetes/dashboard/blob/master/src/deploy/alternative/kubernetes-dashboard.yaml

以上两种模式,配置文件最后可以添加type: NodePort 实现外网的访问

外网访问

  1. apiserver
    apiserver是在pod中启动的,访问端口是6443,但是加了认证机制

  2. kube-proxy
    kube proxy 命令会启动一个代理,供访问apiserver

    1
    kubectl 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)

  3. node port
    如果上一步添加了NodePort,直接使用nodeIp:port访问

登陆

  1. https模式
    访问方式参见https://github.com/kubernetes/dashboard/wiki/Accessing-Dashboard---1.7.X-and-above 页面全部是通过https访问的方式,如果没有指定证书,登陆按钮是无效的(即使提供了token)
    参照第3点生成token登陆

  2. 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>进行访问

  3. 生成token
    参考 https://github.com/kubernetes/dashboard/wiki/Creating-sample-user

Song wechat
扫一扫,关注微信公众号,订阅我的博客
扫码领红包,支持走一波