K8S 怎么设置 权限 ro
时间: 2024-04-30 19:24:35 浏览: 20
要将 Kubernetes 集群中的权限设置为只读 (Read-Only, ro),可以执行以下步骤:
1. 创建一个只读的 ServiceAccount,如:
```
apiVersion: v1
kind: ServiceAccount
metadata:
name: readonly
namespace: default
```
2. 创建一个 Role,授予只读权限,如:
```
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: readonly
rules:
- apiGroups: [""]
resources: ["pods", "services", "configmaps", "secrets", "ingresses"]
verbs: ["get", "watch", "list"]
```
上述 Role 授予了对 Pods、Services、ConfigMaps、Secrets 和 Ingresses 资源的只读权限。
3. 将 Role 绑定到 ServiceAccount 上,如:
```
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: readonly
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: readonly
subjects:
- kind: ServiceAccount
name: readonly
namespace: default
```
上述 RoleBinding 将 Role 绑定到名为 `readonly` 的 ServiceAccount 上。
完成上述步骤后,就可以使用 `readonly` ServiceAccount 访问 Kubernetes 集群,并只能执行只读操作。例如,可以使用 `kubectl` 命令以 `readonly` ServiceAccount 身份获取 Pod 列表:
```
kubectl get pods --namespace=default --as=system:serviceaccount:default:readonly
```