永久替换 API 个服务器证书

Permanently replacing API server certificates

我有 microK8S 集群,并在我的域中公开 API 服务器。 /var/snap/microk8s/1079/certs 中的 server.crtserver.key 需要替换为包含我的域的那些。 否则,正如预期的那样,我得到错误:

Unable to connect to the server: x509: certificate is valid for kubernetes, kubernetes.default, kubernetes.default.svc, kubernetes.default.svc.cluster, kubernetes.default.svc.cluster.local, not mydonaim.com

在cert-manager的帮助下,我制作了证书并替换了它们,我的系统运行良好。

问题:每次重启服务器,都会重新生成server.crtserver.key /var/snap/microk8s/1079/certs。我的自定义证书已删除,导致无法远程访问 API 服务器。 我怎样才能阻止系统一直这样做?

解决方法? 我应该将我的证书放在其他地方并使用这些证书的路径编辑配置文件,如 /var/snap/microk8s/1079/args/kube-controller-manager 吗?这些配置文件也会自动替换吗?

集群信息:

似乎有 an existing issue 描述了复制和修改 /var/snap/microk8s/current/certs/csr.conf.template 以包含生成的证书的任何额外 IP 或 DNS 条目

请注意 https://discuss.kubernetes.io/t/services-and-ports/11263/6 中提议的更新。在我的环境中 运行 需要以下命令:

sudo microk8s refresh-certs