如何使用 kubernetes-client 加载 kubernetes 配置。谷歌云

Gus*_*s G 2 node.js google-cloud-platform kubernetes

我有 TS 应用程序,它使用 kubernetes-client 库连接到 Google Cloud 中的 kubernetes。

import { KubeConfig, CoreV1Api } from "@kubernetes/client-node";
const kc = new KubeConfig();
kc.loadFromDefault();
const kbsCoreApi = kc.makeApiClient(CoreV1Api);
Run Code Online (Sandbox Code Playgroud)

在本地运行时效果很好,但是当我对其进行 dockerize 时,由于不知道如何加载配置而无法工作。我尝试创建一个配置文件并使用“kc.loadFromFile('~/some/path')”加载它,但似乎我缺少一些东西,它给了我一个 HTTP 错误。这是我的配置文件。

    {
  "kind": "Config",
  "apiVersion": "v1",
  "clusters": [
    {
      "name": "cluster1",
      "cluster": {
        "certificate-authority-data": "cert-data",
        "server": "https://128.1.1.2"
      }
    }
  ],
  "users": [
    {
      "name": "cluster1",
      "user": {
        "password": "myPassword",
        "usernmae": "myUsername"
      }
    }
  ],
  "contexts": [
    {
      "name": "cluster1",
      "context": {
        "cluster": "cluster1",
        "user": "cluster1"
      }
    }
  ],
  "current-context": "cluster1"
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*nas 6

使用kc.loadFromCluster();而不是kc.loadFromDefault();代码中使用的。

查看集群内示例

当使用集群内身份验证启动客户端时,它将使用ServiceAccount令牌/var/run/secrets/kubernetes.io/serviceaccount

另请确保此 ServiceAccount 具有对客户端代码使用的资源操作的 RBAC 权限。但你应该能够得到正确的错误消息,除非。

  • 嗨乔纳斯,你非常有帮助。这是授权问题,需要创建集群角色绑定来绑定我的角色(RBAC)。就是这样,我将您的答案标记为已回答。谢谢。 (2认同)