【问题标题】:Read-only ingress resources kubernetes user只读入口资源 kubernetes 用户
【发布时间】:2021-03-31 02:19:29
【问题描述】:

我正在尝试授予我命名空间中的默认服务帐户读取入口资源的能力。我希望能够读取集群的所有入口资源,这是否需要 ClusterRole?这是我一直在尝试的角色和绑定。 kubectl 命令kubectl auth can-i list ingress -n my-namespace --as=system:serviceaccount:my-namespace:default 也返回“no”

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: my-namespace
  name: my-ingress-reader
rules:
- apiGroups: ["", "networking.k8s.io", "networking", "extensions"] # "" indicates the core API group
  resources: ["ingress"]
  verbs: ["get", "watch", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: my-ingress-reader
  namespace: my-namespace
subjects:
- kind: ServiceAccount
  name: default
  namespace: my-namespace
roleRef:
  kind: Role
  name: my-ingress-reader
  apiGroup: rbac.authorization.k8s.io

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    您的 Role rules 使用了错误的 API 资源,即 resources: ["ingress"],它必须是 resources: ["ingresses"]

    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      namespace: my-namespace
      name: my-ingress-reader
    rules:
    - apiGroups: ["", "networking.k8s.io", "networking", "extensions"] # "" indicates the core API group
      resources: ["ingresses"]
      verbs: ["get", "watch", "list"]
    

    要检查正确的 api 资源,您可以使用以下命令

    root@controlplane:~# kubectl api-resources | grep -i ingress
    ingresses                         ing          extensions/v1beta1                     true         Ingress
    ingressclasses                                 networking.k8s.io/v1                   false        IngressClass
    ingresses                         ing          networking.k8s.io/v1                   true         Ingress
    

    【讨论】:

      猜你喜欢
      • 2019-07-22
      • 2017-04-30
      • 1970-01-01
      • 2020-01-23
      • 1970-01-01
      • 2021-11-20
      • 1970-01-01
      • 2018-07-09
      • 1970-01-01
      相关资源
      最近更新 更多