Настройка шифрования трафика между узлами кластера
Чтобы настроить шифрование трафика между узлами кластера, вы можете включить использование протокола WireGuard для сетевого плагина Calico. После этого плагин начнет создавать защищенные туннели между узлами кластера.
|
| Инструкции по устранению типичных проблем при работе WireGuard приведены в разделе Устранение проблем при эксплуатации системы. |
Включение шифрования трафика
Чтобы включить шифрование трафика между узлами кластера, выполните следующие действия:
-
Убедитесь что на всех узлах кластера открыт порт 51820.
-
Подключитесь к терминалу master-узла кластера.
-
Чтобы отслеживать статус WireGuard, установите утилиту wg с помощью менеджера пакетов вашей операционной системы, например:
sudo dnf install -y yq wireguard-tools -
Включите параметр
wireguardEnabledв ресурсе FelixConfiguration, выполнив следующую команду:kubectl patch felixconfiguration default --type='merge' -p '{"spec":{"wireguardEnabled":true}}' -
Убедитесь, что шифрование трафика между узлами кластера включено:
-
Проверьте, что в информации об узлах Calico появилось поле
wireguardPublicKey:for node in $(kubectl get nodes -o yaml| yq '.items[].metadata.name'); do echo ">>> $node"; calicoctl get node $node -o yaml | grep wireguardPublicKey; done -
Проверьте, что утилита wg возвращает информацию о конфигурации, с помощью следующих команд:
sudo wg showsudo wg showconf wireguard.cali
-
Обновление ключей WireGuard
В Calico процесс обновления ключей WireGuard полностью автоматизирован и не требует ручных действий. Он встроен в работу компонента Felix на каждом узле кластера.
Обновление ключей выполняется следующим образом:
-
Генерация новой пары ключей: компонент Felix периодически генерирует новую локальную пару ключей WireGuard (приватный и публичный ключи) на каждом узле кластера. Частота этой ротации не документирована как настраиваемый параметр и определяется внутренней логикой Calico.
-
Размещение публичного ключа: после генерации нового ключа Felix автоматически обновляет статус своего узла (node resource) в Kubernetes API, сохраняя в аннотации или поле
.statusсвой новый публичный ключ WireGuard. -
Обнаружение и применение: Felix постоянно отслеживает изменения в статусах всех узлов. Когда он обнаруживает, что у соседнего узла появился новый публичный ключ, он немедленно обновляет конфигурацию своего локального WireGuard-интерфейса (
wireguard.cali), добавляя или заменяя ключ для соответствующего пира (peer).
Таким образом процесс смены ключей происходит без разрыва существующих соединений, так как WireGuard поддерживает несколько ключей одновременно в течение короткого переходного периода.
Была ли полезна эта страница?