【问题标题】:ssl authentication for gcp kubernetes cluster is not workinggcp kubernetes 集群的 ssl 身份验证不起作用
【发布时间】:2018-12-03 16:38:47
【问题描述】:

出于自动化目的,我使用以下 API 生成了 kubernetes 配置文件。

request = service.projects().zones().clusters()
          .get(projectId=project_id, zone=zone, clusterId=cluster_id)

集群同时启用了基本和 ssl 配置,并且只有基本身份验证正常工作。当我将用户上下文从 admin 更改为 ca-user 时,出现以下错误。

来自服务器的错误(禁止):节点被禁止:用户“客户端”无法列出集群范围内的节点:未知用户“客户端”

生成的配置文件如下所示。

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: *************
    server: https://*******
  name: gke_demo-205812_us-central1-a_cluster-1
contexts:
- context:
    cluster: gke_demo-205812_us-central1-a_cluster-1
    user: ca-user
  name: gke_demo-205812_us-central1-a_cluster-1
current-context: gke_demo-205812_us-central1-a_cluster-1
kind: Config
preferences: {}
users:
- name: admin
  user:
    password: *****************
    username: admin
- name: ca-user
  user:
    client-certificate-data: ******************
    client-key-data: ************************ 

提前致谢。 :)

【问题讨论】:

    标签: kubernetes google-cloud-platform cloud containers


    【解决方案1】:

    运行此命令后尝试:

    kubectl create clusterrolebinding client-admin \
        --clusterrole=cluster-admin \
        --user=client
    

    您正在向该用户授予集群管理员权限。

    【讨论】:

    • 非常感谢。 Google 是否有任何理由不为 SSL 用户提供集群管理员角色,而是为基本身份验证用户提供集群管理员角色?
    • 你能澄清你的意思吗?不知道我是否理解你的问题。
    • 好的,在上面我使用 API 创建的配置文件中,为什么 SSL 用户(客户端)和基本身份验证用户(管理员)具有不同的权限。这两个用户都是由 GKE 创建的,如果我创建一个禁用基本身份验证的集群会发生什么?
    • 因为您可能在您的 IAM 下、在您的 GCP 控制台中拥有用户(管理员)作为项目所有者或编辑者,而用户(客户端)的权限较少。你能仔细检查一下吗?
    猜你喜欢
    • 2019-03-10
    • 2019-10-19
    • 1970-01-01
    • 2021-03-27
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多