Ssl 将证书管理器证书移动到另一个Kubernetes群集
我正在将web服务从一个Kubernetes集群移动到另一个集群。我们的目标是在不中断服务的情况下做到这一点 这对于证书管理器和HTTP挑战来说很困难,因为新集群上的证书管理器只能在DNS入口指向该集群时检索证书。但是,如果我将DNS条目切换到新群集,则客户端可能会在生成有效证书之前与新群集通信。这就像鸡和蛋的问题Ssl 将证书管理器证书移动到另一个Kubernetes群集,ssl,kubernetes,cert-manager,Ssl,Kubernetes,Cert Manager,我正在将web服务从一个Kubernetes集群移动到另一个集群。我们的目标是在不中断服务的情况下做到这一点 这对于证书管理器和HTTP挑战来说很困难,因为新集群上的证书管理器只能在DNS入口指向该集群时检索证书。但是,如果我将DNS条目切换到新群集,则客户端可能会在生成有效证书之前与新群集通信。这就像鸡和蛋的问题 如何将证书管理器证书移动到新群集,以便在我进行DNS切换后它已经拥有证书?证书存储在Kubernetes secrets中。如果机密与入口对象匹配,证书管理器将拾取现有机密,而不是创
如何将证书管理器证书移动到新群集,以便在我进行DNS切换后它已经拥有证书?证书存储在Kubernetes secrets中。如果机密与入口对象匹配,证书管理器将拾取现有机密,而不是创建新的机密 因此,假设两个集群上的入口对象看起来相同,并且使用了相同的名称空间,那么复制机密就这么简单:
kubectl--context OLD_CLUSTER-n NAMESPACE get secret_NAME--output yaml\
|kubectl——上下文新集群-n命名空间应用-f-
- 将
和OLD_CLUSTER
替换为相应集群的kubectl上下文名称(请参见NEW_CLUSTER
)kubectl config get contexts
- 将
替换为存储证书的密钥的名称。该名称可以在入口中找到SECRET\u NAME
- 将
替换为您正在使用的实际名称空间名称空间
kubectl apply-f
在新集群中创建相同的资源
一旦入口在新集群上就位,您就可以使用openssl s_client
验证证书是否工作:
openssl s_客户端-连接群集\u IP:443-服务器名服务\u DNS\u名称
同样,相应地更换群集\u IP
和服务\u DNS\u名称