当尝试访问在另一台机器上运行的 k3s Kubernetes 集群时,我收到以下错误消息:
E0204 19:13:27.185678 8066 proxy_server.go:147]
Error while proxying request:
tls: failed to verify certificate:
x509: certificate is valid for kubernetes, kubernetes.default,
kubernetes.default.svc, kubernetes.default.svc.cluster.local,
localhost, node1, not node1.lan
node1
是 k3s 集群中作为主节点的机器的主机名。但是,我的 LAN 上的主机以 为后缀.lan
,因此node1
可以在 处使用node1.lan
。
我认为我收到上述错误是因为 k3s 生成的证书不包含 node1.lan。我想用也包含 node1.lan 的证书修改/替换该证书。
我已经尝试过了说明在 k8s 网站上有记录。但是,由于我使用的是 k3s 而不是 k8s,因此一些细节有所不同。
我是一个 k8s 业余爱好者,因此如果能得到任何指导我都会很感激。
答案1
错误信息表明k3s集群出示的证书对于域名无效节点1.lan。这可能是因为证书是为不同的域名生成的,例如kubernetes.默认.svc。因为您希望监控的 Kubernetes 集群证书中的主体名称与您在 Kubernetes 目标配置中设置的端点不同。
将 IP 放入kube 配置它工作得很好,按照这个博客更多详情,请参阅 Micro focus。
解决方法:1
使用自定义 CA 轮换证书有助于将域添加到 K3s 证书
根据此文档作者:K3s
- 要轮换自定义 CA 证书,请使用 k3s 证书rotate-ca 子命令。更新后的文件必须暂存到临时目录中,加载到数据存储中,并且必须在所有节点上重新启动 k3s 才能使用更新后的证书。
- 通过这样做,将生成所有集群证书(包括具有新域的服务器证书)。
- 要在整个集群中进行完整的证书管理,请使用自定义 CA 轮换。
解决方法:2
要将域添加到 k3s 证书,请按照以下步骤操作:
- 创建包含其他域的新证书
- 创建证书签名请求 (CSR) 并编辑 CSR 以包含域名。
- 提交 k3s 证书颁发机构,在 CSR 的帮助下进行签名
- 在所有节点上重启k3s服务,就可以访问k3s Kubernetes集群了,不会再出现错误信息
參閱设置你自己的 K3S 主集群更多信息由 BAS BREMER 提供。