FlowSchema

FlowSchema 定义了一组流的模式。

apiVersion: flowcontrol.apiserver.k8s.io/v1

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

FlowSchema

FlowSchema 定义了一组流的模式。请注意,流由一组具有相似属性的入站 API 请求组成,并由一对字符串标识:FlowSchema 的名称和“流区分器”。


FlowSchemaSpec

FlowSchemaSpec 描述了 FlowSchema 规范的外观。


  • distinguisherMethod (FlowDistinguisherMethod)

    distinguisherMethod 定义如何计算与该模式匹配的请求的流区分器。 nil 指定禁用区分器,因此将始终为空字符串。

    FlowDistinguisherMethod 指定流区分器的方法。

    • distinguisherMethod.type (string), 必需

      type 是流区分器方法的类型,支持的类型是“ByUser”和“ByNamespace”。必需。

  • matchingPrecedence (int32)

    matchingPrecedence 用于在与给定请求匹配的 FlowSchema 中进行选择。选择的 FlowSchema 是那些具有数字最低(我们认为是逻辑最高)MatchingPrecedence 的 FlowSchema。每个 MatchingPrecedence 值必须在 [1,10000] 范围内。请注意,如果未指定优先级,则默认设置为 1000。

  • priorityLevelConfiguration (PriorityLevelConfigurationReference), 必需

    priorityLevelConfiguration 应该引用集群中的 PriorityLevelConfiguration。如果无法解析引用,FlowSchema 将被忽略并在其状态中标记为无效。必需。

    PriorityLevelConfigurationReference 包含指向正在使用的“请求优先级”的信息。

    • priorityLevelConfiguration.name (string), 必需

      name 是被引用的优先级配置的名称。必需。

  • rules ([]PolicyRulesWithSubjects)

    原子性:在合并期间将被替换

    rules 描述哪些请求将与该流模式匹配。当且仅当 rules 的至少一个成员与请求匹配时,此 FlowSchema 才与请求匹配。如果它是一个空切片,则不会有与 FlowSchema 匹配的请求。

    PolicyRulesWithSubjects 规定了应用于 apiserver 请求的测试。该测试考虑发出请求的主题、请求的谓词和要对其执行操作的资源。当且仅当 (a) subjects 的至少一个成员与请求匹配并且 (b) resourceRules 或 nonResourceRules 的至少一个成员与请求匹配时,此 PolicyRulesWithSubjects 才与请求匹配。

    • rules.subjects ([]Subject), 必需

      原子性:在合并期间将被替换

      subjects 是此规则关注的普通用户、服务帐户或组的列表。此切片中必须至少有一个成员。包含 system:authenticated 和 system:unauthenticated 用户组的切片与每个请求都匹配。必需。

      Subject 匹配请求的发起者,由请求身份验证系统标识。匹配发起者的方式有三种:按用户、组或服务帐户。

      • rules.subjects.kind (string), 必需

        kind 指示其他字段中的哪一个是非空的。必需。

      • rules.subjects.group (GroupSubject)

        group 根据用户组名称进行匹配。

        GroupSubject 保存组类型主题的详细信息。

      • rules.subjects.serviceAccount (ServiceAccountSubject)

        serviceAccount 匹配 ServiceAccount。

        ServiceAccountSubject 保存服务帐户类型主题的详细信息。

        • rules.subjects.serviceAccount.name (string), 必需

          name 是匹配 ServiceAccount 对象的名称,或“*”以匹配任何名称。必需。

        • rules.subjects.serviceAccount.namespace (string), 必需

          namespace 是匹配 ServiceAccount 对象的命名空间。必需。

      • rules.subjects.user (UserSubject)

        user 根据用户名进行匹配。

        UserSubject 保存用户类型主题的详细信息。

        • rules.subjects.user.name (string), 必需

          name 是匹配的用户名,或“*”以匹配所有用户名。必需。

    • rules.nonResourceRules ([]NonResourcePolicyRule)

      原子性:在合并期间将被替换

      nonResourceRules 是 NonResourcePolicyRules 的列表,用于根据其谓词和目标非资源 URL 标识匹配的请求。

      NonResourcePolicyRule 是根据其谓词和目标非资源 URL 匹配非资源请求的谓词。当且仅当 (a) verbs 的至少一个成员与请求匹配并且 (b) nonResourceURLs 的至少一个成员与请求匹配时,NonResourcePolicyRule 才与请求匹配。

      • 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 才与资源请求匹配:(a) verbs 的至少一个成员与请求匹配,(b) apiGroups 的至少一个成员与请求匹配,(c) resources 的至少一个成员与请求匹配,以及 (d) (d1) 请求未指定命名空间(即 `Namespace==""`)且 clusterScope 为 true 或 (d2) 请求指定了命名空间且 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 指示是否匹配未指定命名空间的请求(发生这种情况是因为资源未命名空间化或请求针对所有命名空间)。如果此字段被省略或为 false,则 `namespaces` 字段必须包含一个非空列表。

      • rules.resourceRules.namespaces ([]string)

        集合:在合并期间将保留唯一值

        namespaces 是限制匹配的目标命名空间列表。指定目标命名空间的请求仅在 (a) 此列表包含该目标命名空间或 (b) 此列表包含“*”时才匹配。请注意,“*”匹配任何指定的命名空间,但不匹配*未指定*命名空间的请求(请参阅 `clusterScope` 字段)。此列表可以为空,但前提是 `clusterScope` 为 true。

FlowSchemaStatus

FlowSchemaStatus 表示 FlowSchema 的当前状态。


  • conditions ([]FlowSchemaCondition)

    补丁策略:基于键 `type` 合并

    映射:合并期间将保留键类型上的唯一值

    conditions 是 FlowSchema 当前状态的列表。

    FlowSchemaCondition 描述 FlowSchema 的条件。

    • conditions.lastTransitionTime (Time)

      lastTransitionTime 是条件从一种状态转换为另一种状态的最后时间。

      Time 是 time.Time 的一个包装器,它支持正确地编组到 YAML 和 JSON。time 包提供的许多工厂方法都有相应的包装器。

    • conditions.message (字符串)

      message 是一条人类可读的消息,指示有关上次转换的详细信息。

    • conditions.reason (字符串)

      reason 是条件上次转换的唯一、单字、驼峰式原因。

    • conditions.status (字符串)

      status 是条件的状态。可以是 True、False、Unknown。必需。

    • conditions.type (字符串)

      type 是条件的类型。必需。

FlowSchema 列表

FlowSchemaList 是 FlowSchema 对象的列表。


操作


get 读取指定的 FlowSchema

HTTP 请求

GET /apis/flowcontrol.apiserver.k8s.io/v1/flowschemas/{name}

参数

  • name (路径参数): 字符串,必需

    FlowSchema 的名称

  • pretty (查询参数): 字符串

    pretty

响应

200 (FlowSchema): 成功

401: 未授权

get 读取指定 FlowSchema 的状态

HTTP 请求

GET /apis/flowcontrol.apiserver.k8s.io/v1/flowschemas/{name}/status

参数

  • name (路径参数): 字符串,必需

    FlowSchema 的名称

  • pretty (查询参数): 字符串

    pretty

响应

200 (FlowSchema): 成功

401: 未授权

list 列出或监视 FlowSchema 类型的对象

HTTP 请求

GET /apis/flowcontrol.apiserver.k8s.io/v1/flowschemas

参数

响应

200 (FlowSchemaList): 成功

401: 未授权

create 创建一个 FlowSchema

HTTP 请求

POST /apis/flowcontrol.apiserver.k8s.io/v1/flowschemas

参数

响应

200 (FlowSchema): 成功

201 (FlowSchema): 已创建

202 (FlowSchema): 已接受

401: 未授权

update 替换指定的 FlowSchema

HTTP 请求

PUT /apis/flowcontrol.apiserver.k8s.io/v1/flowschemas/{name}

参数

  • name (路径参数): 字符串,必需

    FlowSchema 的名称

  • body: FlowSchema, 必需

  • dryRun (查询参数): 字符串

    dryRun

  • fieldManager (查询参数): 字符串

    fieldManager

  • fieldValidation (查询参数): 字符串

    fieldValidation

  • pretty (查询参数): 字符串

    pretty

响应

200 (FlowSchema): 成功

201 (FlowSchema): 已创建

401: 未授权

update 替换指定 FlowSchema 的状态

HTTP 请求

PUT /apis/flowcontrol.apiserver.k8s.io/v1/flowschemas/{name}/status

参数

  • name (路径参数): 字符串,必需

    FlowSchema 的名称

  • body: FlowSchema, 必需

  • dryRun (查询参数): 字符串

    dryRun

  • fieldManager (查询参数): 字符串

    fieldManager

  • fieldValidation (查询参数): 字符串

    fieldValidation

  • pretty (查询参数): 字符串

    pretty

响应

200 (FlowSchema): 成功

201 (FlowSchema): 已创建

401: 未授权

patch 部分更新指定的 FlowSchema

HTTP 请求

PATCH /apis/flowcontrol.apiserver.k8s.io/v1/flowschemas/{name}

参数

  • name (路径参数): 字符串,必需

    FlowSchema 的名称

  • body: Patch, 必需

  • dryRun (查询参数): 字符串

    dryRun

  • fieldManager (查询参数): 字符串

    fieldManager

  • fieldValidation (查询参数): 字符串

    fieldValidation

  • force (查询参数): 布尔值

    force

  • pretty (查询参数): 字符串

    pretty

响应

200 (FlowSchema): 成功

201 (FlowSchema): 已创建

401: 未授权

patch 部分更新指定 FlowSchema 的状态

HTTP 请求

PATCH /apis/flowcontrol.apiserver.k8s.io/v1/flowschemas/{name}/status

参数

  • name (路径参数): 字符串,必需

    FlowSchema 的名称

  • body: Patch, 必需

  • dryRun (查询参数): 字符串

    dryRun

  • fieldManager (查询参数): 字符串

    fieldManager

  • fieldValidation (查询参数): 字符串

    fieldValidation

  • force (查询参数): 布尔值

    force

  • pretty (查询参数): 字符串

    pretty

响应

200 (FlowSchema): 成功

201 (FlowSchema): 已创建

401: 未授权

delete 删除一个 FlowSchema

HTTP 请求

DELETE /apis/flowcontrol.apiserver.k8s.io/v1/flowschemas/{name}

参数

响应

200 (Status): 成功

202 (Status): 已接受

401: 未授权

deletecollection 删除 FlowSchema 集合

HTTP 请求

DELETE /apis/flowcontrol.apiserver.k8s.io/v1/flowschemas

参数

响应

200 (Status): 成功

401: 未授权

此页面自动生成。

如果您计划报告此页面的问题,请在问题描述中提及此页面是自动生成的。修复可能需要在 Kubernetes 项目的其他地方进行。

上次修改时间:2024 年 8 月 28 日下午 6:01(太平洋标准时间):已更新 v1.31 的生成的 API 参考 (8ba98c79c1)