k8s dashboard 认证方式

本文详细介绍了Kubernetes Dashboard的两种认证方式:通过token和Kubeconfig文件进行认证。此外,还提供了如何创建拥有集群管理权限的ServiceAccount及RoleBinding的具体步骤,以及在不同浏览器上访问Dashboard的体验差异。

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

kubernetes-dashboard有两种认证方式,认证的是UserAccount, token认证和Kubeconfig文件的认证。

外网访问dashboard,目前只看到火狐支持设置可信任是可以刷出页面,Chrome 不行。

Kubeconfig 方式认证

# 创建一个访问 default命令空间的 serviceaccount 账号
cd /etc/kubernetes/pki
kubectl create serviceaccount def-ns-admin -n default

# 创建 rolebinding 把 def-ns-admin 与 admin 关联
kubectl create rolebinding def-ns-admin --clusterrole=admin --serviceaccount=default:def-ns-admin

 

 

token 方式认证

 

 

 

 

 

要获得管理集群的权限,新建admin-user-admin.rbac.yaml文件,内容如下

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kube-system
---
# Create ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kube-system

然后执行

 kubectl create -f admin-user-admin.rbac.yaml

admin-user-admin的token,记下这串token,等下登录的时候会使用,这个token默认是永久的。

 kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')

 

参考k8s中文文档

http://docs.kubernetes.org.cn/

### 在 Kubernetes 中部署 k8s Dashboard 要在 Kubernetes (k8s) 集群中成功部署 Dashboard 可视化面板,可以按照以下方法操作: #### 1. 确认版本兼容性 在开始之前,请确认所使用的 Kubernetes 和 Dashboard 的版本是相互兼容的。例如,在本案例中提到的是 Kubernetes v1.22.5 对应 Dashboard v2.5.0[^1]。 #### 2. 安装 Kubernetes Dashboard 可以通过官方 YAML 文件来安装 Dashboard。执行以下命令下载并应用配置文件: ```bash kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml ``` 这一步会创建必要的资源对象,包括 Deployment、ServiceAccount、ClusterRoleBinding 等[^2]。 #### 3. 创建管理员用户和服务账户 为了安全访问 Dashboard,建议创建一个新的服务账户以及绑定相应的权限角色。以下是 `dashboard-adminuser.yaml` 的内容示例: ```yaml apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kubernetes-dashboard --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: admin-user roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: admin-user namespace: kubernetes-dashboard ``` 通过以下命令将其应用于集群: ```bash kubectl apply -f dashboard-adminuser.yaml ``` 该步骤确保新创建的服务账户拥有足够的权限去管理和监控整个集群的状态[^3]。 #### 4. 查看 Pod 运行状态 一旦完成上述设置,可通过以下指令验证 Dashboard 是否正常启动: ```bash kubectl get po -n kubernetes-dashboard ``` 如果一切顺利,则应该看到两个 Pods 均处于 Running 状态,类似于这样的输出结果: ``` NAME READY STATUS RESTARTS AGE dashboard-metrics-scraper-7d9bdfcdd-lqzgj 1/1 Running 0 1h kubernetes-dashboard-6dbbbdcff-pwvmt 1/1 Running 0 1h ``` #### 5. 访问 Dashboard UI 默认情况下,Dashboard 是通过 NodePort 方式暴露给外部网络访问的。查询其具体端口号可运行如下命令: ```bash kubectl get svc -n kubernetes-dashboard ``` 通常返回的结果可能像这样显示外网可用地址和端口映射关系: ``` NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes-dashboard NodePort 10.0.0.128 <none> 443:31000/TCP 1h ``` 此时即可打开浏览器输入形如 http(s)://<Node_IP>:31000 地址尝试连接到界面。 #### 6. 登录认证方式选择 当首次进入页面时会被提示多种登录选项之一——Token 或者 kubeconfig 文件形式的身份验证机制。对于前面定义好的自定义 SA 用户来说推荐采用 Token 方法获取令牌字符串作为凭证提交进去实现身份校验过程。 生成 token 使用下面这条语句提取出来供后续登陆环节调用: ```bash kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}') ``` --- ### 注意事项 - 如果遇到任何错误或者异常情况,请及时查阅日志排查问题所在位置;比如针对某个特定 pod 能够利用 `kubectl logs <pod_name>` 获取更多信息帮助诊断故障原因。 - 不要忘记考虑安全性因素,生产环境中应当启用 HTTPS 加密传输数据保护敏感信息不被窃取泄露风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值