• Русский
  • Создание Admin Network Policies

    INFO

    Платформа теперь предоставляет два разных интерфейса для Cluster Network Policies. Старый интерфейс поддерживается для совместимости, в то время как новый более гибкий и предоставляет нативный YAML-редактор. Рекомендуется использовать новую версию.

    Пожалуйста, свяжитесь с администратором платформы для включения feature-gate cluster-network-policy и cluster-network-policy-next для доступа к новому интерфейсу.

    Новая cluster network policy использует стандартный дизайн Kubernetes сообщества Admin Network Policy, предоставляя более гибкие методы конфигурации и богатые опции настройки.

    При применении нескольких сетевых политик соблюдается строгий порядок приоритетов: Admin Network Policy имеет приоритет над Network Policy, которая, в свою очередь, имеет приоритет над Baseline Admin Network Policy.

    Процедура следующая:

    Примечания

    • Административные сетевые политики поддерживаются только Kube-OVN CNI.

    • В сетевом режиме Kube-OVN эта функция находится на уровне Alpha.

    • В кластере может существовать только одна Baseline Admin Network Policy.

    AdminNetworkPolicy

    # example-anp.yaml
    apiVersion: policy.networking.k8s.io/v1alpha1
    kind: AdminNetworkPolicy
    metadata:
      name: example-anp
    spec:
      priority: 3
      subject:
        pods:
          namespaceSelector:
            matchLabels: {}
          podSelector:
            matchLabels:
              pod-template-hash: 55f66dd67d
      ingress:
        - name: ingress1
          action: Allow
          ports:
            - portNumber:
                protocol: TCP
                port: 8090
          from:
            - pods:
                namespaceSelector:
                  matchLabels: {}
                podSelector:
                  matchLabels:
                    pod-template-hash: 55c84b59bb
      egress:
        - name: egress1
          action: Allow
          ports:
            - portNumber:
                protocol: TCP
                port: 8080
          to:
            - networks:
                - 10.1.1.1/23
    1. Чем меньше число, тем выше приоритет.
    2. subject: можно указать не более одного селектора — либо namespaceSelector, либо podSelector.
    3. action: допустимые значения — Allow, Deny и Pass. Allow разрешает доступ трафика, Deny запрещает доступ, Pass разрешает трафик и пропускает последующие политики с более низким приоритетом, позволяя обработку трафика другими политиками (NetworkPolicy и BaselineAdminNetworkPolicy).
    4. Допустимые значения — Namespace Selector, Pod Selector.
    5. Допустимые значения — Namespace Selector, Pod Selector, Node Selector, IP Block.

    BaselineAdminNetworkpolicy:

    # default.yaml
    apiVersion: policy.networking.k8s.io/v1alpha1
    kind: BaselineAdminNetworkPolicy
    metadata:
      name: default
    spec:
      subject:
        pods:
          namespaceSelector:
            matchLabels: {}
          podSelector:
            matchLabels:
              pod-template-hash: 55c84b59bb
      ingress:
        - name: ingress1
          action: Allow
          ports:
            - portNumber:
                protocol: TCP
                port: 8888
          from:
            - pods:
                namespaceSelector:
                  matchLabels: {}
                podSelector:
                  matchLabels:
                    pod-template-hash: 55f66dd67d
      egress:
        - name: egress1
          action: Allow
          ports:
            - portNumber:
                protocol: TCP
                port: 8080
          to:
            - networks:
                - 3.3.3.3/23
    1. В кластере может быть создана только одна baseline admin network policy с metadata.name=default.
    2. Допустимые значения — Allow, Deny.

    Создание AdminNetworkPolicy или BaselineAdminNetworkPolicy через веб-консоль

    1. Перейдите в раздел Administrator.

    2. В левой навигационной панели выберите Network > Cluster Network Policies.

    3. Нажмите Create Admin Network Policies или Configure the Baseline Admin Network Policy.

    4. Следуйте инструкциям ниже для завершения соответствующей настройки.

      ОбластьПараметрОписание
      Основная информацияИмяИмя Admin Network Policy или Baseline Admin Network Policy.
      ПриоритетОпределяет порядок оценки и применения политик. Меньшие числовые значения означают более высокий приоритет.
      Примечание: baseline admin network policy не имеет приоритета.
      Целевой PodNamespace SelectorВведите метки целевых Namespace в формате ключ-значение. Если не указано, политика применяется ко всем Namespace в текущем кластере. При указании политика применяется только к Pod в Namespace, соответствующих этим селекторам.
      Просмотр целевых Pod, затронутых текущей политикойНажмите Preview, чтобы увидеть целевые Pod, на которые влияет эта сетевая политика.
      Pod SelectorВведите метки целевых Pod в формате ключ-значение. Если не указано, политика применяется ко всем Pod в текущем namespace.
      Просмотр целевых Pod, затронутых текущей политикойНажмите Preview, чтобы увидеть целевые Pod, на которые влияет эта сетевая политика.
      IngressДействие с трафикомОпределяет, как обрабатывать входящий трафик к целевым Pod. Имеет три режима: Allow (разрешить трафик), Deny (запретить трафик) и Pass (пропустить все административные политики с более низким приоритетом, позволяя обработку трафика Network Policy или, если Network Policy отсутствует, Baseline Admin Network Policy).
      Примечание: baseline admin network policy не поддерживает действие Pass.
      Правило

      Описание: Если в правиле добавлено несколько источников, между ними действует логическая операция ИЛИ.
      Pod SelectorСоответствует namespace или Pod с указанными метками в кластере; доступ к целевому Pod разрешён только для соответствующих Pod. Можно нажать Preview, чтобы увидеть Pod, затронутые текущим правилом.
      • Если настроены и namespace, и Pod селекторы, берётся их пересечение, то есть выбираются Pod с указанными метками из указанных namespace.
      • Если этот параметр не настроен, по умолчанию все Pod во всех namespace кластера могут получить доступ к целевому Pod.
      Namespace Selector

      Соответствует Pod с указанными метками в текущем namespace; доступ к целевому Pod разрешён только для соответствующих Pod. Можно нажать Preview, чтобы увидеть Pod, затронутые текущим правилом. Если этот параметр не настроен, по умолчанию все Pod в текущем namespace могут получить доступ к целевому Pod.

      ПортыСоответствует трафику на указанных протоколах и портах; можно добавлять числовые порты или имена портов на Pod. Если этот параметр не настроен, будут соответствовать все порты.
      EgressПравило

      Описание: Если в правиле добавлено несколько источников, между ними действует логическая операция ИЛИ.
      Node SelectorОпределяет, к каким IP-адресам узлов целевые Pod имеют доступ. Можно выбрать узлы по их меткам, чтобы контролировать доступные IP-адреса узлов для Pod.
      IP RangeУкажите CIDR-диапазоны, к которым целевые Pod разрешено подключаться. Если этот параметр не настроен, по умолчанию целевые Pod могут подключаться к любому IP.
      Другие параметрыАналогично параметрам Ingress, с теми же опциями настройки и поведением.

    Создание AdminNetworkPolicy или BaselineAdminNetworkPolicy через CLI

    kubectl apply -f example-anp.yaml -f default.yaml

    Дополнительные ресурсы