Istio 1.13 升级说明

升级到 Istio 1.13.0 时需要考虑的重要变化。

Feb 11, 2022

当你从 Istio 1.12.x 升级到 Istio 1.13.0 时,你需要考虑这个页面上的变化。 这些注释详细说明了有意破坏与 Istio 1.13.0 的向后兼容性的更改。 这些注释还提到了在引入新行为同时保留向后兼容性的更改。 仅当新行为对 Istio 1.12.x 的用户而言是意外的时,才包括更改。

Health Probes 不再重复使用连接

使用 istio-agent 健康检查重写的健康检查现在将不会再重复使用探针的连接。 这种行为被改变以匹配 Kubernetes 的探测行为, 还可以提高使用短空闲超时的应用程序的探测可靠性。

因此,您的应用程序可能会看到更多来自探针的连接(但 HTTP 请求的数量相同)。 对于大多数应用程序,这不会有明显的不同。

如果您需要恢复到旧的设置,可以设置代理中的 ENABLE_PROBE_KEEPALIVE_CONNECTION=true 环境变量。

多集群秘钥身份验证更改

当创建 kubeconfig 文件以在多集群安装中启用端点发现 时,现在对配置中允许的身份验证方法进行了限制,以提高安全性。

两种身份验证方法输出但 istioctl create-remote-secret (oidctoken)不受影响。 因此,只有创建自定义 kubeconfig 文件的用户才会受到影响。

一个新的环境变量 PILOT_INSECURE_MULTICLUSTER_KUBECONFIG_OPTIONS,被添加到 Istiod 来启用已删除的方法。 例如,如果使用 exec 认证,则设置 PILOT_INSECURE_MULTICLUSTER_KUBECONFIG_OPTIONS=exec

iptables 对 22 端口捕获的变化

在以前的版本中,端口 22 被排除在 iptables 捕获之外。 这降低了在 VM 上使用 Istio 时被锁定在 VM 之外的风险。 这个配置被硬编码到 iptables 逻辑中,意味着没有办法捕获 22 号端口的流量。

iptables 逻辑现在在端口 22 上不再有特殊的逻辑。 相反,这个 istioctl x workload entry configure 命令将自动配置 ISTIO_LOCAL_EXCLUDE_PORTS 以包含端口 22。 这意味着 VM 用户会继续排除端口 22,然而 Kubernetes 用户现在将包含端口 22。

如果不希望出现这种行为,可以在 Kubernetes 中使用 traffic.sidecar.istio.io/excludeInboundPorts 注解明确选择该端口。