Вимоги до платформи

Вимоги до модуля ядра на вузлах кластера

Незалежно від режиму панелі даних 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.

Чи була ця інформація корисною?
Чи є у вас пропозиції щодо покращення?

Дякуємо за ваш відгук!