Используя Multus CNI, вы можете добавить несколько сетевых интерфейсов с разными сетями к Pod. Используйте CRD Subnet и IP сети Kube-OVN для расширенного управления IP, реализуя управление подсетями, резервирование IP, случайное распределение, фиксированное распределение и другие функции.
Перейдите в раздел Administrator.
В левой навигационной панели нажмите Marketplace > Cluster Plugins.
В строке поиска введите "multus", чтобы найти плагин Multus CNI.
Найдите в списке плагин "Alauda Container Platform Networking for Multus".
Нажмите на три точки (⋮) рядом с записью плагина и выберите Install.
Плагин будет развернут в вашем кластере. Вы можете отслеживать статус установки в колонке State.
Плагин Multus CNI служит промежуточным звеном между другими CNI плагинами и Kubernetes, позволяя Pod иметь несколько сетевых интерфейсов.
Создайте подсеть attachnet согласно следующему примеру: network-attachment-definition.yml
.
Формат провайдера в config — <NAME>.<NAMESPACE>.ovn
, где <NAME>
и <NAMESPACE>
— имя и namespace данного CR NetworkAttachmentDefinition соответственно.
После создания примените ресурс:
Используйте следующий пример для создания подсети Kube-OVN для второго сетевого интерфейса: subnet.yml
.
spec.provider
должен совпадать с провайдером в NetworkAttachmentDefinition.spec.vlan
подсети в имя CR VLAN, который вы хотите использовать. Настройте остальные параметры подсети по необходимости.После создания примените ресурс:
Создайте Pod согласно следующему примеру.
metadata.annotations
должен содержаться ключ-значение k8s.v1.cni.cncf.io/networks=default/attachnet
, где формат значения — <NAMESPACE>/<NAME>
, а <NAMESPACE>
и <NAME>
— namespace и имя CR NetworkAttachmentDefinition соответственно.k8s.v1.cni.cncf.io/networks
как default/attachnet,default/attachnet2
.После успешного создания Pod используйте команду kubectl exec pod1 -- ip a
, чтобы просмотреть IP-адреса Pod.
Используйте следующую команду, чтобы проверить успешное создание двух сетевых интерфейсов:
Основной сетевой интерфейс (первый интерфейс): Если необходимо зафиксировать IP основного сетевого интерфейса, метод такой же, как и при использовании фиксированного IP с одним сетевым интерфейсом. Добавьте аннотацию ovn.kubernetes.io/ip_address=<IP>
к Pod.
Вторичный сетевой интерфейс (второй или другие интерфейсы): Основной метод аналогичен основному сетевому интерфейсу, с тем отличием, что ovn
в ключе аннотации заменяется на провайдера соответствующего NetworkAttachmentDefinition. Пример: attachnet.default.ovn.kubernetes.io/ip_address=172.170.0.101
.
Начиная с версии 1.8.0, Kube-OVN поддерживает настройку дополнительных маршрутов для вторичных сетевых интерфейсов. При использовании этой функции добавьте поле routes
в config NetworkAttachmentDefinition и заполните маршруты, которые необходимо настроить. Пример: