Istio 服务网格加载项次要修订升级故障排除
本文讨论 Microsoft Azure Kubernetes 服务 (AKS) 中 Istio 服务网格加载项的次要修订升级和回滚过程中的故障排除方案和限制。
注意
Istio 使用术语“revisions”来实现 Canary 升级过程并区分版本。 每个修订指定 (写为 x-y) 对应于 major.minor 版本指定 (x。y) 。 可以控制控制平面修订,但不能控制修订带内的特定修补程序版本。
先决条件
Kubernetes kubectl 工具或用于连接到群集的类似工具。 若要使用 Azure CLI 安装 kubectl,请运行 az aks install-cli 命令。
故障排除矩阵
下表列出了各种问题以及这些问题的不同方案和解决方案。
应用场景 | 问题 | 解决方案 |
---|---|---|
数据平面工作负载从网格中删除。 | 在完成或回滚升级之前,数据平面和控制平面修订不对应。 | 请按照下列步骤操作:
|
控制平面 Pod 处于挂起状态。 | Pod 缺少容量。 | 通过运行 kubectl describe 命令来验证 Pod 的状态。 如果容量是问题所在,则可以纵向扩展群集以添加另一个节点。 有关详细信息,请参阅手动缩放 Azure Kubernetes 服务 (AKS) 群集中的节点计数。 |
az aks mesh get-upgrades 命令不返回任何可用的升级。 | 最新的 Istio 修订版可能与当前 AKS 群集版本不兼容。 | 可以使用 az aks mesh get-revisions 命令来发现是否存在较新的 Istio 修订版。 输出包括每个 Istio 修订版的兼容群集版本列表。 因此,可以确定是否需要进行群集升级。 |
注意
为了避免意外行为和损坏的功能,并确保收到安全漏洞的更新,我们强烈建议升级到受支持的最新 AKS 版本 和 Istio 加载项修订版。 请记住,加载项修订版也应在给定 AKS 群集支持的 Kubernetes 版本范围内。 如 Istio 升级文章的 次要修订升级 部分所强调,可以运行 az aks mesh get-revisions
和 az aks mesh get-upgrades
命令来了解可用的加载项修订、升级和兼容性信息。
限制
不允许在 canary 回滚过程) 外部降级到较旧的修订 (。
仅当 AKS 不再支持当前修订版和下一个升级修订版时,才允许从一个修订跳过到非连续修订。 此时,唯一可用的升级是受支持的最低版本。
Istio
sidecar.istio.io/inject
标签不会为 Istio 加载项启用挎斗注入。 在 canary 升级期间标记istio.io/rev
和重新标记命名空间时,必须使用 标签。标记必须在命名空间级别发生,而不是在每个部署级别进行。 如果希望能够单独滚动更新 Pod,可以选择重启单个部署,而不是使用 Pod 标记。
如果使用 Istio 加载项共享 MeshConfig,则必须先将 MeshConfig 设置复制或传输到新的 ConfigMap,然后再执行 Canary 升级。 有关详细信息,请参阅 网格配置和升级。
Istio 加载项按修订版部署 Istio 入口网关 Pod 和部署。 如果要执行 Canary 升级 并在群集中安装了两个控制平面修订版,则可能需要对跨两个修订版的多个入口网关 Pod 进行故障排除。
参考
第三方信息免责声明
本文中提到的第三方产品由 Microsoft 以外的其他公司提供。 Microsoft 不对这些产品的性能或可靠性提供任何明示或暗示性担保。
第三方联系人免责声明
Microsoft 提供第三方联系信息,帮助你查找有关本主题的其他信息。 该联系信息如有更改,恕不另行通知。 Microsoft 不保证第三方联系信息的准确性。
联系我们寻求帮助
如果你有任何疑问或需要帮助,请创建支持请求或联系 Azure 社区支持。 还可以向 Azure 反馈社区提交产品反馈。