Создание 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. Перейдите в Platform Management.

  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 имеют доступ. Можно выбрать узлы по меткам для контроля доступа Pod к IP-адресам узлов.
    Диапазон IPУкажите CIDR-диапазоны, к которым целевые Pod разрешено подключаться. Если параметр не настроен, по умолчанию целевые Pod могут подключаться к любым IP.
    Другие параметрыАналогично параметрам Ingress, с теми же опциями настройки и поведением.

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

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

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