平台要求

集群节点上的 Linux 内核模块要求

无论 Istio 数据平面模式如何, 在 Kubernetes 上下文中,Istio 通常需要运行具有 iptables 支持的 Linux 内核的 Kubernetes 节点才能正常运行。 过去十年中发布的大多数 Linux 内核都包含对 Istio 默认使用的所有 iptables 功能的内置支持 - 要么作为需要时自动加载的内核模块,要么内置。

作为参考,下面列出了 Istio 正常运行所需的所有 iptables 相关内核模块:

模块备注
br_netfilter
ip6table_mangle仅适用于 IPv6/双栈集群
ip6table_nat仅适用于 IPv6/双栈集群
ip6table_raw仅适用于 IPv6/双栈集群
iptable_mangle
iptable_nat
iptable_raw仅需要 DNS 拦截
xt_REDIRECT
xt_connmarkAmbient 数据平面模式和带有 TPROXY 拦截的 Sidecar 数据平面模式需要(默认)
xt_conntrack
xt_markAmbient 数据平面模式和带有 TPROXY 拦截的 Sidecar 数据平面模式需要(默认)
xt_owner
xt_tcpudp
xt_multiport
ip_setAmbient 数据平面模式所需

以下更多模块由上述列出的模块使用,也应该加载到集群节点上:

模块备注
bridge
ip6_tables仅适用于 IPv6/双栈集群
ip_tables
nf_conntrack
nf_conntrack_ipv4
nf_conntrack_ipv6仅适用于 IPv6/双栈集群
nf_nat
nf_nat_ipv4
nf_nat_ipv6仅适用于 IPv6/双栈集群
nf_nat_redirect
x_tables
ip_set_hash_ipAmbient 数据平面模式所需

虽然不常见,但使用自定义或非标准 Linux 内核或 Linux 发行版可能会导致上面列出的特定模块在主机上不可用, 或者无法由 iptables 自动加载的情况。例如,此 selinux issues 描述了某些 RHEL 版本中的一种情况,其中 selinux 配置可能会阻止自动加载上面提到的一些内核模块。

有关执行基于 iptables 配置的特定 Istio 组件的更多详细信息,请参阅相关的数据平面模式文档。

这些信息有用吗?
您是否有更多建议和改进意见?

感谢您的反馈!