官方@ 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
。请举例说明。
答案 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
有效但您的代码段无效,请提供您得到的确切错误。