使用 kubectl 创建 Rancher API 密钥

使用 kubectl 创建 Rancher API 密钥

获得了对 kubernetes 集群的访问权限,但没有 API 密钥,如何以编程方式为 rancher 服务器创建 API 密钥?

方法在此处的文档中描述需要密码登录网络浏览器。我希望通过编程获得相同的结果。鉴于所有状态都应该在 etcd 上,理论上应该可以通过 kubectl 实现。

答案1

我找到了一种可以使它工作的方法:

创建一个 JSON 文件来定义令牌(即token.json):

{
  "apiVersion": "management.cattle.io/v3",
  "authProvider": "local",
  "current": false,
  "description": <enter description>,
  "expired": false,
  "expiresAt": "",
  "isDerived": true,
  "kind": "Token",
  "metadata": {
    "labels": {
      "authn.management.cattle.io/token-userId": <enter user id>,
      "cattle.io/creator": "kubectl"
    },
    "name": <enter a token id>,
  },
  "token": <enter token>,
  "ttl": 0,
  "userId": <enter user id>,
}

令牌 ID 可以是任何唯一的字符串,用于为令牌命名。对于用户 ID,请选择此令牌所属的用户。(使用 查看用户列表kubectl get users -n cattle-system)。

kubectl apply -f token.json

相关内容