Виртуальные маршрутизаторы

Развёртывание виртуального маршрутизатора в ВМ

Начиная с версии v0.27.0 Cozystack может развёртывать виртуальные маршрутизаторы (также известные как «router appliances» или «middlebox appliances»). Эта возможность позволяет создать виртуальный маршрутизатор на основе экземпляра виртуальной машины. Виртуальный маршрутизатор может маршрутизировать трафик между разными сетями.

Создание виртуального маршрутизатора

Для создания виртуального маршрутизатора требуется учётная запись администратора Cozystack.

  1. Создайте экземпляр ВМ
    Используйте стандартные пакеты vm-instance и virtual-machine, чтобы создать экземпляр виртуальной машины.

  2. Отключите защиту от подмены адресов (anti-spoofing)
    Чтобы экземпляр ВМ мог работать как виртуальный маршрутизатор, у него должна быть отключена защита от подмены адресов:

    kubectl patch virtualmachines.kubevirt.io virtual-machine-example --type=merge \
        -p '{"spec":{"template":{"metadata":{"annotations":{"ovn.kubernetes.io/port_security": "false"}}}}}'
    
  3. Перезапустите виртуальную машину

    virtctl stop virtual-machine-example
    virtctl start virtual-machine-example
    
  4. Получите IP-адрес ВМ

    kubectl get vmi
    

    В выводе будет строка с IP-адресом новой ВМ:

    NAME                      AGE     PHASE     IP            NODENAME        READY
    virtual-machine-example   3d4h    Running   10.244.8.56   gld-csxhk-003   True
    
  5. Настройте пользовательские маршруты для тенанта
    Отредактируйте пространство имён тенанта:

    kubectl edit namespace tenant-example
    

    Добавьте следующую аннотацию, указав полученный ранее IP-адрес маршрутизатора в gw и маску подсети, которую должен обслуживать маршрутизатор, в dst:

    ovn.kubernetes.io/routes: |
      [{
        "gw": "10.244.8.56",
        "dst": "10.10.13.0/24"
      }]
    

Теперь эти пользовательские маршруты будут применяться ко всем подам в пространстве имён тенанта.