• Русский
  • Создание сетевых политик

    INFO

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

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

    NetworkPolicy — это ресурс Kubernetes с областью видимости в пределах namespace, реализуемый плагинами CNI.
    С помощью сетевых политик можно контролировать сетевой трафик Pod’ов, обеспечивая сетевую изоляцию и снижая риск атак.

    По умолчанию все Pod’ы могут свободно обмениваться трафиком, разрешая входящий и исходящий трафик из любых источников.
    При применении NetworkPolicy целевые Pod’ы будут принимать только трафик, соответствующий спецификации.

    WARNING

    Сетевые политики применяются только к трафику контейнеров. Они не влияют на Pod’ы, работающие в режиме hostNetwork.

    Пример NetworkPolicy:

    # example-network-policy.yaml
    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
      name: example
      namespace: demo-1
      annotations:
        cpaas.io/display-name: test
    spec:
      podSelector:
        matchLabels:
          pod-template-hash: 55c84b59bb
      ingress:
        - ports:
            - protocol: TCP
              port: 8989
          from:
            - podSelector:
                matchLabels:
                  kubevirt.io/vm: test
      egress:
        - ports:
            - protocol: TCP
              port: 80
          to:
            - ipBlock:
                cidr: 192.168.66.221/23
                except: []
      policyTypes:
        - Ingress
        - Egress
    1. from и to поддерживают namespaceSelector, podSelector, ipBlock

    Содержание

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

    1. Войдите в Container Platform.

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

    3. Нажмите Create Network Policy.

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

    ОбластьПараметрОписание
    Целевой PodВыбор PodВведите метки целевых Pod в формате ключ-значение; если не указано, политика применяется ко всем Pod в текущем namespace.
    Предварительный просмотр целевых Pod, затронутых текущей политикойНажмите Preview, чтобы увидеть целевые Pod, на которые влияет данная сетевая политика.
    IngressБлокировать весь входящий трафикБлокирует весь входящий трафик к целевому Pod.

    Примечание:
    • Если в поле spec.policyTypes в YAML добавлен Ingress без настройки конкретных правил, при возврате к форме опция Блокировать весь входящий трафик будет автоматически установлена.
    • Если одновременно удалить поля spec.ingress, spec.egress и spec.policyTypes в YAML, при возврате к форме опция Блокировать весь входящий трафик также будет автоматически установлена.
    Правила

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

    Описание: Можно добавить исключения в формате example_ip/32 для исключения отдельного IP-адреса.
    ПортСоответствует трафику на указанных протоколах и портах; можно добавить числовые порты или имена портов на Pod’ах. Если этот параметр не настроен, будут соответствовать все порты.
    EgressБлокировать весь исходящий трафикБлокирует весь исходящий трафик от целевого Pod.

    Примечание:
    • Если в поле spec.policyTypes в YAML добавлен Egress без настройки конкретных правил, при возврате к форме опция Блокировать весь исходящий трафик будет автоматически установлена.
    Другие параметрыАналогично параметрам Ingress, здесь не приводится подробное описание.
    1. Нажмите Create.

    Создание NetworkPolicy через CLI

    kubectl apply -f example-network-policy.yaml

    Справка

    Для получения дополнительной информации ознакомьтесь с официальной документацией по Network Policies.