FlowSchema
apiVersion: flowcontrol.apiserver.k8s.io/v1
import "k8s.io/api/flowcontrol/v1"
FlowSchema
FlowSchema определяет схему группы потоков. Обратите внимание, что поток состоит из набора входящих API-запросов с похожими атрибутами и идентифицируется парой строк: именем FlowSchema и «различителем потока».
apiVersion: flowcontrol.apiserver.k8s.io/v1
kind: FlowSchema
-
metadata (ObjectMeta)
metadata— стандартные метаданные объекта. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata -
spec (FlowSchemaSpec)
spec— описание желаемого поведения FlowSchema. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status -
status (FlowSchemaStatus)
status— текущее состояние FlowSchema. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
FlowSchemaSpec
FlowSchemaSpec описывает, как выглядит спецификация FlowSchema.
-
distinguisherMethod (FlowDistinguisherMethod)
distinguisherMethodопределяет, как вычислять различатель потока для запросов, соответствующих этой схеме.nilуказывает, что различатель отключен и, таким образом, всегда будет пустой строкой.FlowDistinguisherMethod задаёт метод вычисления различателя потока.
-
distinguisherMethod.type (string), required
type— тип метода различателя потока. Поддерживаемые типы — «ByUser» и «ByNamespace». Обязательно.
-
-
matchingPrecedence (int32)
matchingPrecedenceиспользуется для выбора среди FlowSchema, соответствующих заданному запросу. Выбранный FlowSchema — это тот, у которого значение MatchingPrecedence численно ниже (что мы считаем логически выше). Каждое значение MatchingPrecedence должно быть в диапазоне [1,10000]. Обратите внимание, что если приоритет не указан, он будет установлен по умолчанию в 1000. -
priorityLevelConfiguration (PriorityLevelConfigurationReference), required
priorityLevelConfigurationдолжно ссылаться на PriorityLevelConfiguration в кластере. Если ссылка не может быть разрешена, FlowSchema будет проигнорирован и помечен как недействительный в своём статусе. Обязательно.PriorityLevelConfigurationReference содержит информацию, указывающую на используемый «приоритет запроса».
-
priorityLevelConfiguration.name (string), required
name— имя конфигурации уровня приоритета, на которое ссылаются. Обязательно.
-
-
rules ([]PolicyRulesWithSubjects)
Атомарно: будет заменено при слиянии
rulesописывает, какие запросы будут соответствовать этой схеме потока. Этот FlowSchema соответствует запросу только в том случае, если хотя бы один член rules соответствует запросу. Если это пустой срез, запросов, соответствующих FlowSchema, не будет.PolicyRulesWithSubjects задаёт тест, который применяется к запросу к apiserver. Тест учитывает субъект, делающий запрос, запрашиваемый глагол и ресурс, на который будет действовать. Этот PolicyRulesWithSubjects соответствует запросу, если и только если (a) как минимум один член subjects соответствует запросу и (b) как минимум один член resourceRules или nonResourceRules соответствует запросу.
-
rules.subjects ([]Subject), required
Атомарно: будет заменено при слиянии
subjects — список обычных пользователей, serviceaccount или групп, которые учитываются этой политикой. В этом срезе должен быть как минимум один элемент. Срез, включающий группы system:authenticated и system:unauthenticated, соответствует каждому запросу. Обязательно.
Subject соответствует инициатору запроса, как определено системой аутентификации запроса. Существует три способа соответствия инициатору: по пользователю, группе или сервисному аккаунту.
-
rules.subjects.kind (string), required
kindуказывает, какой из других полей не пустой. Обязательно -
rules.subjects.group (GroupSubject)
groupсопоставляется по имени группы пользователей.GroupSubject содержит подробную информацию о субъекте типа группа.
-
rules.subjects.group.name (string), required
name — группа пользователей, которой соответствует, или «*» для соответствия всем группам пользователей. См. https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go для некоторых известных имён групп. Обязательно.
-
-
rules.subjects.serviceAccount (ServiceAccountSubject)
serviceAccountсоответствует ServiceAccount.ServiceAccountSubject содержит подробную информацию о субъекте типа сервис-аккаунт.
-
rules.subjects.serviceAccount.name (string), required
name— имя соответствующего объекта ServiceAccount, или «*», чтобы соответствовать независимо от имени. Обязательно. -
rules.subjects.serviceAccount.namespace (string), required
namespace— пространство имён соответствующих объектов ServiceAccount. Обязательно.
-
-
rules.subjects.user (UserSubject)
userсопоставляется по имени пользователя.UserSubject содержит подробную информацию о субъекте типа пользователь.
-
rules.subjects.user.name (string), required
name— имя пользователя, которому соответствует, или «*» для соответствия всем именам пользователей. Обязательно.
-
-
-
rules.nonResourceRules ([]NonResourcePolicyRule)
Атомарно: будет заменено при слиянии
nonResourceRules— список NonResourcePolicyRules, которые идентифицируют соответствующие запросы в соответствии с их глаголом и целевым URL-адресом нересурса.NonResourcePolicyRule — это предикат, который соответствует запросам нересурса в соответствии с их глаголом и целевым URL-адресом нересурса. NonResourcePolicyRule соответствует запросу, если и только если (a) как минимум один член verbs соответствует запросу и (b) как минимум один член nonResourceURLs соответствует запросу.
-
rules.nonResourceRules.nonResourceURLs ([]string), required
Множество: уникальные значения будут сохранены при слиянии
nonResourceURLs— множество префиксов URL-адресов, к которым у пользователя должен быть доступ, и оно не может быть пустым. Например:- "/healthz" — допустимо
- "/hea*" — недопустимо
- "/hea" — допустимо, но ничего не сопоставляет
- "/hea/*" также ничего не сопоставляет
- "/healthz/*" — сопоставляет все проверки работоспособности на компонентном уровне. «*» — сопоставляет все URL-адреса нересурсов. Если оно присутствует, оно должно быть единственным элементом. Обязательно.
-
rules.nonResourceRules.verbs ([]string), required
Множество: уникальные значения будут сохранены при слиянии
verbs— список соответствующих глаголов, и он не может быть пустым. «*» — соответствует всем глаголам. Если оно присутствует, оно должно быть единственным элементом. Обязательно.
-
-
rules.resourceRules ([]ResourcePolicyRule)
Атомарно: будет заменено при слиянии
resourceRules— срез ResourcePolicyRules, которые идентифицируют соответствующие запросы в соответствии с их глаголом и целевым ресурсом. Хотя бы одно изresourceRulesиnonResourceRulesдолжно быть непустым.ResourcePolicyRule — это предикат, который соответствует некоторым запросам ресурсов, тестируя глагол запроса и целевой ресурс. ResourcePolicyRule соответствует запросу ресурса, если и только если: (a) как минимум один член verbs соответствует запросу, (b) как минимум один член apiGroups соответствует запросу, (c) как минимум один член resources соответствует запросу, и (d) либо (d1) запрос не указывает пространство имён (т. е.
Namespace=="") и clusterScope — true, или (d2) запрос указывает пространство имён, и как минимум один член namespaces соответствует пространству имён запроса.-
rules.resourceRules.apiGroups ([]string), required
Множество: уникальные значения будут сохранены при слиянии
apiGroups— список соответствующих API-групп, и он не может быть пустым. «*» — соответствует всем API-группам и, если присутствует, должно быть единственным элементом. Обязательно. -
rules.resourceRules.resources ([]string), required
Множество: уникальные значения будут сохранены при слиянии
resources— список соответствующих ресурсов (т. е. строчные и множественные) с необязательными подресурсами. Например, [«services», «nodes/status»]. Этот список не может быть пустым. «*» соответствует всем ресурсам и, если присутствует, должно быть единственным элементом. Обязательно. -
rules.resourceRules.verbs ([]string), required
Множество: уникальные значения будут сохранены при слиянии
verbs— список соответствующих глаголов, и он не может быть пустым. «*» — соответствует всем глаголам и, если присутствует, должно быть единственным элементом. Обязательно. -
rules.resourceRules.clusterScope (boolean)
clusterScopeуказывает, следует ли сопоставлять запросы, которые не указывают пространство имён (что происходит либо потому, что ресурс не имеет пространства имён, либо запрос направлен на все пространства имён). Если это поле опущено или ложно, полеnamespacesдолжно содержать непустой список. -
rules.resourceRules.namespaces ([]string)
Множество: уникальные значения будут сохранены при слиянии
namespaces— список целевых пространств имён, которые ограничивают соответствие. Запрос, который указывает целевое пространство имён, соответствует только в том случае, если в этом списке содержится это целевое пространство имён или (b) в этом списке содержится «*». Обратите внимание, что «*» соответствует любому указанному пространству имён, но не соответствует запросу, который *не указывает* пространства имён (см. полеclusterScopeдля этого). Этот список может быть пустым, но только еслиclusterScope— true.
-
-
FlowSchemaStatus
FlowSchemaStatus представляет текущее состояние FlowSchema.
-
Условия ([]FlowSchemaCondition)
Стратегия исправления: слияние по ключу
typeМапинг: уникальные значения по ключу type будут сохранены во время слияния
conditions— список текущих состояний FlowSchema.FlowSchemaCondition описывает условия для FlowSchema.
-
conditions.lastTransitionTime (Time)
lastTransitionTime— последнее время, когда условие перешло из одного состояния в другое.Time — обертка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Обёртки предоставлены для многих фабричных методов, которые предлагает пакет time.
-
conditions.message (string)
message— удобочитаемое сообщение, содержащее подробности о последнем переходе. -
conditions.reason (string)
reason— уникальное, однословное, в формате CamelCase, обоснование последнего перехода условия. -
conditions.status (string)
status— состояние условия. Может быть True, False, Unknown. Требуется. -
conditions.type (string)
type— тип условия. Требуется.
-
СписокFlowSchema
FlowSchemaList — список объектов FlowSchema.
apiVersion: flowcontrol.apiserver.k8s.io/v1
kind: СписокFlowSchema
-
metadata (ListMeta)
metadata— стандартные метаданные списка. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata -
items ([]FlowSchema), обязательное поле
items— список FlowSchema.
© 2024 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2024 The Linux Foundation ®. All rights reserved.
https://kubernetes.io/docs/reference/kubernetes-api/policy-resources/flow-schema-v1/