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

出力専用。この Membership リソースの完全な一意の名前(形式: 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)

出力専用。Membership リソースの状態。

createTime

string (Timestamp format)

出力専用。Membership が作成された日時。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

updateTime

string (Timestamp format)

出力専用。Membership が最後に更新された日時。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

deleteTime

string (Timestamp format)

出力専用。Membership が削除された日時。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

externalId

string

省略可。この Membership について外部で生成および管理される ID。この ID は作成後に変更できますが、変更はおすすめしません。

ID は正規表現 [a-zA-Z0-9][a-zA-Z0-9_\-\.]* と一致する必要があります。

この Membership が Kubernetes クラスタを表す場合は、この値を kube-system Namespace オブジェクトの UID に設定する必要があります。

lastConnectionTime

string (Timestamp format)

出力専用。Connect を使用しているクラスタの場合、Google Cloud との間で確立された最新の接続のタイムスタンプ。この時間は継続的に更新されるのではなく、数分ごとに更新されます。GKE Connect を使用していないクラスタ、または接続に成功したことがないクラスタでは、このフィールドは設定されません。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

uniqueId

string

出力専用。このリソースの Google 生成 UUID。これは、すべての Membership リソースで固有のものです。Membership リソースを削除し、同じ名前の別のリソースを作成すると、異なる uniqueId が取得されます。

authority

object (Authority)

省略可。この Membership からワークロードを識別する方法。詳細については、Workload Identity のドキュメント(https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity)をご覧ください。

monitoringConfig

object (MonitoringConfig)

省略可。このメンバーシップのモニタリング構成情報。

共用体フィールド type。この Membership 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 リソース。これらのリソースは:

  • クラスタが 1 つの Hub メンバーシップにのみ登録されるようにします。
  • Membership Authority フィールドで利用可能なワークロード プール情報を伝播します。
  • デフォルトの Hub Feature を適切に初期構成します。
googleManaged

boolean

出力専用。このメンバーシップのライフサイクルが Google クラスタ プラットフォーム サービスによって管理されるかどうか。

共用体フィールド type。登録済みクラスタのクラスタ情報。type は次のいずれかになります。
gkeCluster

object (GkeCluster)

省略可。GKE-on-GCP クラスタの詳細情報。

onPremCluster

object (OnPremCluster)

省略可。GKE On-Prem クラスタ固有の情報。resourceLink がないオンプレミスのユーザー クラスタは、このフィールドを使用できません。代わりに、nil の「type」を使用する必要があります。

multiCloudCluster

object (MultiCloudCluster)

省略可。GKE Multi-cloud クラスタ固有の情報。

edgeCluster

object (EdgeCluster)

省略可。Google Edge クラスタ固有の情報。

applianceCluster

object (ApplianceCluster)

省略可。GDC Edge Appliance クラスタ固有の情報。

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 エンドポイントのノードリストの最初のノードから報告されたノード providerID。ノードなしクラスタをサポートする Kubernetes プラットフォーム(GKE-on-GCP など)では、nodeCount は 0 になり、nodeProviderId は空になります。

nodeCount

integer

出力専用。Kubernetes ノードリソースによって報告されるノード数。

vcpuCount

integer

出力専用。Kubernetes ノードリソースによって報告される vCPU 数。

memoryMb

integer

出力専用。すべての Kubernetes ノードリソースの合計によって報告される合計メモリ容量(単位: MB)。

updateTime

string (Timestamp format)

出力専用。これらの詳細が最後に更新された時刻。EndpointDetails は API コンシューマ向けに内部的に更新されるため、この updateTime はメンバーシップ レベルの updateTime とは異なります。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

KubernetesResource

KubernetesResource には、クラスタ内の Membership Kubernetes リソースの YAML マニフェストと構成が含まれています。memberships.create または memberships.patch の後、これらのリソースをクラスタに再適用する必要があります。

JSON 表現
{
  "membershipCrManifest": string,
  "membershipResources": [
    {
      object (ResourceManifest)
    }
  ],
  "connectResources": [
    {
      object (ResourceManifest)
    }
  ],
  "resourceOptions": {
    object (ResourceOptions)
  }
}
フィールド
membershipCrManifest

string

入力専用。Membership CR の YAML 表現。Hub が CR を直接読み取ることができる GKE クラスタでは、このフィールドは無視されます。

呼び出し元は、memberships.create または memberships.patch の際に、クラスタに現在存在する CR を指定する必要があります。存在しない場合は、このフィールドを空のままにします。CR マニフェストは、クラスタが別のメンバーシップに登録されていないことを検証するために使用されます。

membershipResources[]

object (ResourceManifest)

出力専用。Membership の作成後と更新のたびにクラスタに適用する必要がある追加の Kubernetes リソース。

このフィールドは、memberships.create または memberships.patch の長時間実行オペレーションが成功したときに返される Membership にのみ入力されます。通常の memberships.get リクエストまたは memberships.list リクエストでは、このフィールドは入力されません。最初の登録後にリソース マニフェストを取得するには、呼び出し元が、フィールド マスクを空にして memberships.patch 呼び出しを行う必要があります。

connectResources[]

object (ResourceManifest)

出力専用。GKE Connect エージェントをインストールするための Kubernetes リソース

このフィールドは、memberships.create または memberships.patch の長時間実行オペレーションが成功したときに返される Membership にのみ入力されます。通常の memberships.get リクエストまたは memberships.list リクエストでは、このフィールドは入力されません。最初の登録後にリソース マニフェストを取得するには、呼び出し元が、フィールド マスクを空にして memberships.patch 呼び出しを行う必要があります。

resourceOptions

object (ResourceOptions)

省略可。Kubernetes リソース生成のオプション。

ResourceManifest

ResourceManifest は、クラスタに適用される単一の Kubernetes リソースを表します。

JSON 表現
{
  "manifest": string,
  "clusterScoped": boolean
}
フィールド
manifest

string

リソースの YAML マニフェスト。

clusterScoped

boolean

マニフェストで指定されたリソースが clusterScoped であるかどうか。設定されていない場合、マニフェストは Namespace スコープであると見なされます。

このフィールドは、クラスタでリソースを適用するときに REST マッピングに使用されます。

ResourceOptions

ResourceOptions は、Kubernetes リソースの生成オプションを表します。

JSON 表現
{
  "connectVersion": string,
  "v1beta1Crd": boolean,
  "k8sVersion": string
}
フィールド
connectVersion

string

省略可。connectResources に使用する Connect エージェントのバージョン。最新の GKE Connect バージョンがデフォルトになります。バージョンは現在サポートされているバージョンであることが必要です。古いバージョンは拒否されます。

v1beta1Crd

boolean

省略可。CustomResourceDefinition リソースには、apiextensions/v1 ではなく apiextensions/v1beta1 を使用します。このオプションは、Kubernetes apiserver バージョンが 1.16 より前のクラスタに設定する必要があります。

k8sVersion

string

省略可。Kubernetes クラスタのメジャー バージョン。これは、CustomResourceDefinition リソースに使用するバージョン(apiextensions/v1beta1 または apiextensions/v1)を決定するためにのみ使用されます。

MembershipState

MembershipState は、Membership リソースの状態を表します。

JSON 表現
{
  "code": enum (MembershipState.Code)
}
フィールド
code

enum (MembershipState.Code)

出力専用。Membership リソースの現在の状態。

MembershipState.Code

Code は、Membership リソースの状態を表します。

列挙型
CODE_UNSPECIFIED コードが設定されていません。
CREATING クラスタの登録中です。
READY クラスタが登録されています。
DELETING クラスタの登録解除中です。
UPDATING Membership の更新中です。
SERVICE_UPDATING Hub Service が Membership を更新しています。

権限

Authority は、Google がこのメンバーシップの ID をどのように認識するかを表します。詳細については、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 Token(JWT)の発行者 URI。issuerhttps:// で始まり、長さが 2,000 文字未満の有効な URL であることが必要です。GKE クラスタでは、zone ではなく location を使用する必要があります。

設定されている場合、Google は、この発行元による有効な OIDC トークンが workloadIdentityPool 内で認証されるようにします。この URI で OIDC ディスカバリが行われ、発行者からのトークンが検証されます。

issuer をクリアすると、Workload Identity が無効になります。issuer は直接変更できません。新しい発行元を使用する前にクリア(Workload Identity を無効に)して、Workload Identity を再度有効にする必要があります。

workloadIdentityPool

string

出力専用。issuer が認識される Workload Identity プールの名前。

Hub ごとに 1 つの Workload Identity プールがあり、ハブに属するすべてのメンバーシップ間で共有されます。{PROJECT_ID} でホストされているハブの場合、ワークロード プールの形式は {PROJECT_ID}.hub.id.goog ですが、この API の新しいバージョンで変更される可能性があります。

identityProvider

string

出力専用。Workload Identity プールの issuer を反映する ID プロバイダ。

oidcJwks

string (bytes format)

省略可。この Membership の OIDC 検証鍵(JWKS 形式)(RFC 7517)。

このフィールドが設定されている場合、OIDC ディスカバリは issuer で実行されず、代わりにこのフィールドを使用して OIDC トークンが検証されます。

Base64 でエンコードされた文字列。

MonitoringConfig

MonitoringConfig は、基盤となるクラスタの指標を Cloud Monitoring サービスに報告する方法について、Fleet ベースのアプリケーション、サービス、UI に通知します。空から非空に設定できますが、指標の一貫性を誤って破壊しないように、直接変更することはできません。

JSON 表現
{
  "projectId": string,
  "location": string,
  "cluster": string,
  "kubernetesMetricsPrefix": string,
  "clusterHash": string
}
フィールド
projectId

string

省略可。Metrics のレポートに使用されるプロジェクト

location

string

省略可。Metrics のレポートに使用されるロケーション

cluster

string

省略可。指標のレポートに使用されるクラスタ名。Anthos on VMWare/Baremetal/MultiCloud クラスタの場合は、{clusterType}/{clusterName} の形式になります。たとえば、awsClusters/cluster_1 です。

kubernetesMetricsPrefix

string

省略可。Kubernetes システムの指標(利用可能な場合)は、この接頭辞に書き込まれます。デフォルトでは、GKE の場合は kubernetes.io、Anthos の場合は kubernetes.io/anthos になります。注: Anthos MultiCloud には現在 kubernetes.io という接頭辞が付加されています。これは kubernetes.io/anthos に移行されます。

clusterHash

string

省略可。GKE クラスタとマルチクラウド クラスタの場合、これはクラスタ リソースの UUID です。VMWare クラスタと Baremetal クラスタの場合、これは kube-system UID です。

方法

create

新しい Membership を作成します。

delete

Membership を削除します。

generateConnectManifest

GKE Connect エージェントのデプロイ用のマニフェストを生成します。

get

Membership の詳細を取得します。

getIamPolicy

リソースのアクセス制御ポリシーを取得します。

list

指定されたプロジェクトとロケーションの Membership を一覧表示します。

patch

既存の Membership を更新します。

setIamPolicy

指定したリソースにアクセス制御ポリシーを設定します。

testIamPermissions

呼び出し元が指定されたリソース上で持つ権限を返します。