gpt4 book ai didi

kubernetes - 如何使用rest api访问kubernetes中的命名空间?

转载 作者:行者123 更新时间:2023-12-02 12:16:09 25 4
gpt4 key购买 nike

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

我正在使用 postman 。我将重复这些步骤:

  • 创建用户并授予集群管理员权限:
  • kubectl create serviceaccount exampleuser
  • 使用集群角色 cluster-admin 为我们的用户创建角色绑定(bind):
  • kubectl create rolebinding <nameofrolebinding> --clusterrole cluster-admin
    --serviceaccount default:exampleuser
  • 使用以下命令检查角色绑定(bind):
  • kubectl describe rolebinding <nameofrolebinding>
  • 现在使用:
  • kubectl describe serviceaccount exampleuser
    kubectl describe secret exampleuser-xxxx-xxxx

    我将使用我在这里得到的 token 来验证 postman 。
    GET https://<ipofserver>:port/api/v1/namespace

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

    列出集群中所有命名空间的预期结果。像 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”clusterrole,但仍然出现与身份验证相关的错误。
    请帮忙。

    最佳答案

    您应该使用 clusterrolebinding而不是 rolebinding :

    kubectl create clusterrolebinding <nameofrolebinding> --clusterrole cluster-admin --serviceaccount default:exampleuser
    RoleBinding表示对命名空间资源的权限,但 namespace不是 namespaced资源,可以通过 kubectl api-resouces查看.

    更多详情请访问 rolebinding-and-clusterrolebinding :

    Permissions can be granted within a namespace with a RoleBinding, or cluster-wide with a ClusterRoleBinding

    关于kubernetes - 如何使用rest api访问kubernetes中的命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56250290/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com