Kubernetes 从平原库伯内特斯迁移到赫尔姆,无需停机

Kubernetes 从平原库伯内特斯迁移到赫尔姆,无需停机,kubernetes,kubernetes-helm,Kubernetes,Kubernetes Helm,我在kubernetes集群中部署了几个应用程序。我将收据等作为yaml文件,并使用kubectl部署和应用所有内容 我决定迁移到helm,因为它的特性和避免在dev和prod之间复制代码(我可以使用变量等) 问题是:我的服务是AWS ELBs,据我所知,要将kubectl已经部署的东西迁移到helm,我需要删除它并与helm一起重新安装-这将破坏并重新创建我的ELBs,所以我需要更改DNS记录,等等。除此之外,我还需要停机-这不是真正需要的 我考虑过重命名旧的东西,用正确的名称创建新的东西,保

我在kubernetes集群中部署了几个应用程序。我将收据等作为yaml文件,并使用
kubectl
部署和应用所有内容

我决定迁移到helm,因为它的特性和避免在dev和prod之间复制代码(我可以使用变量等)

问题是:我的服务是AWS ELBs,据我所知,要将kubectl已经部署的东西迁移到helm,我需要删除它并与helm一起重新安装-这将破坏并重新创建我的ELBs,所以我需要更改DNS记录,等等。除此之外,我还需要停机-这不是真正需要的

我考虑过重命名旧的东西,用正确的名称创建新的东西,保留一个通用的标签在服务中使用——这样我可以创建一个新的,更改DNS记录,然后删除旧的东西——但显然kubernetes不允许重命名

另一个策略是启动一个新的集群——我真的不想这么做


还有其他选择吗?

一个设计合理的图表应该通过
.Release.Name
命名部署的资源。这样,您就可以将图表与现有软件并排部署。很可能您将能够并行创建大部分堆栈,然后更新图表外服务以指向图表内吊舱,这样您就可以定义图表内和图表外服务,并使用两个不同的ELB。如果您想摆脱图表外的服务,只需编辑DNS并让其传播,然后,一天后,周或月,您可以将其废弃,只留下图表。

是的,问题是我希望两个掌舵图表与以前部署的服务/部署/等具有相同的名称。。。所以,如果我
helm安装--name foo./Charts/foo
并且我已经有了一个名为foo的服务、部署等,它会崩溃,对吧?这就是为什么默认的helm名称是随机的,比如
funky penguin
,我会选择
-
prod myapps
(主要使用组合多个子图表的伞形图表)这样一来,就很容易有一个表外服务
mysvc1
,选择器硬编码为
app:prod-myapps-myapp1
,图表上的svc为
prod-myapps-myvc1
hmm,是的,问题是我们已经有了类似
foo
的一切,所以团队习惯于
kubectl获得pods-l app=foo
或just
| grep foo
。。。