Spec-Zone.ru › Kubernetes

NetworkPolicy

NetworkPolicy описывает, какой сетевой трафик разрешён для набора Pod
Документация по концепции NetworkPolicy
  • Сетевые политики

    Если вы хотите управлять потоком трафика на уровне IP-адресов или портов (уровень 3 или 4 модели OSI), NetworkPolicy позволяет задавать правила потока трафика внутри кластера, а также между Pod и внешним миром. Кластер должен использовать сетевой плагин, поддерживающий применение NetworkPolicy.

    1. Предварительные требования
    2. Два типа изоляции Pod
    3. Ресурс NetworkPolicy
    4. Поведение селекторов <code>to</code> и <code>from</code>
    5. Политики по умолчанию
    6. Фильтрация сетевого трафика
    7. Выбор диапазона портов
    8. Выбор нескольких пространств имён по метке
    9. Выбор пространства имён по его имени
    10. Жизненный цикл Pod
    11. NetworkPolicy и Pod с <code>hostNetwork</code>
    12. Что нельзя сделать с сетевыми политиками (по крайней мере, пока)
    13. Влияние NetworkPolicy на существующие подключения
    14. Что дальше

apiVersion: networking.k8s.io/v1

import "k8s.io/api/networking/v1"

NetworkPolicy

NetworkPolicy описывает, какой сетевой трафик разрешён для набора Pod

Поле Описание
apiVersion
string
APIVersion определяет версионированную схему этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее представление и могут отклонять нераспознанные значения. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
kind
string
Kind — строковое значение, представляющее ресурс REST, который представляет этот объект. Серверы могут определить его по конечной точке, на которую клиент отправляет запросы. Не может быть изменено. Записывается в CamelCase. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
metadata
ObjectMeta
Стандартные метаданные объекта. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec
NetworkPolicySpec
spec представляет спецификацию желаемого поведения этой NetworkPolicy.

NetworkPolicySpec

NetworkPolicySpec содержит спецификацию NetworkPolicy

Поле Описание
egress
NetworkPolicyEgressRule array
egress — список правил для исходящего трафика, применяемых к выбранным Pod. Исходящий трафик разрешён, если ни одна NetworkPolicy не выбирает Pod (и политика кластера в остальном разрешает этот трафик) ИЛИ если трафик соответствует хотя бы одному правилу egress среди всех объектов NetworkPolicy, чей podSelector выбирает этот Pod. Если это поле пусто, данная NetworkPolicy ограничивает весь исходящий трафик (и служит исключительно для того, чтобы выбранные ею Pod по умолчанию были изолированы). Это поле имеет статус beta в версии 1.8.
ingress
NetworkPolicyIngressRule array
ingress — список правил для входящего трафика, применяемых к выбранным Pod. Трафик разрешён для Pod, если ни одна NetworkPolicy не выбирает Pod (и политика кластера в остальном разрешает этот трафик), ИЛИ если источник трафика — локальный узел Pod, ИЛИ если трафик соответствует хотя бы одному правилу ingress среди всех объектов NetworkPolicy, чей podSelector выбирает этот Pod. Если это поле пусто, данная NetworkPolicy не разрешает никакой трафик (и служит исключительно для того, чтобы выбранные ею Pod по умолчанию были изолированы).
podSelector
LabelSelector
podSelector выбирает Pod, к которым применяется этот объект NetworkPolicy. Массив правил применяется ко всем Pod, выбранным этим полем. Пустой селектор выбирает все Pod в пространстве имён политики. Несколько сетевых политик могут выбирать один и тот же набор Pod. В этом случае правила ingress для каждой из них объединяются. Это поле необязательное. Если оно не указано, по умолчанию используется пустой селектор.
policyTypes
string array
policyTypes — список типов правил, к которым относится NetworkPolicy. Допустимые варианты: ["Ingress"], ["Egress"] или ["Ingress", "Egress"]. Если это поле не указано, значение по умолчанию определяется наличием правил ingress или egress: политики, содержащие раздел egress, считаются влияющими на исходящий трафик, а все политики (независимо от наличия раздела ingress) считаются влияющими на входящий трафик. Чтобы создать политику только для исходящего трафика, необходимо явно указать policyTypes [ "Egress" ]. Аналогично, чтобы создать политику, запрещающую весь исходящий трафик, необходимо указать в policyTypes значение, включающее "Egress" (поскольку такая политика не будет содержать раздел egress и в противном случае для неё по умолчанию будет использоваться только [ "Ingress" ]). Это поле имеет статус beta в версии 1.8.

NetworkPolicyList

NetworkPolicyList — это список объектов NetworkPolicy.

Поле Описание
apiVersion
string
APIVersion определяет версионированную схему этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее представление и могут отклонять нераспознанные значения. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
items *
NetworkPolicy array
items — список объектов схемы.
kind
string
Kind — строковое значение, представляющее ресурс REST, который представляет этот объект. Серверы могут определить его по конечной точке, на которую клиент отправляет запросы. Не может быть изменено. Записывается в CamelCase. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
metadata
ListMeta
Стандартные метаданные списка. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

IPBlock

IPBlock описывает определённый CIDR (например, "192.168.1.0/24","2001:db8::/64"), разрешённый для Pod, выбранных с помощью podSelector в NetworkPolicySpec. Запись except задаёт CIDR, которые не должны включаться в это правило.

Поле Описание
cidr *
string
cidr — строка, представляющая IPBlock. Допустимые примеры: "192.168.1.0/24" или "2001:db8::/64".
except
string array
except — список CIDR, которые не должны включаться в IPBlock. Допустимые примеры: "192.168.1.0/24" или "2001:db8::/64". Значения except будут отклонены, если они находятся за пределами диапазона cidr.

NetworkPolicyEgressRule

NetworkPolicyEgressRule описывает определённый набор трафика, который разрешено отправлять из Pod, выбранных с помощью podSelector в NetworkPolicySpec. Трафик должен соответствовать и портам, и полю to. Этот тип имеет статус beta в версии 1.8.

Поле Описание
ports
NetworkPolicyPort array
ports — список портов назначения для исходящего трафика. Каждый элемент этого списка объединяется логическим оператором ИЛИ. Если это поле пусто или отсутствует, правило соответствует всем портам (трафик не ограничен по портам). Если поле указано и содержит хотя бы один элемент, правило разрешает трафик, только если он соответствует хотя бы одному порту из списка.
to
NetworkPolicyPeer array
to — список адресатов для исходящего трафика Pod, выбранных этим правилом. Элементы списка объединяются логическим оператором ИЛИ. Если это поле пусто или отсутствует, правило соответствует всем адресатам (трафик не ограничен по адресу назначения). Если поле указано и содержит хотя бы один элемент, правило разрешает трафик, только если он соответствует хотя бы одному элементу списка to.

NetworkPolicyIngressRule

NetworkPolicyIngressRule описывает определённый набор трафика, разрешённого для Pod, выбранных с помощью podSelector в NetworkPolicySpec. Трафик должен соответствовать и портам, и полю from.

Поле Описание
from
NetworkPolicyPeer array
from — список источников, которым разрешён доступ к Pod, выбранным этим правилом. Элементы списка объединяются логическим оператором ИЛИ. Если это поле пусто или отсутствует, правило соответствует всем источникам (трафик не ограничен по источнику). Если поле указано и содержит хотя бы один элемент, правило разрешает трафик, только если он соответствует хотя бы одному элементу списка from.
ports
NetworkPolicyPort array
ports — список портов, доступ к которым разрешён на Pod, выбранных этим правилом. Каждый элемент списка объединяется логическим оператором ИЛИ. Если это поле пусто или отсутствует, правило соответствует всем портам (трафик не ограничен по портам). Если поле указано и содержит хотя бы один элемент, правило разрешает трафик, только если он соответствует хотя бы одному порту из списка.

NetworkPolicyPeer

NetworkPolicyPeer описывает узел, которому разрешено отправлять трафик или получать его. Допустимы только определённые сочетания полей.

Поле Описание
ipBlock
IPBlock
ipBlock задаёт политику для определённого IPBlock. Если это поле задано, два других поля задавать нельзя.
namespaceSelector
LabelSelector
namespaceSelector выбирает пространства имён с помощью меток уровня кластера. Это поле соответствует стандартной семантике селектора меток; если оно задано, но пусто, выбираются все пространства имён. Если также задан podSelector, объект NetworkPolicyPeer в целом выбирает Pod, соответствующие podSelector, в пространствах имён, выбранных с помощью namespaceSelector. В противном случае выбираются все Pod в пространствах имён, выбранных с помощью namespaceSelector.
podSelector
LabelSelector
podSelector — селектор меток, выбирающий Pod. Это поле соответствует стандартной семантике селектора меток; если оно задано, но пусто, выбираются все Pod. Если также задан namespaceSelector, объект NetworkPolicyPeer в целом выбирает Pod, соответствующие podSelector, в пространствах имён, выбранных с помощью namespaceSelector. В противном случае выбираются Pod, соответствующие podSelector, в собственном пространстве имён политики.

NetworkPolicyPort

NetworkPolicyPort описывает порт, на котором разрешён трафик.

Поле Описание
endPort
integer
endPort указывает, что политика должна разрешать диапазон портов от port до endPort включительно, если это поле задано. Это поле нельзя задавать, если поле port не задано или если в поле port указано имя порта (строка). Значение endPort должно быть равно port или больше него.
port
port — порт для указанного протокола. Это может быть числовой или именованный порт Pod. Если это поле не задано, правило соответствует всем именам и номерам портов. Если поле задано, будет учитываться только трафик, соответствующий указанным протоколу И порту.
protocol
string
protocol — протокол (TCP, UDP или SCTP), которому должен соответствовать трафик. Если поле не задано, по умолчанию используется TCP.

Возможные значения перечисления:
- `"SCTP"` — протокол SCTP.
- `"TCP"` — протокол TCP.
- `"UDP"` — протокол UDP.

© 2026 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2026 The Linux Foundation ®. All rights reserved.
https://kubernetes.io/docs/reference/kubernetes-api/networking/network-policy-v1/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API