REST Resource: projects.locations.memberships

资源:Membership

Membership 包含有关成员集群的信息。

JSON 表示法
{
  "name": string,
  "labels": {
    string: string,
    ...
  },
  "description": string,
  "state": {
    object (MembershipState)
  },
  "createTime": string,
  "updateTime": string,
  "deleteTime": string,
  "externalId": string,
  "lastConnectionTime": string,
  "uniqueId": string,
  "authority": {
    object (Authority)
  },
  "monitoringConfig": {
    object (MonitoringConfig)
  },

  // Union field type can be only one of the following:
  "endpoint": {
    object (MembershipEndpoint)
  }
  // End of list of possible types for union field type.
}
字段
name

string

仅限输出。此成员资格资源的完整唯一名称,格式为 projects/*/locations/*/memberships/{membershipId},在创建期间设置。

membershipId 必须是符合 RFC 1123 规范的有效 DNS 标签:

  1. 长度不超过 63 个字符
  2. 必须包含小写字母数字字符或 -
  3. 必须以字母数字字符开头和结尾

可以用如下正则表达式来表示:[a-z0-9]([-a-z0-9]*[a-z0-9])?,且长度不超过 63 个字符。

labels

map (key: string, value: string)

可选。此成员资格的标签。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

description

string

仅限输出。此成员资格的说明,长度不超过 63 个字符。必须符合如下正则表达式:[a-zA-Z0-9][a-zA-Z0-9_\-\.\ ]*

此字段只在旧版本中使用。

state

object (MembershipState)

仅限输出。成员资格资源的状态。

createTime

string (Timestamp format)

仅限输出。成员资格的创建时间。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

updateTime

string (Timestamp format)

仅限输出。成员资格的上次更新时间。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

deleteTime

string (Timestamp format)

仅限输出。成员资格被删除的时间。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

externalId

string

可选。为此成员资格在外部生成且在外部进行管理的 ID。此 ID 在创建后可以修改,但不建议这样做。

此 ID 必须符合如下正则表达式:[a-zA-Z0-9][a-zA-Z0-9_\-\.]*

如果此成员资格代表的是一个 Kubernetes 集群,则此值应设置为 kube-system 命名空间对象的 UID。

lastConnectionTime

string (Timestamp format)

仅限输出。对于使用 Connect 的集群,则该字段是最近与 Google Cloud 建立连接时的时间戳。此时间每隔几分钟更新一次,不是实时更新的。对于未使用 GKE Connect 或从未成功连接的集群,此字段将处于未设置状态。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

uniqueId

string

仅限输出。Google 为此资源生成的 UUID;该 UUID 在所有成员资格资源中是唯一的。如果删除了某个成员资格资源并创建了另一个同名的资源,则该资源会获得一个不同的 uniqueId。

authority

object (Authority)

可选。指定如何识别此成员资格中的工作负载。如需了解详情,请参阅有关 Workload Identity 的文档:https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity

monitoringConfig

object (MonitoringConfig)

可选。此成员资格的监控配置信息。

联合字段 type。由此成员资格 type 表示的资源类型只能是以下其中一项:
endpoint

object (MembershipEndpoint)

可选。用于访问此成员的端点信息。

MembershipEndpoint

MembershipEndpoint 包含访问 Kubernetes API、端点以及任何其他 Kubernetes 元数据所需的信息。

JSON 表示法
{
  "kubernetesMetadata": {
    object (KubernetesMetadata)
  },
  "kubernetesResource": {
    object (KubernetesResource)
  },
  "googleManaged": boolean,

  // Union field type can be only one of the following:
  "gkeCluster": {
    object (GkeCluster)
  },
  "onPremCluster": {
    object (OnPremCluster)
  },
  "multiCloudCluster": {
    object (MultiCloudCluster)
  },
  "edgeCluster": {
    object (EdgeCluster)
  },
  "applianceCluster": {
    object (ApplianceCluster)
  }
  // End of list of possible types for union field type.
}
字段
kubernetesMetadata

object (KubernetesMetadata)

仅限输出。一些有用的 Kubernetes 特定元数据。

kubernetesResource

object (KubernetesResource)

可选。应该在稳定状态下应用于正确注册的集群的集群内 Kubernetes 资源。这些资源应满足以下要求:

  • 确保只向一个 Hub 成员资格注册该集群,即该集群专属于一个成员资格。
  • 能够传播成员资格 Authority 字段中提供的工作负载池信息。
  • 确保对默认的 Hub 功能进行正确的初始配置。
googleManaged

boolean

仅限输出。指定此成员资格的生命周期是否由 Google 集群平台服务进行管理。

联合字段 type。所注册集群的集群信息。type 只能是下列其中一项:
gkeCluster

object (GkeCluster)

可选。GKE-on-GCP 集群的特定信息。

onPremCluster

object (OnPremCluster)

可选。GKE On-Prem 集群的特定信息。没有 resourceLink 的本地用户集群不能使用此字段,因为这类集群的“type”为 nil。

multiCloudCluster

object (MultiCloudCluster)

可选。GKE Multi-Cloud 集群的特定信息。

edgeCluster

object (EdgeCluster)

可选。Google 边缘集群的特定信息。

applianceCluster

object (ApplianceCluster)

可选。GDC Edge 设备集群的特定信息。

GkeCluster

GkeCluster 包含特定于 GKE 集群的信息。

JSON 表示法
{
  "resourceLink": string,
  "clusterMissing": boolean
}
字段
clusterMissing

boolean

仅限输出。如果设置了 clusterMissing,则表示该 GKE 集群不再存在于 GKE 控制平面中。

OnPremCluster

OnPremCluster 包含特定于 GKE On-Prem 集群的信息。

JSON 表示法
{
  "resourceLink": string,
  "clusterMissing": boolean,
  "adminCluster": boolean,
  "clusterType": enum (OnPremCluster.ClusterType)
}
字段
clusterMissing

boolean

仅限输出。如果设置了 clusterMissing,则表示此 GKE On-Prem 集群的 API (gkeonprem.googleapis.com) 资源已不存在。

adminCluster

boolean

不可变。指定集群是否为管理员集群。

clusterType

enum (OnPremCluster.ClusterType)

不可变。本地集群的类型。

OnPremCluster.ClusterType

ClusterType 定义本地集群的类型。

枚举
CLUSTERTYPE_UNSPECIFIED 未设置 ClusterType。
BOOTSTRAP ClusterType 是引导集群。
HYBRID ClusterType 是裸金属混合集群。
STANDALONE ClusterType 是裸金属独立集群。
USER ClusterType 是用户集群。

MultiCloudCluster

MultiCloudCluster 包含特定于 GKE Multi-Cloud 集群的信息。

JSON 表示法
{
  "resourceLink": string,
  "clusterMissing": boolean
}
字段
clusterMissing

boolean

仅限输出。如果设置了 clusterMissing,则表示此 GKE Multi-Cloud 集群的 API (gkemulticloud.googleapis.com) 资源已不存在。

EdgeCluster

EdgeCluster 包含特定于 Google 边缘集群的信息。

JSON 表示法
{
  "resourceLink": string
}
字段

ApplianceCluster

ApplianceCluster 包含特定于 GDC Edge 设备集群的信息。

JSON 表示法
{
  "resourceLink": string
}
字段

KubernetesMetadata

KubernetesMetadata 为成员资格提供代表 Kubernetes 集群的信息性元数据。

JSON 表示法
{
  "kubernetesApiServerVersion": string,
  "nodeProviderId": string,
  "nodeCount": integer,
  "vcpuCount": integer,
  "memoryMb": integer,
  "updateTime": string
}
字段
kubernetesApiServerVersion

string

仅限输出。通过 /version 获得的 Kubernetes API 服务器版本字符串。

nodeProviderId

string

仅限输出。通过 Kubernetes 端点上节点列表中的第一个节点获得的节点提供方 ID。在支持零节点集群的 Kubernetes 平台(如 GKE-on-GCP)上,nodeCount 将为零,且 nodeProviderId 将为空。

nodeCount

integer

仅限输出。通过相应 Kubernetes 节点资源数获得的节点数量。

vcpuCount

integer

仅供输出。通过相应 Kubernetes 节点资源数获得的 vCPU 数量。

memoryMb

integer

仅限输出。通过所有 Kubernetes 节点资源总数获得的总内存容量(以 MB 为单位)。

updateTime

string (Timestamp format)

仅限输出。这些详细信息的上次更新时间。此 updateTime 与成员资格级 updateTime 不同,因为 EndpointDetails 是在 API 使用方内部更新的。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

KubernetesResource

KubernetesResource 包含集群中成员资格 Kubernetes 资源的 YAML 清单和配置。在完成 memberships.create 或 memberships.patch 操作之后,需要在集群中重新应用这些资源。

JSON 表示法
{
  "membershipCrManifest": string,
  "membershipResources": [
    {
      object (ResourceManifest)
    }
  ],
  "connectResources": [
    {
      object (ResourceManifest)
    }
  ],
  "resourceOptions": {
    object (ResourceOptions)
  }
}
字段
membershipCrManifest

string

仅限输入。成员资格 CR 的 YAML 表示法。对于 Hub 可以直接读取 CR 的 GKE 集群,此字段会被忽略。

调用方应在执行 memberships.create 或 memberships.patch 操作期间提供集群中当前存在的 CR;如果不存在 CR,则将此字段留空。可通过 CR 清单验证该集群是否尚未被其他成员资格注册。

membershipResources[]

object (ResourceManifest)

仅限输出。在创建成员资格后以及在每次更新成员资格后需要向集群应用的其他 Kubernetes 资源。

只有在执行 memberships.create 或 memberships.patch 操作期间通过长时间运行的成功操作返回的成员资格中才会填充此字段。在常规的 memberships.get 或 memberships.list 请求期间不会填充该字段。要在初始注册后获取资源清单,调用方应使用空字段掩码进行 memberships.patch 调用。

connectResources[]

object (ResourceManifest)

仅限输出。用于安装 GKE Connect Agent 的 Kubernetes 资源

只有在执行 memberships.create 或 memberships.patch 操作期间通过长时间运行的成功操作返回的成员资格中才会填充此字段。在常规的 memberships.get 或 memberships.list 请求期间不会填充该字段。要在初始注册后获取资源清单,调用方应使用空字段掩码进行 memberships.patch 调用。

resourceOptions

object (ResourceOptions)

可选。用于生成 Kubernetes 资源的选项。

ResourceManifest

ResourceManifest 定义要应用于集群的单个 Kubernetes 资源。

JSON 表示法
{
  "manifest": string,
  "clusterScoped": boolean
}
字段
manifest

string

资源的 YAML 清单。

clusterScoped

boolean

指定清单中提供的资源是否为 clusterScoped。如果未设置,则假定清单的范围为命名空间。

在集群中应用资源时,此字段用于 REST 映射。

ResourceOptions

ResourceOptions 定义用于生成 Kubernetes 资源的选项。

JSON 表示法
{
  "connectVersion": string,
  "v1beta1Crd": boolean,
  "k8sVersion": string
}
字段
connectVersion

string

可选。用于 connectResources 的 Connect Agent 版本。默认为最新的 GKE Connect 版本。必须使用当前受支持的版本,已过时的版本会被拒绝。

v1beta1Crd

boolean

可选。对于 CustomResourceDefinition 资源,请使用 apiextensions/v1beta1(而不是 apiextensions/v1)。应为 Kubernetes apiserver 版本低于 1.16 的集群设置此选项。

k8sVersion

string

可选。Kubernetes 集群的主要版本。此字段仅用于确定要用于 CustomResourceDefinition 资源的版本(apiextensions/v1beta1apiextensions/v1)。

MembershipState

MembershipState 定义成员资格资源的状态。

JSON 表示法
{
  "code": enum (MembershipState.Code)
}
字段
code

enum (MembershipState.Code)

仅限输出。成员资格资源的当前状态。

MembershipState.Code

Code 定义成员资格资源的状态。

枚举
CODE_UNSPECIFIED 未设置代码。
CREATING 正在注册集群。
READY 已注册集群。
DELETING 正在取消注册集群。
UPDATING 正在更新成员资格。
SERVICE_UPDATING Hub 服务正在更新成员资格。

目标主机

Authority 部分对 Google 用以识别此成员资格中身份的规则进行编码。如需了解详情,请参阅 Workload Identity 文档:https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity

JSON 表示法
{
  "issuer": string,
  "workloadIdentityPool": string,
  "identityProvider": string,
  "oidcJwks": string
}
字段
issuer

string

可选。JSON Web 令牌 (JWT) 的颁发者 URI。issuer 必须是以 https:// 开头且长度小于 2,000 个字符的有效网址;对于 GKE 集群,它必须使用 location 而不是 zone

如果设置了该字段,Google 将允许通过来自此颁发者的有效 OIDC 令牌在 workloadIdentityPool 内进行身份验证。系统会对此 URI 执行 OIDC 发现,以验证来自该颁发者的令牌。

如果清除 issuer 字段,Workload Identity 会被停用。此外,issuer 字段不能直接修改;必须先清除该字段(会停用 Workload Identity),然后才能设置新颁发者(会重新启用 Workload Identity)。

workloadIdentityPool

string

仅限输出。可在其中识别 issuer 的工作负载身份池的名称。

每个 Hub 都有一个工作负载身份池,这个身份池在属于该 Hub 的所有成员资格之间共享。对于托管在 {PROJECT_ID} 中的 Hub,工作负载池采用 {PROJECT_ID}.hub.id.goog 格式,不过在此 API 的后续版本中可能会发生变化。

identityProvider

string

仅限输出。用以代表工作负载身份池中的 issuer 的身份提供方。

oidcJwks

string (bytes format)

可选。此成员资格的 OIDC 验证密钥,采用 JWKS 格式 (RFC 7517)。

如果设置了该字段,系统将不会对 issuer 执行 OIDC 发现,而是使用此字段验证 OIDC 令牌。

使用 base64 编码的字符串。

MonitoringConfig

MonitoringConfig 向基于舰队的应用/服务/界面指示如何将底层集群的指标报告给 Cloud Monitoring 服务。如果该配置为空,可以对该配置进行设置;但如果不为空,则不能直接更改该配置,以防止意外破坏指标的连续性。

JSON 表示法
{
  "projectId": string,
  "location": string,
  "cluster": string,
  "kubernetesMetricsPrefix": string,
  "clusterHash": string
}
字段
projectId

string

可选。要报告指标的项目

location

string

可选。要报告指标的位置

cluster

string

可选。要报告指标的集群的名称。对于 Anthos on VMWare/裸金属/多云集群,格式为 {clusterType}/{clusterName},例如:“awsClusters/cluster_1”。

kubernetesMetricsPrefix

string

可选。Kubernetes 系统指标(如果有)将带有此前缀。对于 GKE,默认为 kubernetes.io;对于 Anthos,默认为 kubernetes.io/anthos。注意:Anthos 多云目前具有 kubernetes.io 前缀,但日后将迁移到 kubernetes.io/anthos 下。

clusterHash

string

可选。对于 GKE 和多云集群,这是集群资源的 UUID。对于 VMWare 和裸金属集群,这是 kube-system UID。

方法

create

创建新成员资格。

delete

移除成员资格。

generateConnectManifest

生成用于部署 GKE Connect Agent 的清单。

get

获取成员资格的详细信息。

getIamPolicy

获取资源的访问权限控制政策。

list

列出给定项目和位置中的成员资格。

patch

更新现有成员资格。

setIamPolicy

针对指定资源设置访问权限控制政策。

testIamPermissions

返回调用者对指定资源拥有的权限。