【问题标题】:how to access namespaces in kubernetes using rest api?如何使用rest api访问kubernetes中的命名空间?
【发布时间】:2019-10-08 13:21:27
【问题描述】:

我无法使用 rest api 获取命名空间列表,而 rest 端点是 https://<localhost>:8001/api/v1/namespaces

使用this kubernetes document

我正在使用邮递员。我将重复这些步骤:

  1. 创建用户并授予集群管理员权限:

kubectl create serviceaccount exampleuser

  1. 使用集群角色 cluster-admin 为我们的用户创建了角色绑定:

kubectl create rolebinding <nameofrolebinding> --clusterrole cluster-admin --serviceaccount default:exampleuser

  1. 检查角色绑定使用:

kubectl describe rolebinding &lt;nameofrolebinding&gt;

  1. 现在使用:

kubectl describe serviceaccount exampleuser kubectl describe secret exampleuser-xxxx-xxxx

我将使用我在这里得到的令牌来验证邮递员。

GET https://<ipofserver>:port/api/v1/namespace

使用不记名令牌进行身份验证。

列出集群中所有命名空间的预期结果。喜欢 kubectl get namespaces。但收到如下警告。

{
    "kind": "Status",
    "apiVersion": "v1",
    "metadata": {},
    "status": "Failure",
    "message": "namespaces is forbidden: User \"system:serviceaccount:default:exampleuser\" cannot list resource \"namespaces\" in API group \"\" at the cluster scope",
    "reason": "Forbidden",
    "details": {
        "kind": "namespaces"
    },
    "code": 403
}

我已经为用户使用了“cluster-admin”集群角色,但仍然收到与身份验证相关的错误。 请帮忙。

【问题讨论】:

    标签: kubernetes kubernetes-apiserver


    【解决方案1】:

    你应该使用clusterrolebinding 而不是rolebinding

    kubectl create clusterrolebinding <nameofrolebinding> --clusterrole cluster-admin --serviceaccount default:exampleuser
    

    RoleBinding 表示对命名空间资源的权限,但namespace 不是namespaced 资源,您可以通过kubectl api-resouces 进行检查。

    更多详情rolebinding-and-clusterrolebinding

    可以使用 RoleBinding 在命名空间内授予权限,也可以使用 ClusterRoleBinding 在集群范围内授予权限

    【讨论】:

      【解决方案2】:

      所以问题不是使用 rolebinding ,我需要使用 clusterrolebinding 检查下面

      kubectl create rolebinding nameofrolebinding --clusterrole cluster-admin --serviceaccount default:exampleuser

      kubectl create clusterrolebinding nameofrolebinding --clusterrole cluster-admin --serviceaccount default:exampleuser

      rolebinding 范围由 namespaceclusterrolebinding 范围是整个cluster

      要使用 api/v1/namespaces,我们需要使用 clusterrolebinding

      【讨论】:

        猜你喜欢
        • 2021-05-16
        • 2019-05-17
        • 1970-01-01
        • 1970-01-01
        • 2022-11-23
        • 1970-01-01
        • 1970-01-01
        • 2018-12-11
        • 1970-01-01
        相关资源
        最近更新 更多