Создание 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

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