概述
Kubernetes Dashboard 是 Kubernetes 集群的 Web UI,用于管理集群。
安装
GitHub 地址:Kubernetes Dashboard
- 由于本次搭建的k8s集群版本是1.16.0,故需要使用2.0.0以上,但是截止本次搭建环境,2.0.0尚出于beta阶段,本次使用v2.0.0-beta5
下载配置文件
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta5/aio/deploy/recommended.yaml
修改配置如下
# 省略部分代码...# ------------------- Dashboard Service ------------------- #kind: ServiceapiVersion: v1metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kube-systemspec:# 修改类型为 NodePort 访问type: NodePortports:- port: 443targetPort: 8443# 设置端口号为 30001nodePort: 30001selector:k8s-app: kubernetes-dashboardkind: ServiceapiVersion: v1metadata:labels:k8s-app: kubernetes-dashboardname: kubernetes-dashboardnamespace: kubernetes-dashboardspec:# 修改类型为 NodePort 访问type: NodePortports:- port: 443targetPort: 8443# 设置端口号为 30001nodePort: 30001selector:k8s-app: kubernetes-dashboard
部署到集群
# 部署kubectl create -f kubernetes-dashboard.yaml# 查看kubectl -n kubernetes-dashboard get podskubectl -n kubernetes-dashboard get service kubernetes-dashboardkubectl -n kubernetes-dashboard describe service kubernetes-dashboard
访问
需要使用 NodeIP:30001 访问 Dashboard,因为证书原因除火狐浏览器外其它浏览器无法直接打开页面
Chrome 浏览器显示如下

Firefox 浏览器显示如下

点击 接受风险并继续 即可显示欢迎界面

登录
- 我们采用 Token 方式登录
- 创建登录账号,创建一个名为
dashboard-adminuser.yaml的配置文件
apiVersion: v1kind: ServiceAccountmetadata:name: admin-usernamespace: kubernetes-dashboard---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata:name: admin-userroleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: cluster-adminsubjects:- kind: ServiceAccountname: admin-usernamespace: kubernetes-dashboard
kubectl create -f dashboard-adminuser.yaml
- 打印 Token 信息
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')# 输出如下Name: admin-user-token-rzpz5Namespace: kubernetes-dashboardLabels: <none>Annotations: kubernetes.io/service-account.name: admin-userkubernetes.io/service-account.uid: 9606b452-8adb-4381-9e3c-9816dc1b5cc5Type: kubernetes.io/service-account-tokenData====token: eyJhbGciOiJSUzI1NiIsImtpZCI6ImFEUkkxc1VnNFFtUXFCOGRBcVVaSHp5bEpVMU9QV3cyMTROZm5rMjUtZjAifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLXJ6cHo1Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI5NjA2YjQ1Mi04YWRiLTQzODEtOWUzYy05ODE2ZGMxYjVjYzUiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.kPwQMd6-wNCYkFUacr63aG5zwKp2_76NuJusLMnoHzV9TkzlkuO8DLWhJDeGFxdb9zTbQ9A7I8vz_xS-xI0nHo4r5QJ60CzQOLQXmlSCq0dzaOvh8OZawc5OcVfmIj5Dv7fr1NcA6ihZQddGIabOvJk0sx8ZnWTBPJUaBj0KHRpw2zpqv7yc11QEVc4b1dqP1-wG3NStKPCZNkBz8RSFA1urEyyQKdnCBvrPCadMzHUp-FBr1xEdxH1lYW0okoyNHXXjNMmBANvoAqrZrBgGJRDnOMabQH4nw0I3_Wcb3OReEv6OrMhcQrDjVDETL_PgLet_f3JVeW0y5Hyt9dcsEAca.crt: 1025 bytesnamespace: 20 bytes
- 将 Token 输入浏览器,成功登陆后效果如下

