一:Dashboard简介
Dashboard 是基于网页的 Kubernetes 用户界面。 你可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中,也可以对容器应用排错,还能管理集群资源。 你可以使用 Dashboard 获取运行在集群中的应用的概览信息,也可以创建或者修改 Kubernetes 资源 (如 Deployment,Job,DaemonSet 等等)。 例如,你可以对 Deployment 实现弹性伸缩、发起滚动升级、重启 Pod 或者使用向导创建新的应用。
Dashboard 同时展示了 Kubernetes 集群中的资源状态信息和所有报错信息。
下载及相关说明可查看
官方地址:
https://github.com/kubernetes/dashboard
本机环境
master IP:192.168.152.100
二:Dashboard下载安装
在master主节点上命令:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml
此时已自动创建kubernetes-dashboard的命名空间,以前版本是在默认的kube-system命名空间中。
可自行查看kubernetes-dashboard空间的服务,已存在kubernetes-dashboard。
ubuntu@k8s-master:~$ kubectl get svc --namespace=kubernetes-dashboard
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
dashboard-metrics-scraper ClusterIP 10.101.45.252 8000/TCP 10m
kubernetes-dashboard ClusterIP 10.106.68.110 443/TCP 10m
三:访问Dashboard
访问权限官方参考地址:
https://github.com/kubernetes/dashboard/blob/master/docs/user/accessing-dashboard/README.md#login-not-available
Dashboard登录连接有以下三种,本机的http方式访问,外部机器的https访问。
- http://localhost/...
- http://127.0.0.1/...
- https://
/...
非以上连接登录,页面都会出现以下提示,而无法登录。
检测到不安全的访问。无法登陆。通过 HTTPS 或使用 localhost 安全访问 Dashboard
1、本机器访问
master机器输入命令,此时命令为挂起状态
kubectl proxy
在本机浏览器输入(注意必须是 http),对,没错就是这么长的连接:
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
2、外部机器访问
方法一:端口转发模式:
监听所有IP地址,并将8080转发至443https端口访问。
kubectl port-forward -n kubernetes-dashboard --address 0.0.0.0 service/kubernetes-dashboard 8080:443
这时在外部机器浏览器输入,(注意必须是 https),对,没错就是这么短的连接即可访问:
https://192.168.152.100:8080/
方法二:NodePort:
编辑命令空间kubernetes-dashboard中的kubernetes-dashboard服务
kubectl -n kubernetes-dashboard edit service kubernetes-dashboard
打开后,将type: ClusterIP 改为 type: NodePort
apiVersion: v1
kind: Service
...
...
ports:
- nodePort: 30169
port: 443
protocol: TCP
targetPort: 8443
selector:
k8s-app: kubernetes-dashboard
sessionAffinity: None
type: NodePort #修改这一行即可,原为type: ClusterIP
status:
loadBalancer: {}
重新查看命令空间kubernetes-dashboard中的kubernetes-dashboard服务的端口地址。
kubectl -n kubernetes-dashboard get service kubernetes-dashboard
显示如下,外部暴露端口自动为`30169`
ubuntu@k8s-master:~$ kubectl -n kubernetes-dashboard get service kubernetes-dashboard
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes-dashboard NodePort 10.106.68.110 443:30169/TCP 112m
这时在外部机器浏览器输入IP加`30169`,(注意必须是 https)即可访问:
https://192.168.152.100:30169/
方法三:API Server:
注:这种方法仅适用于在浏览器中安装用户证书时才可用,可自行研究,这里不深究了。
如果没有安装证书,显示“检测到不安全的访问。无法登陆。通过 HTTPS 或使用 localhost 安全访问 Dashboard”
设置API server接收所有主机的请求:
kubectl proxy --address='0.0.0.0' --accept-hosts='^*