高级网站开发工程师,郑州知名网站建设,济南网站建设 首选搜点网络,美团外卖网站开发一#xff1a;Dashboard简介
Dashboard 是基于网页的 Kubernetes 用户界面。 你可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中#xff0c;也可以对容器应用排错#xff0c;还能管理集群资源。 你可以使用 Dashboard 获取运行在集群中的应用的概览信息#xff0c…一Dashboard简介
Dashboard 是基于网页的 Kubernetes 用户界面。 你可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中也可以对容器应用排错还能管理集群资源。 你可以使用 Dashboard 获取运行在集群中的应用的概览信息也可以创建或者修改 Kubernetes 资源 如 DeploymentJobDaemonSet 等等。 例如你可以对 Deployment 实现弹性伸缩、发起滚动升级、重启 Pod 或者使用向导创建新的应用。
Dashboard 同时展示了 Kubernetes 集群中的资源状态信息和所有报错信息。 下载及相关说明可查看 官方地址https://github.com/kubernetes/dashboard
本机环境 master IP192.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。
ubuntuk8s-master:~$ kubectl get svc --namespacekubernetes-dashboard
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
dashboard-metrics-scraper ClusterIP 10.101.45.252 none 8000/TCP 10m
kubernetes-dashboard ClusterIP 10.106.68.110 none 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://domain_name/…
非以上连接登录页面都会出现以下提示而无法登录。 检测到不安全的访问。无法登陆。通过 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: 30169port: 443protocol: TCPtargetPort: 8443selector:k8s-app: kubernetes-dashboardsessionAffinity: Nonetype: NodePort #修改这一行即可原为type: ClusterIP
status:loadBalancer: {}重新查看命令空间kubernetes-dashboard中的kubernetes-dashboard服务的端口地址。
kubectl -n kubernetes-dashboard get service kubernetes-dashboard显示如下外部暴露端口自动为30169
ubuntuk8s-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 none 443:30169/TCP 112m这时在外部机器浏览器输入IP加30169注意必须是 https即可访问
https://192.168.152.100:30169/方法三API Server 注这种方法仅适用于在浏览器中安装用户证书时才可用可自行研究这里不深究了。 如果没有安装证书显示“检测到不安全的访问。无法登陆。通过 HTTPS 或使用 localhost 安全访问 Dashboard” 设置API server接收所有主机的请求
kubectl proxy --address0.0.0.0 --accept-hosts^*$浏览器访问命令为
https://master-ip:apiserver-port/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/四配置登录权限
Dashboard 支持 Kubeconfig 和 Token 两种认证方式这里用token的方式登录。 官方用户配置地址https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/creating-sample-user.md 通过yaml文件创建服务用户Service Account和集群角色权限ClusterRoleBinding
sudo vim account.yaml 内容
# Creating a Service Account
apiVersion: v1
kind: ServiceAccount
metadata:name: admin-usernamespace: kubernetes-dashboard---
# Creating a ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: admin-user
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: cluster-admin
subjects:
- kind: ServiceAccountname: admin-usernamespace: kubernetes-dashboardkubectl apply使之生效生成角色
kubectl apply -f account.yaml 获取token
kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath{.secrets[0].name}) -o go-template{{.data.token | base64decode}}本机获取token类似如下
eyJhbGciOiJSUzI1NiIsImtpZCI6IlVMZ0sxSjFwRGVodFdkSnAyWkc0WHJVRUZEX0h6dlF0Mm12Z29UbnZlakUifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLXh6emd0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJhMDczMzE2Ny05ZGViLTQ4N2EtYjFmMi1hMDljYTVlYmNhMDUiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.kSl89EDfsJssCVh3PEiK4E0mH5zRkzy2CbVhsmGYv9XRDUsyaUhO2R4lYJ2K4PKfisnHRuHKPoLaPabDH5qvCX0Jw5f75YDwXua8edH7hqd3NfmAxjX3ipqTBR7z7vV8kI6qrfqstA2KV1SQ4R_n-iH6JAsQQYq8YjoLP6sNLmzwKBpbjUhuvFZw3pFSaf02MiHR_8pD0_MHYpjvIFUBSdVf5-YPn7qM6CWSqUp5vo6cYWUT63dokiWLw7hwwj4QXQbRc1qPmli9uFV3yUE9s_JJv5WelEdAwRlv5Aic5QzGd_N3-u67fBL_cvivbODKxK14TXLLznOqy_kasOrmHg将得到的token填入页面登录地址 登录成功Dashboard配置完成