You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes Dashboard 1.7.1设View角色仍可操作,如何实现只读访问?

解决Kubernetes Dashboard 1.7.1只读模式配置问题

我之前也碰到过一模一样的情况——明明给Dashboard绑定了view集群角色,结果还是能执行删除、编辑这类写操作。后来发现问题出在两个地方:一是Dashboard默认没开启强制只读的启动参数,二是可能残留了高权限的绑定关系。下面是具体的解决步骤:

1. 清理多余的权限绑定

首先得确认Dashboard用的ServiceAccount(默认是kubernetes-dashboard)有没有绑定其他高权限角色:

kubectl get clusterrolebindings | grep kubernetes-dashboard

如果输出里有edit、admin这类角色的绑定,直接删掉:

kubectl delete clusterrolebinding <多余的绑定名称>

然后确保只保留和view角色的绑定:

kubectl create clusterrolebinding kubernetes-dashboard-view --clusterrole=view --serviceaccount=kube-system:kubernetes-dashboard

2. 修改Deployment添加只读启动参数

Dashboard 1.7.1支持通过--readonly启动参数强制禁用所有写操作,这个参数会直接隐藏删除、编辑、缩放这些操作按钮,同时拦截写请求:

  1. 编辑Dashboard的Deployment:
kubectl edit deployment kubernetes-dashboard -n kube-system
  1. 在容器的args列表里新增--readonly参数,修改后片段如下:
spec:
  template:
    spec:
      containers:
      - args:
        - --auto-generate-certificates
        - --readonly  # 新增这一行开启只读模式
        image: kubernetesui/dashboard:v1.7.1
        # 其余配置不变
  1. 保存退出后,Deployment会自动重启Pod,等Pod就绪即可:
kubectl get pods -n kube-system | grep kubernetes-dashboard

3. 验证只读效果

重新登录Dashboard后,你会发现:

  • Delete、Scale、Edit YAML这些操作按钮全部消失
  • 仅能查看资源详情、查看日志,无法进行任何修改类操作

如果还是有异常,排查下是否存在命名空间级别的RoleBinding给了Dashboard额外权限:

kubectl get rolebindings -A | grep kubernetes-dashboard

如果有这类绑定,直接删除即可。

内容的提问来源于stack exchange,提问作者Anita Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:24:49