Вимоги до платформи
Вимоги до модуля ядра на вузлах кластера
Незалежно від режиму панелі даних Istio, у контексті Kubernetes, Istio зазвичай вимагає, щоб вузли Kubernetes працювали на Linux-ядрах з підтримкою перехоплення та маршрутизації трафіку. Istio підтримує два бекенди для керування трафіком: iptables (стандартно) та nftables.
Більшість Linux-ядер, випущених за останнє десятиліття, включають вбудовану підтримку функцій, які використовує Istio — або як модулі ядра, які будуть автоматично завантажені за потреби, або вбудовані. Конкретні модулі ядра, які потрібні, залежать від того, який бекенд ви оберете.
Бекенд iptables
Під час використання бекенда iptables (стандартно) для коректної роботи Istio потрібні наступні модулі ядра:
Основні модулі iptables
| Модуль | Примітка |
|---|---|
br_netfilter | |
ip6table_mangle | Потрібен лише для кластерів IPv6/подвійний стек |
ip6table_nat | Потрібен лише для кластерів IPv6/подвійний стек |
ip6table_raw | Потрібен лише для кластерів IPv6/подвійний стек |
iptable_mangle | |
iptable_nat | |
iptable_raw | Потрібен лише для перехоплення DNS у режимі sidecar |
xt_REDIRECT | |
xt_connmark | Потрібен для режиму ambient dataplane та для режиму sidecar dataplane з перехопленням TPROXY (за замовчуванням) |
xt_conntrack | |
xt_CT | Потрібен для перехоплення DNS з бекендом iptables |
xt_mark | Потрібен для режиму ambient dataplane та для режиму sidecar dataplane з перехопленням TPROXY (стандартно) |
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 панелі даних |
Бекенд nftables
Фреймворк nftables є сучасною заміною iptables, що пропонує покращену продуктивність та гнучкість. Istio покладається на інструмент CLI nft для налаштування правил nftables. Бінарний файл nft повинен бути версії 1.0.1 або новішої, і він вимагає версію ядра Linux 5.13 або вище. Для коректної роботи CLI nft на хост-системі повинні бути доступні наступні модулі ядра.
| Модуль | Примітка |
|---|---|
nf_tables | Основний модуль nftables |
nf_conntrack | Потрібен для підтримки відстеження зʼєднань |
nft_ct | |
nf_defrag_ipv4 | |
nf_defrag_ipv6 | Потрібен лише для кластерів IPv6/подвійний стек |
nft_nat | |
nft_socket | |
nft_tproxy | |
nft_redir |
Проблеми з модулями ядра
Хоча це рідкість, використання власних або нестандартних ядер Linux або дистрибутивів Linux може призвести до сценаріїв, коли специфічні модулі, зазначені вище, не доступні на хості або не можуть бути автоматично завантажені. Наприклад, ця проблема selinux описує ситуацію в деяких версіях RHEL, де конфігурація selinux може перешкоджати автоматичному завантаженню деяких з вищезазначених модулів ядра.
Для отримання додаткової інформації про специфічні компоненти Istio, які виконують конфігурацію перехоплення та маршрутизації трафіку, див. відповідну документацію для режиму data plane.