无法对头盔进行任何操作

问题描述 投票:0回答:2

我在使用Kubernetes / helm时遇到种种问题,但是我真的很陌生,所以尽管花了一天时间来解决这个问题,但我不确定自己在做什么。

我有一个Pod处于CrashLoopBackOff情况,因为我在Dockerfile中输入了错误的端口号。当我执行kubectl -n dev get pods时,可以在崩溃循环中看到它。我试图用helm delete --purge emails杀死它,但出现错误Error: unknown flag: --purge。我尝试使用kubectl edit pod emails -n dev编辑图表,但收到一条错误消息,指出无法更改该字段。

但是我无法删除该广告连播,因此我不确定从何处去。我试过不带--purge标志,但出现错误Error: uninstall: Release not loaded: emails: release: not found。如果我尝试helm uninstall emails或几乎任何东西,我都会得到相同的结果。

为了解决问题,我相信这是因为将helm客户端升级到了v3.1.0版本,但pod是使用v2.11.0创建的。但是我不知道如何将客户端回滚到该版本。我已经通过curl -L https://git.io/get_helm.sh | bash -s -- --version v2.11.0下载了它,但无法运行helm init,所以我仍然使用v3.1.0

如果运行helm list,则会得到一个空列表。我有16个正在运行的Pod,可以通过kubectl -n dev get pods看到,但我似乎无法对其中任何一个进行任何操作。

这可能是因为我的掌舵客户端版本错误,如果是,我该如何将其回滚?

谢谢您的建议。

kubernetes kubernetes-helm
2个回答
1
投票

问题是您混合了头盔2和头盔3

此版本是由helm v2创建的,因此您需要使用helm v2删除它,helm v3将无法查看由helm v2创建的版本。

您可以执行以下操作

  1. 下载头盔v2,删除发行版(我通常在一个文件夹中同时拥有头盔2/3,将头盔v2重命名为头盔2)。
  2. 可选,您可以删除分till,因为头盔v3不再需要分till。只要确保没有头盔v2部署的其他版本
  3. 更新您的头盔图以使用正确的端口
  4. 使用头盔v3部署更新的图表

0
投票

EricZ的答案很重要,但仅是为了提供一些背景信息并推荐一些资源—首先,您可以找到当前v2版本here的二进制文件>。只需将其放在您的路径中,一切就应该与您发布的所有版本一样。

如上所述,问题是您尝试使用v3客户端1

查询Helm v2版本。但是,Helm v3的[[设计具有单独的发行版“存储”,从而可以滚动迁移工作负载。这就是为什么v3客户端不会“看到” v2版本,反之亦然的原因(例如,您可以在测试环境中将v2版本“转换”为v3,而已部署的版本仍在运行,请验证一切看起来是否良好) ,然后将流量转移到新版本并删除旧版本)。在迁移时,您可能会需要PATH中的两个版本-我只是[v0]将v2客户端升级为alias,所以`helm2 list)应该让我所有的v2版本都可以使用话虽这么说-没有什么可以阻止您像往常一样继续使用Helm v2。如果您已经有了一个运行v2架构的工作集群,那么在熟悉Kubernetes基础知识的同时,也许值得坚持一下。 (我刚刚与Helm的核心维护者之一开会,听起来Helm v2仍将在明年左右得到支持;因此您有时间。事实上,他们

recommend

是时候在生产关键型应用程序的开发集群上测试迁移了。)

当您准备迁移时...

我强烈建议您查看helm2

(由Helm核心团队维护的官方插件),该工具旨在将v2版本自动迁移到in简单的CLI界面。 YMMV,但对我来说效果很好。简而言之:Helm 2to3 plugin
希望这会有所帮助!


1

有关详细信息,请参阅“从头盔2起的更改”文档2to3。值得注意的是您的情况:
    现在,发布的范围仅限于部署它们的名称空间;要查看所有发行版,请使用$ helm plugin install https://github.com/helm/helm-2to3 # Note: the following commands can be also be run with the `--dry-run` # flag to preview their effects. $ helm 2to3 move config [...] [Move Config/confirm] Are you sure you want to move the v2 configuration? [y/N]: y 2020/02/18 23:02:08 Helm v2 configuration will be moved to Helm v3 configuration. [...] $ helm 2to3 convert some-helm2-release 2020/02/19 00:30:35 Release "some-helm2-release" will be converted from Helm v2 to Helm v3. 2020/02/19 00:30:35 [Helm 3] Release "some-helm2-release" will be created. [...]
  • 在Helm v3中无需here-因为v3客户端不再依赖helm list -A
  • 您注意到,[v0]现在在v3中为helm init;如果您想要保留“已删除”版本的v2功能,请使用tiller标志。
© www.soinside.com 2019 - 2024. All rights reserved.