Kubernetes 如何在gke中为用户提供名称空间访问权限?

Kubernetes 如何在gke中为用户提供名称空间访问权限?,kubernetes,google-cloud-platform,namespaces,google-kubernetes-engine,Kubernetes,Google Cloud Platform,Namespaces,Google Kubernetes Engine,我有一个带有多个名称空间的google kubernetes引擎集群。每个名称空间上都部署了不同的应用程序。是否可以只为用户提供对单个命名空间的完全访问权限?是的,Kubernetes有一个内置的RBAC系统,该系统与云IAM集成,因此您可以控制GCP用户对单个群集和命名空间的访问 创建Kubernetes角色 创建KubernetesRoleBinding 参考文献 您可以使用所选命名空间中的RoleBind将用户绑定到集群管理员角色。如集群管理中所述: 允许超级用户访问在任何资源上执行任

我有一个带有多个名称空间的google kubernetes引擎集群。每个名称空间上都部署了不同的应用程序。是否可以只为用户提供对单个命名空间的完全访问权限?

是的,Kubernetes有一个内置的RBAC系统,该系统与云IAM集成,因此您可以控制GCP用户对单个群集和命名空间的访问

  • 创建Kubernetes
    角色
  • 创建Kubernetes
    RoleBinding
  • 参考文献


    您可以使用所选命名空间中的RoleBind将用户绑定到集群管理员角色。如集群管理中所述:

    允许超级用户访问在任何资源上执行任何操作。什么时候 在ClusterRoleBinding中使用,它可以完全控制 群集中和所有命名空间中的资源。当用于 RoleBind,它可以完全控制系统中的所有资源 RoleBind的命名空间,包括命名空间本身

    例如:

    kind: RoleBinding
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: example
      namespace: yournamespace
    subjects:
    - kind: User
      name: example-user
      apiGroup: rbac.authorization.k8s.io
    roleRef:
      kind: ClusterRole
      name: cluster-admin
      apiGroup: rbac.authorization.k8s.io
    

    好。谢谢半路。IAM下授予用户的角色应该是什么,这样用户就可以完全访问一个名称空间(使用您提到的role和rolebinding),而不能在其他名称空间中列出POD?
    kind: RoleBinding
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: ROLE_NAME-binding
      namespace: YOUR_NAMESPACE
    subjects:
    # GCP user account
    - kind: User
      name: janedoe@example.com
    
    kind: RoleBinding
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: example
      namespace: yournamespace
    subjects:
    - kind: User
      name: example-user
      apiGroup: rbac.authorization.k8s.io
    roleRef:
      kind: ClusterRole
      name: cluster-admin
      apiGroup: rbac.authorization.k8s.io