【问题标题】:Cannot read properties of undefined (reading 'KubeConfig') while using library @kubernetes/client-nde使用库@kubernetes/client-nde 时无法读取未定义的属性(读取“KubeConfig”)
【发布时间】:2022-03-17 05:07:35
【问题描述】:

我正在开发一个 NextJS 项目来创建一个 Kubernetes 作业。为了在 minikube 上创建作业,我使用了通常在启动 minikube 时生成的 config.yaml。所以我使用同一个文件来连接 Kubernetes API。 现在要与 kubernetes(minikube) 建立连接,我使用以下代码:

import k8s from "@kubernetes/client-node";

let kubeAPI = null;

const createKubeAPI = async () => {
  const kc = new k8s.KubeConfig();
  const path = "../config/k8sConfig.yaml";
  console.log(path);
  kc.loadFromFile(path);

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

  return k8sApi;
};

export const get = () => kubeAPI;

export const create = async () => {
  kubeAPI = await createKubeAPI();
};

在另一个 .js 文件中,通过使用上面代码中创建的函数创建一个新作业或显示正在运行的作业。

但是当运行上面的代码时,它显示错误。完整的错误如下所示:

event - compiled client and server successfully in 7.4s (224 modules)
null
error - utils\kube-utils\kubeClient.js (6:17) @ createKubeAPI
TypeError: Cannot read properties of undefined (reading 'KubeConfig')
  4 | 
  5 | const createKubeAPI = async () => {
> 6 |   const kc = new k8s.KubeConfig();
    |                 ^
  7 |   // kc.loadFromDefault();
  8 |   const path = "../config/k8sConfig.yaml";
  9 |   console.log(path);

有人可以帮助我或指导我吗,我在这里做错了什么?

【问题讨论】:

    标签: javascript kubernetes next.js


    【解决方案1】:

    好像没有默认导出,所以在使用 ES6 模块导入时,需要使用命名导入:

    import { KubeConfig, CoreV1Api } from '@kubernetes/client-node';
    

    或导入所有内容:

    import * as k8s from '@kubernetes/client-node';
    
    new k8s.KubeConfig();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-15
      • 1970-01-01
      • 2023-03-11
      • 2022-01-15
      • 2021-12-31
      • 2021-12-13
      • 2021-11-28
      • 2021-11-15
      相关资源
      最近更新 更多