Spec-Zone.ru › Kubernetes 1.27

NetworkPolicy

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

apiVersion: networking.k8s.io/v1

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

NetworkPolicy

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

  • apiVersion: networking.k8s.io/v1

  • kind: NetworkPolicy

  • metadata (ObjectMeta)

    Стандартные метаданные объекта. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

  • spec (NetworkPolicySpec)

    spec представляет собой спецификацию желаемого поведения для данного NetworkPolicy.

  • status (NetworkPolicyStatus)

    status представляет собой текущее состояние NetworkPolicy. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

NetworkPolicySpec

NetworkPolicySpec предоставляет спецификацию NetworkPolicy

  • podSelector (LabelSelector), обязательный

    podSelector выбирает под, к которым относится этот объект NetworkPolicy. Массив правил ingress применяется к любым под, выбранным этим полем. Несколько политиков сети могут выбрать один и тот же набор под. В этом случае правила ingress для каждого объединяются аддитивно. Это поле НЕ является необязательным и следует стандартной семантике селектора меток. Пустой podSelector соответствует всем под в данном пространстве имён.

  • policyTypes ([]string)

    policyTypes — это список типов правил, к которым относится политика NetworkPolicy. Допустимые варианты — ["Ingress"], ["Egress"] или ["Ingress", "Egress"]. Если это поле не указано, оно будет установлено по умолчанию на основе наличия правил ingress или egress; политики, содержащие раздел egress, предполагается, что они влияют на egress, а все политики (содержат ли они раздел ingress или нет) предполагается, что они влияют на ingress. Если вы хотите написать политику только для egress, вы должны явно указать policyTypes [ "Egress" ]. Аналогично, если вы хотите написать политику, которая определяет, что egress запрещён, вы должны указать значение policyTypes, включающее "Egress" (поскольку такая политика не будет включать раздел egress и в противном случае будет установлено значение по умолчанию только [ "Ingress" ]). Это поле является бета-уровня в версии 1.8

  • ingress ([]NetworkPolicyIngressRule)

    ingress — это список правил ingress, которые должны применяться к выбранным под. Трафик разрешается для под, если нет политиков сети, выбирающих под (и политика кластера в противном случае позволяет трафик), или если источник трафика — локальный узел под, или если трафик соответствует хотя бы одному правилу ingress во всех объектах NetworkPolicy, подселектор которых соответствует под. Если это поле пустое, то эта политика сети не разрешает никакой трафик (и служит только для того, чтобы убедиться, что под, которые она выбирает, изолированы по умолчанию)

    NetworkPolicyIngressRule описывает конкретный набор трафика, который разрешен под, соответствующим podSelector спецификации NetworkPolicy. Трафик должен соответствовать как портам, так и источнику.

    • ingress.from ([]NetworkPolicyPeer)

      from — это список источников, которые должны иметь возможность доступа к под, выбранным для этого правила. Элементы в этом списке объединяются с помощью логической операции OR. Если это поле пустое или отсутствует, это правило соответствует всем источникам (трафик не ограничен источником). Если это поле присутствует и содержит по крайней мере один элемент, это правило разрешает трафик только в том случае, если трафик соответствует по крайней мере одному элементу в списке from.

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

      • ingress.from.ipBlock (IPBlock)

        ipBlock определяет политику для конкретного IPBlock. Если это поле установлено, ни одно из других полей не может быть.

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

        • ingress.from.ipBlock.cidr (string), обязательный

          cidr — это строка, представляющая IPBlock. Допустимые примеры — "192.168.1.0/24" или "2001:db8::/64"

        • ingress.from.ipBlock.except ([]string)

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

      • ingress.from.namespaceSelector (LabelSelector)

        namespaceSelector выбирает пространства имён с помощью меток уровня кластера. Это поле следует стандартной семантике селектора меток; если присутствует, но пустое, оно выбирает все пространства имён.

        Если также установлено podSelector, то NetworkPolicyPeer в целом выбирает под, соответствующие podSelector в пространствах имён, выбранных namespaceSelector. В противном случае он выбирает все под в пространствах имён, выбранных namespaceSelector.

      • ingress.from.podSelector (LabelSelector)

        podSelector — селектор меток, выбирающий под. Это поле следует стандартной семантике селектора меток; если присутствует, но пустое, оно выбирает все под.

        Если также установлено namespaceSelector, то NetworkPolicyPeer в целом выбирает под, соответствующие podSelector в пространствах имён, выбранных namespaceSelector. В противном случае он выбирает под, соответствующие podSelector в собственном пространстве имён политики.

    • ingress.ports ([]NetworkPolicyPort)

      ports — это список портов, которые должны быть доступны для под, выбранных для этого правила. Каждый элемент в этом списке объединяется с помощью логической операции OR. Если это поле пустое или отсутствует, это правило соответствует всем портам (трафик не ограничен по порту). Если это поле присутствует и содержит по крайней мере один элемент, то это правило разрешает трафик только в том случае, если трафик соответствует по крайней мере одному порту в списке.

      NetworkPolicyPort описывает порт для разрешения трафика на нём

      • ingress.ports.port (IntOrString)

        port представляет порт на заданном протоколе. Это может быть числовой или именованный порт на под. Если это поле не указано, это соответствует всем именам и номерам портов. Если указано, будет соответствовать только трафику на указанном протоколе И порте.

        IntOrString — это тип, который может содержать int32 или строку. При использовании в JSON или YAML маршалинге и унмаршалинге он производит или потребляет внутренний тип. Это позволяет, например, иметь поле JSON, которое может принимать имя или число.

      • ingress.ports.endPort (int32)

        endPort указывает, что диапазон портов от port до endPort (включительно), если установлен, должен быть разрешён политикой. Это поле не может быть определено, если поле port не определено или если поле port определено как именованный (строковый) порт. endPort должен быть равен или больше port.

      • ingress.ports.protocol (string)

        protocol представляет протокол (TCP, UDP или SCTP), которому должен соответствовать трафик. Если не указано, это поле по умолчанию TCP.

  • egress ([]NetworkPolicyEgressRule)

    egress — это список правил egress, которые должны применяться к выбранным под. Исходящий трафик разрешается, если нет политиков сети, выбирающих под (и политика кластера в противном случае разрешает трафик), или если трафик соответствует по крайней мере одному правилу egress во всех объектах NetworkPolicy, подселектор которых соответствует под. Если это поле пустое, эта политика сети ограничивает весь исходящий трафик (и служит только для того, чтобы гарантировать, что под, которые она выбирает, изолированы по умолчанию). Это поле является бета-уровня в 1.8

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

    • egress.to ([]NetworkPolicyPeer)

      to — это список пунктов назначения для исходящего трафика под, выбранных для этого правила. Элементы в этом списке объединяются с помощью логической операции OR. Если это поле пустое или отсутствует, это правило соответствует всем пунктам назначения (трафик не ограничен пунктом назначения). Если это поле присутствует и содержит по крайней мере один элемент, это правило разрешает трафик только в том случае, если трафик соответствует по крайней мере одному элементу в списке to.

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

      • egress.to.ipBlock (IPBlock)

        ipBlock определяет политику для конкретного IPBlock. Если это поле установлено, ни одно из других полей не может быть.

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

        • egress.to.ipBlock.cidr (string), обязательный

          cidr — это строка, представляющая IPBlock. Допустимые примеры — "192.168.1.0/24" или "2001:db8::/64"

        • egress.to.ipBlock.except ([]string)

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

      • egress.to.namespaceSelector (LabelSelector)

        namespaceSelector выбирает пространства имён с помощью меток уровня кластера. Это поле следует стандартной семантике селектора меток; если присутствует, но пустое, оно выбирает все пространства имён.

        Если также установлено podSelector, то NetworkPolicyPeer в целом выбирает под, соответствующие podSelector в пространствах имён, выбранных namespaceSelector. В противном случае он выбирает все под в пространствах имён, выбранных namespaceSelector.

      • egress.to.podSelector (LabelSelector)

        podSelector — селектор меток, выбирающий под. Это поле следует стандартной семантике селектора меток; если присутствует, но пустое, оно выбирает все под.

        Если также установлено namespaceSelector, то NetworkPolicyPeer в целом выбирает под, соответствующие podSelector в пространствах имён, выбранных namespaceSelector. В противном случае он выбирает под, соответствующие podSelector в собственном пространстве имён политики.

    • egress.ports ([]NetworkPolicyPort)

      ports — это список портов назначения для исходящего трафика. Каждый элемент в этом списке объединяется с помощью логической операции OR. Если это поле пустое или отсутствует, это правило соответствует всем портам (трафик не ограничен по порту). Если это поле присутствует и содержит по крайней мере один элемент, то это правило разрешает трафик только в том случае, если трафик соответствует по крайней мере одному порту в списке.

      NetworkPolicyPort описывает порт для разрешения трафика на нём

      • egress.ports.port (IntOrString)

        port представляет порт на заданном протоколе. Это может быть числовой или именованный порт на под. Если это поле не указано, это соответствует всем именам и номерам портов. Если указано, будет соответствовать только трафику на указанном протоколе И порте.

        IntOrString — это тип, который может содержать int32 или строку. При использовании в JSON или YAML маршалинге и унмаршалинге он производит или потребляет внутренний тип. Это позволяет, например, иметь поле JSON, которое может принимать имя или число.

      • egress.ports.endPort (int32)

        endPort указывает, что диапазон портов от port до endPort (включительно), если установлен, должен быть разрешён политикой. Это поле не может быть определено, если поле port не определено или если поле port определено как именованный (строковый) порт. endPort должен быть равен или больше port.

      • egress.ports.protocol (string)

        protocol представляет протокол (TCP, UDP или SCTP), которому должен соответствовать трафик. Если не указано, это поле по умолчанию TCP.

NetworkPolicyStatus

NetworkPolicyStatus описывает текущее состояние NetworkPolicy.

  • Условия ([]Condition)

    Стратегия патчинга: слияние по ключу type

    Карта: уникальные значения по типу ключа будут сохранены при слиянии

    conditions содержит массив metav1.Condition, описывающий состояние NetworkPolicy. Текущее состояние службы

    Condition содержит детали одного аспекта текущего состояния данного API-ресурса.

    • conditions.lastTransitionTime (Time), обязательно

      lastTransitionTime — это последнее время, когда условие перешло из одного состояния в другое. Это должно соответствовать моменту изменения базового условия. Если это неизвестно, можно использовать время изменения поля API.

      Time — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Оболочки предоставляются для многих фабричных методов пакета time.

    • conditions.message (string), обязательно

      message — это читаемое человеком сообщение, указывающее детали перехода. Может быть пустой строкой.

    • conditions.reason (string), обязательно

      reason содержит программно-идентифицируемый идентификатор, указывающий причину последнего перехода условия. Производители определенных типов условий могут определять ожидаемые значения и смыслы для этого поля, а также определять, считаются ли значения гарантированным API. Значение должно быть строкой в CamelCase. Это поле не может быть пустым.

    • conditions.status (string), обязательно

      состояние условия, одно из True, False, Unknown.

    • conditions.type (string), обязательно

      тип условия в CamelCase или в foo.example.com/CamelCase.

    • conditions.observedGeneration (int64)

      observedGeneration представляет .metadata.generation, на основе которого было установлено условие. Например, если .metadata.generation в настоящее время равно 12, а .status.conditions[x].observedGeneration равно 9, условие устарело по отношению к текущему состоянию экземпляра.

СписокNetworkPolicy

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

  • apiVersion: networking.k8s.io/v1

  • kind: NetworkPolicyList

  • metadata (ListMeta)

    Стандартные метаданные списка. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

  • items ([]NetworkPolicy), обязательно

    items — это список объектов схемы.

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

Spec-Zone.ru

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