更新时间:作者:小小条
今天我们部署一套k8s原生的可视化管理工具kubernetes-dashboard,我当前的k8s集群版本是1.25.0,通过github查询,当前最新版本的dashboard:v2.7.0与k8s 1.25版本兼容。

https://github.com/kubernetes/dashboard/releases/tag/v2.7.0
ok,那下面我们就着手部署dashboard:v2.7.0
下载yaml文件
root@dmaster:~# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml --2022-10-25 16:47:39-- https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml 正在解析主机 raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.110.133, ... 正在连接 raw.githubusercontent.com (raw.githubusercontent.com)|185.199.108.133|:443... 已连接。 已发出 HTTP 请求,正在等待回应... 200 OK 长度:7621 (7.4K) [text/plain] 正在保存至: “recommended.yaml”
recommended.yaml 100%[=======================================================================================>] 7.44K --.-KB/s 用时 0s
2022-10-25 16:47:39 (48.3 MB/s) - 已保存 “recommended.yaml” [7621/7621]) |
编辑yaml,新增nodeport配置,注意:nodeport端口规定必须在30000-32767这个区间,否则将配置失败,我们这里选择32443端口
root@dmaster:~# vim recommended.yaml apiVersion: v1 kind: Namespace metadata: name: kubernetes-dashboard
---
apiVersion: v1 kind: ServiceAccount metadata: labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard namespace: kubernetes-dashboard
---
kind: Service apiVersion: v1 metadata: labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard namespace: kubernetes-dashboard spec: type: NodePort ##新增 ports: - port: 443 targetPort: 8443 nodePort: 32443 ##新增 selector: k8s-app: kubernetes-dashboard
---
apiVersion: v1 kind: Secret metadata: labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard-certs |
部署kubernetes-dashboard
root@dmaster:~# kubectl apply -f recommended.yaml namespace/kubernetes-dashboard created serviceaccount/kubernetes-dashboard created service/kubernetes-dashboard created secret/kubernetes-dashboard-certs created secret/kubernetes-dashboard-csrf created secret/kubernetes-dashboard-key-holder created configmap/kubernetes-dashboard-settings created role.rbac.authorization.k8s.io/kubernetes-dashboard created clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created deployment.apps/kubernetes-dashboard created service/dashboard-metrics-scraper created deployment.apps/dashboard-metrics-scraper created |
查看部署结果
root@dmaster:~# kubectl get pod,svc -n kubernetes-dashboard NAME READY STATUS RESTARTS AGE pod/dashboard-metrics-scraper-64bcc67c9c-wsv8x 1/1 Running 0 48m pod/kubernetes-dashboard-5c8bd6b59-bktck 1/1 Running 0 48m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/dashboard-metrics-scraper ClusterIP 10.96.1.5 <none> 8000/TCP 48m service/kubernetes-dashboard NodePort 10.96.2.200 <none> 443:32443/TCP 48m |
创建服务账号
root@dmaster:~# kubectl create serviceaccount k8sadmin -n kubernetes-dashboard serviceaccount/k8sadmin created
|
为账号授予集群管理权限
root@dmaster:~# kubectl create clusterrolebinding k8sadmin-rb --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:k8sadmin clusterrolebinding.rbac.authorization.k8s.io/k8sadmin-rb created |
生成该账号的token
root@dmaster:~# kubectl create token k8sadmin -n kubernetes-dashboard eyJhbGciOiJSUzI1NiIsImtpZCI6InFfZzZIdC03bnQ3b2hqd19EV0hoY0xYcWJYUW1FeW15RGJ5R2EwUUJjVFEifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjoxNjY2Njk2Njc1LCJpYXQiOjE2NjY2OTMwNzUsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJrOHNhZG1pbiIsInVpZCI6IjhiNjJmZGE4LTYyMjItNGM3YS05MzE1LTRlNmRiYjA0N2IzYiJ9fSwibmJmIjoxNjY2NjkzMDc1LCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6azhzYWRtaW4ifQ.EMjbdGZEhPhN382iyFE0zaIJXUZ0g7fhjxbUKqcY-FpYh7shbpqqr35nELpYo5XJ6deu_Vs6eFnFRwAVXTgKdRy038hkF5D1KQmnFrdELCa2dBLaJsUzV1bbmYIXCkDaw2ejb72mS9LHKReBa1kEfp2vEYta3PTnqe4AnATFNG3gNwMKQCXM-2XTL7Rj6UnlXNGRA1eZCY4mPatmVumRcqU_w-77anGJ_scP7U1Cgj5zWJ9EtOXIeccfnxcgpuat6Y7B6wFZwLZ85lIFIQKrU5Eb7gK4K2Rh9aaZnd8dBm3NDZWiq89MqyFYxcpHSKEDIrOxHKAgrjppZK4aoTCXjg |
接下来我们就可以登录dashboard的管理界面了,在浏览器输入https://[集群内任一节点IP]:<nodeport>,会跳转到如下登录界面
我们选择token登录方式,输入刚刚生成的token,即可登入集群管理界面
本章节到此结束,后续会另开一个章节着重讲一下dashboard下的常用功能
版权声明:本文转载于今日头条,版权归作者所有,如果侵权,请联系本站编辑删除