平台要求

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

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

作为参考,以下列出了 Istio 正确运行所需的所有与 iptables 相关的内核模块。

模块备注
br_netfilter
ip6table_mangle仅 IPv6/双栈集群需要
ip6table_nat仅 IPv6/双栈集群需要
ip6table_raw仅 IPv6/双栈集群需要
iptable_mangle
iptable_nat
iptable_raw仅在 Sidecar 模式下进行 DNS 拦截时需要
xt_REDIRECT
xt_connmark环境数据平面模式和带有 TPROXY 拦截(默认)的 Sidecar 数据平面模式需要
xt_conntrack
xt_mark环境数据平面模式和带有 TPROXY 拦截(默认)的 Sidecar 数据平面模式需要
xt_owner
xt_tcpudp
xt_multiport
ip_set环境数据平面模式需要

以下其他模块由上面列出的模块使用,也应该加载到集群节点上。

模块备注
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_ip环境数据平面模式需要

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

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

这些信息是否有用?
您是否有任何改进建议?

感谢您的反馈!