【问题标题】:Spring Cloud Kubernetes: What are cluster-reader permissions?Spring Cloud Kubernetes:什么是集群读取器权限?
【发布时间】:2019-07-06 08:30:02
【问题描述】:

根据Spring Cloud Kubernetes docs,为了在启用 RBAC 的 Kubernetes 发行版中发现服务/pod:

您需要确保使用 spring-cloud-kubernetes 运行的 pod 可以访问 Kubernetes API。对于您分配给部署/pod 的任何服务帐户,您需要确保它具有正确的角色。例如,您可以根据您所在的项目将cluster-reader 权限添加到您的默认服务帐户。

为了发现服务/pod,cluster-reader 的权限是什么?

我收到的错误是:

io.fabric8.kubernetes.client.KubernetesClientException: Failure executing: GET at: https://x.x.x.x/api/v1/namespaces/jx-staging/services. 
Message: Forbidden!Configured service account doesn't have access. 
Service account may have been revoked. services is forbidden: 
User "system:serviceaccount:jx-staging:default" cannot list services in the namespace "jx-staging"

【问题讨论】:

    标签: kubernetes spring-cloud spring-cloud-kubernetes


    【解决方案1】:

    阅读 endpointsservices 似乎是 Spring Cloud Kubernetes 发现 pod 和服务的最低要求。

    示例将权限添加到default 命名空间中的default 服务帐户。

    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: cluster-read-role
    rules:
    - apiGroups:
      - ""
      resources:
      - endpoints
      - pods
      - services
      - configmaps
      verbs:
      - get
      - list
      - watch
    
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: cluster-read-rolebinding
    subjects:
    - kind: ServiceAccount
      name: default
      namespace: default
    roleRef:
      kind: ClusterRole
      name: cluster-read-role
      apiGroup: rbac.authorization.k8s.io
    

    【讨论】:

      【解决方案2】:

      Kubernetes 通常将角色分为两类:

      • 角色:特定于他们被授予的命名空间
      • ClusterRole:适用于整个集群,即适用于所有命名空间

      所以 Spring Cloud Kubernetes 文档的意思是,为了能够在所有命名空间中正确读取发现服务/pod,将与应用程序关联的 ServiceAccount 应该有一个 ClusterRole 允许它读取PodsServices

      This Kubernetes 文档的一部分(其中还包含很好的示例)是了解 Kubernetes RBAC 的必读内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-17
        • 2016-01-29
        • 1970-01-01
        • 1970-01-01
        • 2021-06-02
        • 1970-01-01
        • 2018-12-11
        • 1970-01-01
        相关资源
        最近更新 更多