使sa权限允许为k8s创建extensionsv1beta1版本的ingress对象以及更新ingress对象的权限该RBAC如何编写
要使sa具有创建和更新Ingress对象的权限,你可以创建一个名为ingress-admin的角色,并将其绑定到相应的ServiceAccount上。下面是一个可能的RBAC配置示例:
首先,创建一个名为ingress-admin.yaml的RBAC配置文件,并添加以下内容:
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: <your-namespace> # 替换为你的命名空间
name: ingress-admin
rules:
- apiGroups: ["extensions", "networking.k8s.io"] # 允许extensions/v1beta1和networking.k8s.io/v1版本的API组
resources: ["ingresses"] # 允许Ingress资源
verbs: ["create", "update"] # 允许创建和更新操作
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: ingress-admin-binding
namespace: <your-namespace> # 替换为你的命名空间
subjects:
- kind: ServiceAccount
name: <your-serviceaccount> # 替换为你的ServiceAccount名称
namespace: <your-namespace> # 替换为你的命名空间
roleRef:
kind: Role
name: ingress-admin
apiGroup: rbac.authorization.k8s.io
请将<your-namespace>替换为你的命名空间,将<your-serviceaccount>替换为你的ServiceAccount名称。
然后,通过运行以下命令来创建RBAC配置:
kubectl apply -f ingress-admin.yaml
这将创建一个名为ingress-admin的角色,并将其绑定到指定的ServiceAccount上。
现在,该ServiceAccount将具有创建和更新Ingress对象的权限。你可以使用该ServiceAccount创建或更新Ingress对象,例如:
kubectl create -f ingress.yaml --as=system:serviceaccount:<your-namespace>:<your-serviceaccount>
kubectl apply -f ingress.yaml --as=system:serviceaccount:<your-namespace>:<your-serviceaccount>
确保将<your-namespace>和<your-serviceaccount>替换为正确的值。
希望这可以帮助到你
原文地址: https://www.cveoy.top/t/topic/iDoa 著作权归作者所有。请勿转载和采集!