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