发布于2022-09-18 17:38 阅读(873) 评论(0) 点赞(26) 收藏(1)
Kubernetes Dashboard 是 k8s集群的⼀个 WEB UI管理⼯具,代码托管在 github 上。
Dashboard(仪表盘)是基于Web的Kubernetes用户界面。
例如:可以使用部署向导扩展部署,启动滚动更新,重新启动Pod或部署新应用程序。仪表盘还提供有关集群中Kubernetes资源状态以及可能发生的任何错误的信息。
直接使⽤官⽅的配置⽂件安装即可:
$ wget https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommende d/kubernetes-dashboard.yaml
为了测试⽅便,我们将 Service 改成 NodePort 类型,然后直接部署新版本的 dashboard 即可。
$ kubectl create -f kubernetes-dashboard.yaml
然后我们可以查看 dashboard 的外⽹访问端⼝:
$ kubectl get svc kubernetes-dashboard -n kube-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
haproxy ClusterIP 10.254.125.90 <none> 8440/TCP,8442/TCP 2d
kubernetes-dashboard NodePort 10.254.122.185 <none> 443:31694/TCP 10s
然后直接访问集群中的任何⼀个节点 IP 加上上⾯的31694端⼝即可打开 dashboard ⻚⾯了
由于 dashboard 默认是⾃建的 https 证书,该证书是不受浏览器信任的,所以我们需要强制跳转 就可以了。
默认 dashboard 会跳转到登录⻚⾯,我们可以看到 dashboard 提供了 Kubeconfig 和 token 两种登录 ⽅式,我们可以直接跳过或者使⽤本地的 Kubeconfig ⽂件进⾏登录,可以看到会跳转到如下⻚⾯:
这是由于该⽤户没有对 default 命名空间的访问权限。
# cat dashboard-service.yaml apiVersion: v1 kind: Service metadata: name: kubernetes-dashboard namespace: kube-system labels: k8s-app: kubernetes-dashboard kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile spec: type: NodePort selector: k8s-app: kubernetes-dashboard ports: - port: 80 targetPort: 9090
指定端口类型为 NodePort,这样外界可以通过地址 nodeIP:nodePort 访问 dashboard;
# cat dashboard-controller.yaml apiVersion: extensions/v1beta1 kind: Deployment metadata: name: kubernetes-dashboard namespace: kube-system labels: k8s-app: kubernetes-dashboard kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile spec: selector: matchLabels: k8s-app: kubernetes-dashboard template: metadata: labels: k8s-app: kubernetes-dashboard annotations: scheduler.alpha.kubernetes.io/critical-pod: '' spec: serviceAccountName: dashboard containers: - name: kubernetes-dashboard image: index.tenxcloud.com/jimmy/kubernetes-dashboard-amd64:v1.6.0 resources: limits: cpu: 100m memory: 50Mi requests: cpu: 100m memory: 50Mi ports: - containerPort: 9090 livenessProbe: httpGet: path: / port: 9090 initialDelaySeconds: 30 timeoutSeconds: 30 tolerations: - key: "CriticalAddonsOnly" operator: "Exists"
登录 dashboard 的时候⽀持 Kubeconfig 和token 两种认证⽅式,Kubeconfig 中也依赖token 字段,所 以⽣成token 这⼀步是必不可少的。
我们创建⼀个admin⽤户并授予admin ⻆⾊绑定,使⽤下⾯的yaml⽂件创建admin⽤户并赋予他管理员 权限,然后就可以通过token 登陆dashbaord,这种认证⽅式本质实际上是通过Service Account 的身 份认证加上Bearer token请求 API server 的⽅式实现。
kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: admin annotations: rbac.authorization.kubernetes.io/autoupdate: "true" roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io subjects: - kind: ServiceAccount name: admin namespace: kube-system --- apiVersion: v1 kind: ServiceAccount metadata: name: admin namespace: kube-system labels: kubernetes.io/cluster-service: "true" addonmanager.kubernetes.io/mode: Reconcile
上⾯的 admin ⽤户创建完成后我们就可以获取到该⽤户对应的 token 了,如下命令:
$ kubectl get secret -n kube-system|grep admin-token
admin-token-d5jsg kubernetes.io/service-account-token 3 1d
$ kubectl get secret admin-token-d5jsg -o jsonpath={.data.token} -n kube-system |base64 -d
# 会⽣成⼀串很⻓的base64后的字符串
然后在 dashboard 登录⻚⾯上直接使⽤上⾯得到的 token 字符串即可登录,这样就可以拥有管理员权 限操作整个 kubernetes 集群的对象,当然你也可以为你的登录⽤户新建⼀个指定操作权限的⽤户。
有以下三种方式:
$ kubectl proxy --address='192.168.1.121' --port=8086 --accept-hosts='^*$'
Starting to serve on 192.168.1.121:8086
需要指定 --accept-hosts 选项,否则浏览器访问 dashboard 页面时提示 “Unauthorized”;
获取集群服务地址列表
$ kubectl cluster-info
Kubernetes master is running at https://192.168.1.121:6443
KubeDNS is running at https://192.168.1.121:6443/api/v1/proxy/namespaces/kube-system/services/kube-dns
kubernetes-dashboard is running at https://192.168.1.121:6443/api/v1/proxy/namespaces/kube-system/services/kubernetes-dashboard
原文链接:https://blog.csdn.net/m0_63947499/article/details/126584762
作者:Bhbvhbbgg
链接:http://www.qianduanheidong.com/blog/article/415440/4c612fcea04cfab0dfec/
来源:前端黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 前端黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-3
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!