平台需求
叢集節點上的核心模組需求
無論 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 | Ambient 資料平面模式和使用 TPROXY 攔截(預設)的 Sidecar 資料平面模式需要 |
xt_conntrack | |
xt_mark | Ambient 資料平面模式和使用 TPROXY 攔截(預設)的 Sidecar 資料平面模式需要 |
xt_owner | |
xt_tcpudp | |
xt_multiport | |
ip_set | Ambient 資料平面模式需要 |
以下額外模組由以上列出的模組使用,也應載入到叢集節點上
模組 | 備註 |
---|---|
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 | Ambient 資料平面模式需要 |
雖然不常見,但使用自訂或非標準 Linux 核心或 Linux 發行版可能會導致主機上無法使用上述列出的特定模組,或者 iptables
無法自動載入這些模組的情況。例如,此 selinux 問題
描述了在某些 RHEL 版本中,selinux
設定可能會阻止自動載入上述某些核心模組的情況。
有關執行基於 iptables
設定的特定 Istio 元件的更多詳細資訊,請參閱相關的資料平面模式文件。