使用@ kubernetes / client-node NPM连接到K8S

时间:2019-06-14 10:42:19

标签: node.js npm kubernetes

官方@ kubernetes / client-node NPM的文档不存在。我只能搜索源代码并尝试理解这个概念。

我有这个简单的例子:

const k8s = require('@kubernetes/client-node');

const kc = new k8s.KubeConfig();
kc.loadFromDefault();

const k8sApi = kc.makeApiClient(k8s.CoreV1Api);

k8sApi.listNamespacedPod('default').then((res) => {
    console.log(res.body);
});

当我在主节点上运行此代码时,此方法有效。我无法在侦听端口8081的本地kubectl proxy上运行它。我可能应该以某种方式配置loadFromDefault。请举例说明。

1 个答案:

答案 0 :(得分:0)

kc.loadFromDefault();是正确的,应该足够。因此,如果没有任何其他参数的kubectl get pods在本地对您有效,则您提供的代码段也应适用。

通常,您无需执行任何端口转发即可到达Kubernetes主服务器,因此请仔细检查您的kubeconfig是否可以与kubectl一起使用而无需端口转发。如果不是,则您的kubeconfig可能不正确。本页提供有关kubeconfig文件的更多详细信息:https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/

如果kubectl get pods有效但您的代码段无效,请提供您得到的确切错误。