- 资源:Membership
- MembershipEndpoint
- GkeCluster
- OnPremCluster
- OnPremCluster.ClusterType
- MultiCloudCluster
- EdgeCluster
- ApplianceCluster
- KubernetesMetadata
- KubernetesResource
- ResourceManifest
- ResourceOptions
- MembershipState
- MembershipState.Code
- Authority
- MonitoringConfig
- 方法
资源:Membership
Membership 包含有关成员集群的信息。
JSON 表示法 |
---|
{ "name": string, "labels": { string: string, ... }, "description": string, "state": { object ( |
字段 | |
---|---|
name |
仅限输出。此成员资格资源的完整唯一名称,格式为
可以用如下正则表达式来表示: |
labels |
可选。此成员资格的标签。 包含一系列 |
description |
仅限输出。此成员资格的说明,长度不超过 63 个字符。必须符合如下正则表达式: 此字段只在旧版本中使用。 |
state |
仅限输出。成员资格资源的状态。 |
createTime |
仅限输出。成员资格的创建时间。 时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例: |
updateTime |
仅限输出。成员资格的上次更新时间。 时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例: |
deleteTime |
仅限输出。成员资格被删除的时间。 时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例: |
externalId |
可选。为此成员资格在外部生成且在外部进行管理的 ID。此 ID 在创建后可以修改,但不建议这样做。 此 ID 必须符合如下正则表达式: 如果此成员资格代表的是一个 Kubernetes 集群,则此值应设置为 |
lastConnectionTime |
仅限输出。对于使用 Connect 的集群,则该字段是最近与 Google Cloud 建立连接时的时间戳。此时间每隔几分钟更新一次,不是实时更新的。对于未使用 GKE Connect 或从未成功连接的集群,此字段将处于未设置状态。 时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例: |
uniqueId |
仅限输出。Google 为此资源生成的 UUID;该 UUID 在所有成员资格资源中是唯一的。如果删除了某个成员资格资源并创建了另一个同名的资源,则该资源会获得一个不同的 uniqueId。 |
authority |
可选。指定如何识别此成员资格中的工作负载。如需了解详情,请参阅有关 Workload Identity 的文档:https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity |
monitoringConfig |
可选。此成员资格的监控配置信息。 |
联合字段 type 。由此成员资格的 type 表示的资源类型只能是以下其中一项: |
|
endpoint |
可选。用于访问此成员的端点信息。 |
MembershipEndpoint
MembershipEndpoint 包含访问 Kubernetes API、端点以及任何其他 Kubernetes 元数据所需的信息。
JSON 表示法 |
---|
{ "kubernetesMetadata": { object ( |
字段 | |
---|---|
kubernetesMetadata |
仅限输出。一些有用的 Kubernetes 特定元数据。 |
kubernetesResource |
可选。应该在稳定状态下应用于正确注册的集群的集群内 Kubernetes 资源。这些资源应满足以下要求:
|
googleManaged |
仅限输出。指定此成员资格的生命周期是否由 Google 集群平台服务进行管理。 |
联合字段 type 。所注册集群的集群信息。type 只能是下列其中一项: |
|
gkeCluster |
可选。GKE-on-GCP 集群的特定信息。 |
onPremCluster |
可选。GKE On-Prem 集群的特定信息。没有 resourceLink 的本地用户集群不能使用此字段,因为这类集群的“type”为 nil。 |
multiCloudCluster |
可选。GKE Multi-Cloud 集群的特定信息。 |
edgeCluster |
可选。Google 边缘集群的特定信息。 |
applianceCluster |
可选。GDC Edge 设备集群的特定信息。 |
GkeCluster
GkeCluster 包含特定于 GKE 集群的信息。
JSON 表示法 |
---|
{ "resourceLink": string, "clusterMissing": boolean } |
字段 | |
---|---|
resourceLink |
不可变。GKE 集群的 Google Cloud 资源的页内链接。例如: //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster 可用区级集群也受支持。 |
clusterMissing |
仅限输出。如果设置了 clusterMissing,则表示该 GKE 集群不再存在于 GKE 控制平面中。 |
OnPremCluster
OnPremCluster 包含特定于 GKE On-Prem 集群的信息。
JSON 表示法 |
---|
{
"resourceLink": string,
"clusterMissing": boolean,
"adminCluster": boolean,
"clusterType": enum ( |
字段 | |
---|---|
resourceLink |
不可变。GKE On-Prem 集群的 Google Cloud 资源的页内链接。例如: //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/vmwareClusters/my-cluster //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/bareMetalClusters/my-cluster |
clusterMissing |
仅限输出。如果设置了 clusterMissing,则表示此 GKE On-Prem 集群的 API (gkeonprem.googleapis.com) 资源已不存在。 |
adminCluster |
不可变。指定集群是否为管理员集群。 |
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 } |
字段 | |
---|---|
resourceLink |
不可变。GKE Multi-Cloud 集群的 Google Cloud 资源的页内链接。例如: //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/awsClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/azureClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/attachedClusters/my-cluster |
clusterMissing |
仅限输出。如果设置了 clusterMissing,则表示此 GKE Multi-Cloud 集群的 API (gkemulticloud.googleapis.com) 资源已不存在。 |
EdgeCluster
EdgeCluster 包含特定于 Google 边缘集群的信息。
JSON 表示法 |
---|
{ "resourceLink": string } |
字段 | |
---|---|
resourceLink |
不可变。边缘集群的 Google Cloud 资源的页内链接。例如: //edgecontainer.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster |
ApplianceCluster
ApplianceCluster 包含特定于 GDC Edge 设备集群的信息。
JSON 表示法 |
---|
{ "resourceLink": string } |
字段 | |
---|---|
resourceLink |
不可变。设备集群的 Google Cloud 资源的页内链接。例如: //transferappliance.googleapis.com/projects/my-project/locations/us-west1-a/appliances/my-appliance |
KubernetesMetadata
KubernetesMetadata 为成员资格提供代表 Kubernetes 集群的信息性元数据。
JSON 表示法 |
---|
{ "kubernetesApiServerVersion": string, "nodeProviderId": string, "nodeCount": integer, "vcpuCount": integer, "memoryMb": integer, "updateTime": string } |
字段 | |
---|---|
kubernetesApiServerVersion |
仅限输出。通过 |
nodeProviderId |
仅限输出。通过 Kubernetes 端点上节点列表中的第一个节点获得的节点提供方 ID。在支持零节点集群的 Kubernetes 平台(如 GKE-on-GCP)上,nodeCount 将为零,且 nodeProviderId 将为空。 |
nodeCount |
仅限输出。通过相应 Kubernetes 节点资源数获得的节点数量。 |
vcpuCount |
仅供输出。通过相应 Kubernetes 节点资源数获得的 vCPU 数量。 |
memoryMb |
仅限输出。通过所有 Kubernetes 节点资源总数获得的总内存容量(以 MB 为单位)。 |
updateTime |
仅限输出。这些详细信息的上次更新时间。此 updateTime 与成员资格级 updateTime 不同,因为 EndpointDetails 是在 API 使用方内部更新的。 时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例: |
KubernetesResource
KubernetesResource 包含集群中成员资格 Kubernetes 资源的 YAML 清单和配置。在完成 memberships.create 或 memberships.patch 操作之后,需要在集群中重新应用这些资源。
JSON 表示法 |
---|
{ "membershipCrManifest": string, "membershipResources": [ { object ( |
字段 | |
---|---|
membershipCrManifest |
仅限输入。成员资格 CR 的 YAML 表示法。对于 Hub 可以直接读取 CR 的 GKE 集群,此字段会被忽略。 调用方应在执行 memberships.create 或 memberships.patch 操作期间提供集群中当前存在的 CR;如果不存在 CR,则将此字段留空。可通过 CR 清单验证该集群是否尚未被其他成员资格注册。 |
membershipResources[] |
仅限输出。在创建成员资格后以及在每次更新成员资格后需要向集群应用的其他 Kubernetes 资源。 只有在执行 memberships.create 或 memberships.patch 操作期间通过长时间运行的成功操作返回的成员资格中才会填充此字段。在常规的 memberships.get 或 memberships.list 请求期间不会填充该字段。要在初始注册后获取资源清单,调用方应使用空字段掩码进行 memberships.patch 调用。 |
connectResources[] |
仅限输出。用于安装 GKE Connect Agent 的 Kubernetes 资源 只有在执行 memberships.create 或 memberships.patch 操作期间通过长时间运行的成功操作返回的成员资格中才会填充此字段。在常规的 memberships.get 或 memberships.list 请求期间不会填充该字段。要在初始注册后获取资源清单,调用方应使用空字段掩码进行 memberships.patch 调用。 |
resourceOptions |
可选。用于生成 Kubernetes 资源的选项。 |
ResourceManifest
ResourceManifest 定义要应用于集群的单个 Kubernetes 资源。
JSON 表示法 |
---|
{ "manifest": string, "clusterScoped": boolean } |
字段 | |
---|---|
manifest |
资源的 YAML 清单。 |
clusterScoped |
指定清单中提供的资源是否为 在集群中应用资源时,此字段用于 REST 映射。 |
ResourceOptions
ResourceOptions 定义用于生成 Kubernetes 资源的选项。
JSON 表示法 |
---|
{ "connectVersion": string, "v1beta1Crd": boolean, "k8sVersion": string } |
字段 | |
---|---|
connectVersion |
可选。用于 connectResources 的 Connect Agent 版本。默认为最新的 GKE Connect 版本。必须使用当前受支持的版本,已过时的版本会被拒绝。 |
v1beta1Crd |
可选。对于 CustomResourceDefinition 资源,请使用 |
k8sVersion |
可选。Kubernetes 集群的主要版本。此字段仅用于确定要用于 CustomResourceDefinition 资源的版本( |
MembershipState
MembershipState 定义成员资格资源的状态。
JSON 表示法 |
---|
{
"code": enum ( |
字段 | |
---|---|
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 |
可选。JSON Web 令牌 (JWT) 的颁发者 URI。 如果设置了该字段,Google 将允许通过来自此颁发者的有效 OIDC 令牌在 workloadIdentityPool 内进行身份验证。系统会对此 URI 执行 OIDC 发现,以验证来自该颁发者的令牌。 如果清除 |
workloadIdentityPool |
仅限输出。可在其中识别 每个 Hub 都有一个工作负载身份池,这个身份池在属于该 Hub 的所有成员资格之间共享。对于托管在 {PROJECT_ID} 中的 Hub,工作负载池采用 |
identityProvider |
仅限输出。用以代表工作负载身份池中的 |
oidcJwks |
可选。此成员资格的 OIDC 验证密钥,采用 JWKS 格式 (RFC 7517)。 如果设置了该字段,系统将不会对 使用 base64 编码的字符串。 |
MonitoringConfig
MonitoringConfig 指示舰队级应用/服务/界面如何将底层集群的指标报告给 Cloud Monitoring 服务。如果该配置为空,可以对该配置进行设置;但如果不为空,则不能直接更改该配置,以防止意外破坏指标的连续性。
JSON 表示法 |
---|
{ "projectId": string, "location": string, "cluster": string, "kubernetesMetricsPrefix": string, "clusterHash": string } |
字段 | |
---|---|
projectId |
可选。要报告指标的项目 |
location |
可选。要报告指标的位置 |
cluster |
可选。要报告指标的集群的名称。对于 Anthos on VMWare/Baremetal/MultiCloud 集群,格式为 {clusterType}/{clusterName},例如:“awsClusters/cluster_1”。 |
kubernetesMetricsPrefix |
可选。Kubernetes 系统指标(如果有)将带有此前缀。对于 GKE,默认为 kubernetes.io;对于 Anthos,默认为 kubernetes.io/anthos。注意:Anthos MultiCloud 目前具有 kubernetes.io 前缀,但日后将迁移到 kubernetes.io/anthos 下。 |
clusterHash |
可选。对于 GKE 和 Multicloud 集群,这是集群资源的 UUID。对于 VMWare 和 Baremetal 集群,这是 kube-system UID。 |
方法 |
|
---|---|
|
创建新成员资格。 |
|
移除成员资格。 |
|
生成用于部署 GKE Connect Agent 的清单。 |
|
获取成员资格的详细信息。 |
|
获取资源的访问权限控制政策。 |
|
列出给定项目和位置中的成员资格。 |
|
列出给定项目和位置中管理员集群的成员资格。 |
|
更新现有成员资格。 |
|
针对指定资源设置访问权限控制政策。 |
|
返回调用者对指定资源拥有的权限。 |
|
ValidateCreateMembership 是针对 CreateMembership 操作的预检检查。 |