Поддерживается настройка межкластерного соединения между кластерами с одинаковым сетевым режимом Kube-OVN, чтобы поды в кластерах могли взаимодействовать друг с другом. Cluster Interconnect Controller — это расширяемый компонент, предоставляемый Kube-OVN, который отвечает за сбор сетевой информации между разными кластерами и соединение сетей нескольких кластеров путем выдачи маршрутов.
CIDR подсетей разных кластеров не должны пересекаться.
Необходим набор машин, доступных по IP для kube-ovn-controller каждого кластера, для развертывания контроллеров межкластерного соединения.
Для каждого кластера должен существовать набор машин, доступных kube-ovn-controller по IP для межкластерного соединения, которые впоследствии будут использоваться в качестве шлюзовых узлов.
Эта функция доступна только для VPC по умолчанию, пользовательские VPC не могут использовать функцию межсоединения.
Доступны три метода развертывания: Deploy deployment (поддерживается в платформе с версии v3.16.0 и выше), Docker deployment и Containerd deployment.
Примечание: Этот метод развертывания поддерживается в платформе с версии v3.16.0 и выше.
Шаги выполнения
Выполните следующую команду на Master-узле кластера, чтобы получить скрипт установки install-ic-server.sh.
Откройте скрипт в текущем каталоге и измените параметры следующим образом.
Измените параметры на следующие:
Сохраните скрипт и выполните его следующей командой.
Выберите три и более узлов в любом кластере для развертывания Interconnected Controller. В этом примере подготовлено три узла.
Выберите любой узел в качестве Leader и выполните команды в соответствии с выбранным методом развертывания.
Примечание: Перед настройкой проверьте наличие каталога ovn в /etc
. Если его нет, создайте его командой mkdir /etc/ovn
.
Команды для Docker deployment
Примечание: Выполните команду docker images | grep ovn
, чтобы получить адрес образа Kube-OVN.
Команда для Leader-узла:
Команды для остальных двух узлов:
Команды для Containerd deployment
Примечание: Выполните команду crictl images | grep ovn
, чтобы получить адрес образа Kube-OVN.
Команда для Leader-узла:
Команды для остальных двух узлов:
На любом управляющем узле глобального кластера замените параметры согласно комментариям и выполните следующую команду для создания ресурса ConfigMap.
Примечание: Для корректной работы ConfigMap с именем ovn-ic в глобальном кластере не разрешается изменять. Если необходимо изменить параметры, удалите ConfigMap и корректно настройте его заново перед применением.
Добавление кластера с сетевым режимом Kube-OVN в межкластерное соединение.
Предварительные условия
Созданные подсети, ovn-default и подсети для присоединения в кластере не должны конфликтовать с сегментами других кластеров в группе межкластерного соединения.
Порядок действий
В левой навигационной панели нажмите Clusters > Cluster of clusters.
Нажмите на имя кластера, который нужно добавить в межкластерное соединение.
В правом верхнем углу нажмите Options > Cluster Interconnect.
Нажмите Join the cluster interconnect.
Выберите шлюзовый узел для кластера.
Нажмите Join.
Обновление информации о шлюзовых узлах кластера, которые уже присоединились к группе межкластерного соединения.
Порядок действий
В левой навигационной панели нажмите Clusters > Cluster of clusters.
Нажмите на имя кластера, для которого нужно обновить информацию о шлюзовом узле.
В правом верхнем углу нажмите Operations > Cluster Interconnect.
Нажмите Update Gateway Node для кластера, информацию о шлюзовом узле которого нужно обновить.
Повторно выберите шлюзовый узел для кластера.
Нажмите Update.
Кластер, который присоединился к группе межкластерного соединения, выходит из межкластерного соединения, при этом разрывается связь между подами этого кластера и подами внешних кластеров.
Порядок действий
В левой навигационной панели нажмите Clusters > Cluster of clusters.
Нажмите на имя кластера, который нужно вывести из эксплуатации.
В правом верхнем углу нажмите Options > Cluster Interconnect.
Нажмите Exit cluster interconnection для кластера, из которого хотите выйти.
Введите имя кластера корректно.
Нажмите Exit.
Если кластер удаляется без выхода из межкластерного соединения, на контроллере могут остаться некоторые остаточные данные. При попытке повторно создать кластер на этих узлах и присоединить его к межкластерному соединению могут возникать ошибки. Подробную информацию об ошибках можно посмотреть в логе /var/log/ovn/ovn-ic.log
контроллера (kube-ovn-controller). Некоторые сообщения об ошибках могут содержать:
Шаги выполнения
Выйдите из межкластерного соединения для кластера, который нужно присоединить.
Выполните скрипт очистки в контейнере или pod.
Скрипт очистки можно выполнить напрямую либо в контейнере ovn-ic-db, либо в pod ovn-ic-controller. Выберите один из следующих способов:
Способ 1: Выполнение в контейнере ovn-ic-db
Войдите в контейнер ovn-ic-db и выполните очистку следующими командами.
Затем выполните одну из следующих команд очистки:
Очистка по имени исходного кластера. Замените <cluster-name> на имя исходного кластера:
Очистка по имени любого узла исходного кластера. Замените <node-name> на имя любого узла исходного кластера:
Способ 2: Выполнение в pod ovn-ic-controller
Войдите в pod ovn-ic-controller и выполните очистку следующими командами.
Затем выполните одну из следующих команд очистки:
Очистка по имени исходного кластера. Замените <cluster-name> на имя исходного кластера:
Очистка по имени любого узла исходного кластера. Замените <node-name> на имя любого узла исходного кластера:
Примечание: Шаг 1 — Шаг 3 необходимо выполнить на всех рабочих кластерах, присоединившихся к межсоединённому кластеру.
Шаги выполнения
Удалите ConfigMap с именем ovn-ic-config в рабочем кластере командой:
Выйдите из межкластерного соединения через операции платформы.
Войдите в Leader Pod ovn-central следующей командой.
Войдите на узел, где развернут контроллер, и удалите контроллер.
Команды для Docker:
Команды для Containerd:
Удалите ConfigMap с именем ovn-ic в глобальном кластере следующей командой.
Чтобы настроить высокодоступный шлюз кластера после присоединения к межкластерному соединению, выполните следующие шаги:
Войдите в кластер, который нужно преобразовать в высокодоступный шлюз, и выполните команду для изменения поля enable-ic
на false
.
Примечание: Изменение поля enable-ic
на false
прервет межкластерное соединение до тех пор, пока оно снова не будет установлено в true
.
Измените конфигурацию шлюзовых узлов, обновив поле gw-nodes
, разделяя узлы английскими запятыми; также измените поле enable-ic
на true
.
Перейдите в Pod в кластере ovn-central и выполните команду ovn-nbctl lrp-get-gateway-chassis {имя текущего кластера}-ts
, чтобы проверить, что конфигурация вступила в силу.