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