k8s JavaScript Client连接AWS EKS出现UNABLE_TO_VERIFY_LEAF_SIGNATURE错误
问题原因
UNABLE_TO_VERIFY_LEAF_SIGNATURE属于TLS证书校验失败错误,你当前的代码中声明cluster配置时,没有传入EKS集群的CA证书信息,k8s客户端无法验证EKS服务端返回的TLS证书合法性,因此抛出该错误。
解决方案
- 方案1:配置集群CA证书(推荐,生产可用)
你可以通过AWS控制台的EKS集群详情页,或者执行aws eks describe-cluster --name 你的集群名 --query "cluster.certificateAuthority.data"命令获取集群base64编码的CA证书,将它添加到cluster配置的certificateAuthorityData字段即可。
修改后的cluster配置示例:
const cluster = { name: 'NAME', server: 'SERVER', // 新增CA证书配置,值替换为你自己集群的base64 CA内容 certificateAuthorityData: 'LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0txxxxxx' };
如果你的CA证书存在本地文件中,也可以用caFile字段指定文件路径:
const cluster = { name: 'NAME', server: 'SERVER', caFile: '/path/to/your/eks-ca.pem' };
- 方案2:临时跳过TLS校验(仅本地测试使用,禁止生产环境使用)
如果你只是本地临时调试,可以在cluster配置中添加跳过证书校验的参数,直接跳过TLS验证:
const cluster = { name: 'NAME', server: 'SERVER', insecureSkipTLSVerify: true };
额外优化建议
如果你后续遇到exec认证相关的报错,可以将user.exec.apiVersion从client.authentication.k8s.io/v1alpha1替换为client.authentication.k8s.io/v1beta1,适配更高版本的aws cli和EKS集群。
内容的提问来源于stack exchange,提问作者Tharun K
相关产品推荐
相关产品推荐

