如何将域名添加到 k3s 证书

如何将域名添加到 k3s 证书

当尝试访问在另一台机器上运行的 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 提供。

相关内容