要使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>替换为正确的值。

希望这可以帮助到你

使sa权限允许为k8s创建extensionsv1beta1版本的ingress对象以及更新ingress对象的权限该RBAC如何编写

原文地址: https://www.cveoy.top/t/topic/iDoa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录