为kubenetes集群,创建dashboard

本文详细介绍如何在Kubernetes v1.18.1集群上安装和配置Dashboard,包括使用YAML文件部署、修改Service类型为NodePort、获取登录Token及解决权限不足问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上篇文章中介绍了如何安装kubenetes v1.18.1
部署Kubernetes集群 - v1.18.1
现给它安装个dashboard。

准备yaml文件

https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc7/aio/deploy/recommended.yaml

链接:https://pan.baidu.com/s/1XPaZ0on83UOJTxu3hJ2g6w
提取码:fry2
将其中dashboard-service修改成如下:

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-dashboard
spec:
  type: NodePort
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30000
  selector:
    k8s-app: kubernetes-dashboard

修改这个service,加上type为NodePort,ports下加一行nodePort: 30000

[root@dev-learn-77 dashboard]#  kubectl create -f dashboard.yml
namespace/kube-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

查看pod和service

[root@dev-learn-77 dashboard]# kubectl get pod -o wide -n kube-dashboard
NAME                                        READY   STATUS    RESTARTS   AGE   IP              NODE           NOMINATED NODE   READINESS GATES
dashboard-metrics-scraper-dc6947fbf-tqc98   1/1     Running   0          26m   10.244.218.67   dev-learn-79   <none>           <none>
kubernetes-dashboard-7b9b9c94f7-9jrmc       1/1     Running   0          26m   10.244.224.8    dev-learn-78   <none>           <none>
[root@dev-learn-77 dashboard]# 
[root@dev-learn-77 dashboard]# kubectl get service -o wide -n kube-dashboard
NAME                        TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE   SELECTOR
dashboard-metrics-scraper   ClusterIP   10.111.218.20   <none>        8000/TCP        27m   k8s-app=dashboard-metrics-scraper
kubernetes-dashboard        NodePort    10.110.139.83   <none>        443:30000/TCP   27m   k8s-app=kubernetes-dashboard
[root@dev-learn-77 dashboard]# 

在浏览器中输入地址:https://172.22.21.77:30000,即可看到dashboard的登录详情,

查看token:

[root@dev-learn-77 dashboard]# kubectl get secret -o wide -n kube-dashboard
NAME                               TYPE                                  DATA   AGE
default-token-bh96r                kubernetes.io/service-account-token   3      28m
kubernetes-dashboard-certs         Opaque                                0      28m
kubernetes-dashboard-csrf          Opaque                                1      28m
kubernetes-dashboard-key-holder    Opaque                                2      28m
kubernetes-dashboard-token-hvq4g   kubernetes.io/service-account-token   3      28m
[root@dev-learn-77 dashboard]# 
[root@dev-learn-77 dashboard]# kubectl describe secret kubernetes-dashboard-token-hvq4g -n kube-dashboard
Name:         kubernetes-dashboard-token-hvq4g
Namespace:    kube-dashboard
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: kubernetes-dashboard
              kubernetes.io/service-account.uid: 7425b2ff-a410-4082-adc4-0661cd005ccc

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1025 bytes
namespace:  14 bytes
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IndjNlpPc0wtWTQxejd0VFJvX3hpQ2tzVkdMQTNGcF9xU0p1MVJQVElPVVUifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2kkb2FyZC10b2tlbi1odnE0ZyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6Ijc0MjViMmZmLWE0MTAtNDA4Mi1hZGM0LTA2NjFjZDAwNWNjYyIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlLWRhc2hib2FyZDprdWJlcm5ldGVzLWRhc2hib2FyZCJ9.OhXrLIDNwetwXEepdE2ss_DGuIykIyVeFSyghlkn-d7tgIPWUN6Wnr-cM7UR1oz_DI5EyKIciNkuoRUjpICLvL9-AW16WpeZ1gP2JSkjUWzavOTTh3At8qO0aX1K9e2AfvpbqC0atXodrRa6Cj-jqsBHF1Dos2-2UcnifjmvQVRL30EXhsYxAfiOPRxB-WCABMRSfCtIN7LVYt_dLS1RxYw2qy52dVpXaToNn5OcM9Sk5NQ44SFNBFGO1Rel06XjvAgwdKwtSC0dWTYNE0_Z7Agd-mgNJKK_AB0IrjUSG_DJWGHldJOEer-VAYIiqM7C_I_ScTfFdB_CTmTDZJrgzg
[root@dev-learn-77 dashboard]# 

即可通过此token登录dashboard。

若遇到登录后什么都看不到的情况,应该是权限不够

Non-critical error occurred during resource retrieval: pods is forbidden: User "system:serviceaccount:kube-dashboard:kubernetes-dashboard" cannot list resource "pods" in API group "" in the namespace "kube-dashboard"

创建一个如下的yaml文件:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: dashboard-admin
  namespace: kube-dashboard
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: dashboard-admin
subjects:
  - kind: ServiceAccount
    name: dashboard-admin
    namespace: kube-dashboard
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io

kubectl create -f k8s-admin.yaml

然后拿到这个新的secret的token即可

[root@dev-learn-77 dashboard]# kubectl describe secret dashboard-admin-token-7lfh7 -n kube-dashboard
Name:         dashboard-admin-token-7lfh7
Namespace:    kube-dashboard
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: dashboard-admin
              kubernetes.io/service-account.uid: 5886d511-ecbc-4da1-a567-b1d03391ca2d

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1025 bytes
namespace:  14 bytes
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IndjNlpPc0wtWTQxejd0VFJvX3hpQ2tzVkdMQTNGcF9xU0p1MVJQVElPVVUifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4tN2xmaDciLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkLWFkbWluIiwia3ViZXJuZXRlcy5q8y9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiNTg4NmQ1MTEtZWNiYy00ZGExLWE1NjctYjFkMDMzOTFjYTJkIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtZGFzaGJvYXJkOmRhc2hib2FyZC1hZG1pbiJ9.BdStPGxT2vgmPWMtBobK9gL5VnuamWamLpIR0eEPcYiyzXm08JA1506NIYHgh7ZZTjZk6SZBLCdjltDbavp0kL3so62wlR1Bbe881937cWShuiztsuv1xEi8qIetCEU2mhRI3qtdGAAEWBsMQMQfydPXuNTMb6bERL48r-5gGKX0hUSAo92KZFI0DIXXzkMIdQf--TuDvDkWA-Hw83FjJpMDSzDiE-c3KMVeVdx50Sywok9cZhHBmeMzXmNVLGcdyRSoEMP7SCjssJQJiQyngKleUIO_v8KcNBtzyCHVF2HGvMG5NQXlowcaFca353vbo-9cwxEArLOou2QxIv39xQ
[root@dev-learn-77 dashboard]# 

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值