Istio HELM安装1.4.3转istioctl升级1.4.10 migrate命令报错咨询
问题解答
1. 命令是否执行成功?
命令执行失败。你看到的proto: tag has too few fields: "-"是Istio 1.4.x版本istioctl的已知问题,该版本的manifest migrate命令对带注释、特殊字段定义的Helm values文件兼容性很差,解析时会触发proto序列化错误。另外你两次执行命令都重定向输出到同一个istio-migrate.yaml,即使没有报错,第一次的输出也会被第二次完全覆盖,本身操作逻辑也有问题。
2. 若执行成功,升级时应该指定哪个文件作为-f参数?
该场景不成立。如果是正常迁移成功的情况,你需要先将所有用到的Helm values(默认values.yaml、values-istio-sds-auth.yaml、kiali.enabled=true配置)合并为单个values文件再做迁移,最终指定合并后生成的迁移yaml作为-f参数即可,不能直接用两次覆盖输出的文件。
3. 若执行失败,如何正确生成所需的manifest文件?
推荐两种可行方案:
方案1:直接用1.4.10版本istioctl生成配置(优先选)
Istio 1.4.10已经修复了proto解析的相关bug,不需要用1.4.3的istioctl做迁移,直接切换到1.4.10的安装目录,执行以下命令生成适配你原有配置的manifest:
./bin/istioctl manifest generate --set values.kiali.enabled=true --values <你1.4.3版本用的values-istio-sds-auth.yaml的完整路径> > istio-1.4.10-manifest.yaml
如果要直接走升级流程,也可以直接用upgrade命令传参,不需要提前生成manifest:
./bin/istioctl upgrade --set values.kiali.enabled=true --values <你1.4.3版本用的values-istio-sds-auth.yaml的完整路径>
方案2:清理values文件后再执行migrate
如果你必须用1.4.3的istioctl做迁移,先把用到的所有values文件里的注释全部删除,再合并为单个merged-values.yaml(注意去重,避免后定义的字段覆盖前序配置),再执行迁移命令:
./bin/istioctl manifest migrate merged-values.yaml > istio-migrate.yaml
内容的提问来源于stack exchange,提问作者Mitesh Gangaramani
相关产品推荐
相关产品推荐

