你遇到的错误消息表明,在 kube-system
命名空间中的 traefik
发行版上,之前的 Helm 操作(安装、升级或回滚)仍在进行中,这阻止了你的 helm upgrade
命令完成。此外,还有关于 Kubernetes 配置文件权限不安全的警告,我们也可以解决这个问题。让我们一步一步地解决这个问题。
第一步:诊断“操作进行中”问题
Helm 跟踪发行版的状态,如果之前的操作没有正确完成(例如,由于超时、崩溃或中断),它可能会使发行版处于挂起状态。要解决这个问题:
-
检查 Traefik 发行版的状态:
运行以下命令以查看traefik
发行版的当前状态:helm status traefik -n kube-system
查看输出中的
STATUS
字段。如果它显示pending-upgrade
、pending-install
或pending-rollback
,这就确认了操作未完成。 -
查看 Helm 历史记录:
检查traefik
发行版的历史记录,以查看尝试过的操作:helm history traefik -n kube-system
这将显示带有状态(例如,
superseded
、deployed
或failed
)的修订列表。注意修订号和状态。 -
解决挂起的操作:
如果操作卡住了,你可以尝试回滚或清理它:-
选项 1:回滚到上一个成功的修订版:
如果历史记录显示之前有成功的部署(例如,修订版 2),回滚到它:helm rollback traefik 2 -n kube-system
将
2
替换为上一个工作状态的修订号。 -
选项 2:强制升级继续:
如果你确信挂起的操作已停止并希望覆盖它,使用--force
标志:helm upgrade traefik traefik/traefik -n kube-system -f traefik-values.yaml --force
这将尝试覆盖当前状态,尽管风险较大,可能会使资源处于不一致状态。
-
选项 3:删除并重新安装(最后手段):
如果上述方法都失败了,卸载发行版并重新安装它:helm uninstall traefik -n kube-system helm install traefik traefik/traefik -n kube-system -f traefik-values.yaml
-
-
重试升级:
一旦挂起的操作解决,重试你的原始命令:helm upgrade traefik traefik/traefik -n kube-system -f traefik-values.yaml