UNABLE_TO_VERIFY_LEAF_SIGNATURE k8s Javascript 客户端

UNABLE_TO_VERIFY_LEAF_SIGNATURE k8s Javascript client

我正在尝试使用官方 k8s JavaScript Client 以编程方式连接到我的 AWS EKS 集群。我想尝试使用 loadFromOptions(),而不是 loadFromDefault()。因此,从库回购的README.md,我能够得出以下

const k8s = require('@kubernetes/client-node');
const kc = new k8s.KubeConfig();

const cluster = {
    name: 'NAME',
    server: 'SERVER',
};
const user = {
    name: 'NAME',
    exec: {
        apiVersion: 'client.authentication.k8s.io/v1alpha1',
        args: [
            '--region',
            'us-east-1',
            'eks',
            'get-token',
            '--cluster-name',
            'NAME',
        ],
        command: 'aws',
        env: [
            {
                name: 'AWS_PROFILE',
                value: 'NAME'
            }
        ]
    }
}
const context = {
    name: 'NAME',
    user: user.name,
    cluster: cluster.name,
};

kc.loadFromOptions({
    clusters: [cluster],
    users: [user],
    contexts: [context],
    currentContext: context.name,
});

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

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

但不幸的是,我遇到了这个错误,我哪里出错了?

错误消息抱怨它不知道集群的证书颁发者。
您的 cluster 对象需要以下属性之一来指定证书颁发机构:

  • caFile:包含证书颁发机构的文件名
  • caData:证书颁发机构文件的 Base64 编码内容

根据 the AWS documentation,您应该能够将证书颁发机构检索为“为您的集群创建的 certificateAuthority.data”。