k8s1.28部署dashboard仪表盘
下载最新资源清单
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
自定义暴露方式(外部访问)
若需从集群外部访问 Dashboard,修改 recommended.yaml 中的服务配置:
# 找到 Service 部分(原文件约 120 行)
apiVersion: v1
kind: Service
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kube-system # K8s 1.24+ 固定命名空间
spec:
type: NodePort # 修改为 NodePort 或 LoadBalancer(云厂商适用)
ports:
- port: 443
targetPort: 8443
nodePort: 30001 # 可选,指定 NodePort 端口(范围 30000-32767)
selector:
k8s-app: kubernetes-dashboard
修改后重新应用配置:
kubectl apply -f recommended.yaml
创建访问凭证(Token 或 Kubeconfig)
Dashboard 支持 Token 认证 和 Kubeconfig 认证,以下为常用方案:
创建服务账户并绑定权限
创建 admin-user.yaml 文件:
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kube-system # 与 Dashboard 同命名空间
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin # 授予集群管理员权限
subjects:
- kind: ServiceAccount
name: admin-user
namespace: kube-system
应用配置:
kubectl apply -f admin-user.yaml
生成 Token
TOKEN=$(kubectl create token admin-user -n kube-system)
echo $TOKEN # 保存此 Token,后续登录需使用
通过 NodePort 访问
https://<节点IP>:30001