REST Resource: projects.locations.memberships

리소스: Membership

Membership에는 구성원 클러스터에 대한 정보가 포함됩니다.

JSON 표현
{
  "name": string,
  "labels": {
    string: string,
    ...
  },
  "description": string,
  "state": {
    object (MembershipState)
  },
  "authority": {
    object (Authority)
  },
  "createTime": string,
  "updateTime": string,
  "deleteTime": string,
  "externalId": string,
  "lastConnectionTime": string,
  "uniqueId": string,
  "infrastructureType": enum (Membership.InfrastructureType),
  "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)

선택사항입니다. 이 멤버십의 GCP 라벨입니다.

"key": value 쌍 목록을 포함하는 객체입니다. 예: { "name": "wrench", "mass": "1.3kg", "count": "3" }

description

string

(선택사항) 이 멤버십에 대한 설명으로, 63자(영문 기준)로 제한됩니다. [a-zA-Z0-9][a-zA-Z0-9_\-\.\ ]* 정규식과 일치해야 합니다.

state

object (MembershipState)

출력 전용입니다. 멤버십 리소스의 상태입니다.

authority

object (Authority)

선택사항입니다. 이 멤버십에서 워크로드를 인식하는 방법입니다. 자세한 내용은 워크로드 아이덴티티 문서 https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity를 참조하세요.

createTime

string (Timestamp format)

출력 전용입니다. 멤버십이 생성된 시간입니다.

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

updateTime

string (Timestamp format)

출력 전용입니다. 멤버십이 마지막으로 업데이트된 시간입니다.

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

deleteTime

string (Timestamp format)

출력 전용입니다. 멤버십이 삭제된 시간입니다.

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

externalId

string

선택사항입니다. 외부에서 생성되고 관리되는 이 멤버십의 ID입니다. 이 ID는 생성 후 수정이 가능하지만 권장되지 않습니다. GKE 클러스터의 경우 externalId는 Hub API에서 관리되며 업데이트가 무시됩니다.

ID가 [a-zA-Z0-9][a-zA-Z0-9_\-\.]* 정규식과 일치해야 합니다.

이 멤버십이 Kubernetes 클러스터를 나타내는 경우 이 값을 kube-system 네임스페이스 객체의 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입니다. 모든 멤버십 리소스에서 고유합니다. 멤버십 리소스가 삭제되고 동일한 이름의 다른 리소스가 생성되면 다른 고유 ID를 갖습니다.

infrastructureType

enum (Membership.InfrastructureType)

(선택사항) 이 멤버십이 실행 중인 인프라 유형입니다.

monitoringConfig

object (MonitoringConfig)

선택사항입니다. 이 멤버십의 모니터링 구성 정보입니다.

통합 필드 type입니다. 이 멤버십 type으로 표현되는 리소스 유형은 다음 중 하나만 가능합니다.
endpoint

object (MembershipEndpoint)

선택사항입니다. 이 구성원에 연결하기 위한 엔드포인트 정보입니다.

MembershipEndpoint

MembershipEndpoint에는 Kubernetes API, 엔드포인트, 모든 추가 Kubernetes 메타데이터를 연결하는 데 필요한 정보가 포함되어 있습니다.

JSON 표현
{
  "kubernetesMetadata": {
    object (KubernetesMetadata)
  },
  "kubernetesResource": {
    object (KubernetesResource)
  },

  // 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 리소스입니다. 이러한 리소스는 다음을 수행합니다.

  • 클러스터가 단 하나의 허브 멤버십에만 배타적으로 등록되었는지 확인합니다.
  • 멤버십 권한 필드에 제공되는 워크로드 풀 정보를 전파합니다.
  • 기본 허브 특성의 적절한 초기 구성이 있는지 확인합니다.
통합 필드 type입니다. 등록된 클러스터의 클러스터 정보입니다. type은 다음 중 하나여야 합니다.
gkeCluster

object (GkeCluster)

선택사항입니다. GKE-on-GCP 클러스터 관련 정보입니다.

onPremCluster

object (OnPremCluster)

선택사항입니다. GKE On-Prem 클러스터 관련 정보입니다. resourceLink가 없는 온프렘 사용자 클러스터는 이 필드를 사용할 수 없으며 대신 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 엔드포인트의 노드 목록에서 첫 번째 노드로 보고된 노드 providerID입니다. 0 노드 클러스터를 지원하는 Kubernetes 플랫폼에서(예: GKE-on-GCP), nodeCount는 0이 되고 nodeProviderId는 비어 있습니다.

nodeCount

integer

출력 전용입니다. Kubernetes 노드 리소스로 보고되는 노드 수입니다.

vcpuCount

integer

출력 전용입니다. Kubernetes 노드 리소스로 보고되는 vCPU 수입니다.

memoryMb

integer

출력 전용입니다. 모든 Kubernetes 노드 리소스의 합계로 보고되는 총 메모리 용량(MB)입니다.

updateTime

string (Timestamp format)

출력 전용입니다. 이러한 세부정보가 마지막으로 업데이트된 시간입니다. 이 updateTime은 멤버십 수준의 updateTime과 다릅니다. EndpointDetails가 API 소비자에 대해 내부적으로 업데이트됩니다.

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "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 표현입니다. 이 필드는 허브가 CR을 직접 읽을 수 있는 GKE 클러스터의 경우에 무시됩니다.

호출자는 memberships.create 또는 memberships.patch 중 클러스터에 현재 있는 CR을 제공해야 합니다. 그렇지 않고 아무 것도 없으면 이 필드를 비워 둡니다. CR 매니페스트는 클러스터가 다른 멤버십에 등록되지 않았는지 확인하기 위해 사용됩니다.

membershipResources[]

object (ResourceManifest)

출력 전용입니다. 멤버십 생성 후 그리고 모든 업데이트 작업 후 클러스터에 적용해야 하는 추가적인 Kubernetes 리소스입니다.

이 필드는 memberships.create 또는 memberships.patch로부터 성공한 장기 실행 작업으로 반환되는 멤버십에서만 채워집니다. 일반적인 memberships.get 또는 memberships.list 요청 중에는 채워지지 않습니다. 최초 등록 후 리소스 매니페스트를 가져오려면 호출자가 비어 있는 필드 마스크를 사용해서 memberships.patch 호출을 수행해야 합니다.

connectResources[]

object (ResourceManifest)

출력 전용입니다. GKE Connect 에이전트를 설치하기 위한 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 에이전트 버전입니다. 기본적으로 최신 GKE Connect 버전으로 지정됩니다. 버전은 현재 지원되는 버전이어야 하며 이전 버전은 거부됩니다.

v1beta1Crd

boolean

선택사항입니다. CustomResourceDefinition 리소스에 대해 apiextensions/v1 대신 apiextensions/v1beta1을 사용합니다. 이 옵션은 Kubernetes apiserver 버전이 1.16 미만인 클러스터에 대해 설정해야 합니다.

k8sVersion

string

선택사항입니다. Kubernetes 클러스터의 주 버전입니다. CustomResourceDefinition 리소스(apiextensions/v1beta1 또는 apiextensions/v1)에 사용할 버전을 결정하는 데만 사용됩니다.

MembershipState

멤버십 리소스의 상태입니다.

JSON 표현
{
  "code": enum (MembershipState.Code),
  "description": string,
  "updateTime": string
}
필드
code

enum (MembershipState.Code)

출력 전용입니다. 멤버십 리소스의 현재 상태입니다.

description
(deprecated)

string

이 필드는 허브 서비스에서 설정되지 않습니다.

updateTime
(deprecated)

string (Timestamp format)

이 필드는 허브 서비스에서 설정되지 않습니다.

RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"입니다.

MembershipState.Code

Code는 멤버십 리소스의 상태를 설명합니다.

열거형
CODE_UNSPECIFIED 코드가 설정되지 않았습니다.
CREATING 클러스터를 등록하는 중입니다.
READY 클러스터가 등록되었습니다.
DELETING 클러스터를 등록 취소하는 중입니다.
UPDATING 멤버십을 업데이트하는 중입니다.
SERVICE_UPDATING 허브 서비스에서 멤버십을 업데이트하는 중입니다.

Authority

Authority는 Google이 이 멤버십에서 ID를 인식하는 방법을 인코딩합니다. 자세한 내용은 워크로드 아이덴티티 문서 https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity를 참조하세요.

JSON 표현
{
  "issuer": string,
  "workloadIdentityPool": string,
  "identityProvider": string,
  "oidcJwks": string
}
필드
issuer

string

선택사항입니다. JWT(JSON 웹 토큰) 발급기관 URI입니다. issuerhttps://로 시작해야 하며 길이가 2,000자 미만인 유효한 URL이어야 합니다.

설정된 경우에는 Google에서 이 발급자의 유효한 OIDC 토큰으로 workloadIdentityPool 내에서 인증을 수행하도록 허용됩니다. 발급자의 토큰을 검증하기 위해 이 URI에서 OIDC 탐색이 수행됩니다.

issuer를 해제하면 워크로드 아이덴티티가 사용 중지됩니다. issuer는 직접 수정할 수 없습니다. 새 발급기관을 사용하고 워크로드 아이덴티티를 다시 사용 설정하기 전에 이를 삭제하고 워크로드 아이덴티티를 사용 중지해야 합니다.

workloadIdentityPool

string

출력 전용입니다. issuer가 인식되는 워크로드 아이덴티티 풀의 이름입니다.

해당 허브에 속하는 모든 멤버십 간에 공유되는 허브당 하나의 워크로드 아이덴티티 풀이 있습니다. {PROJECT_ID}에서 호스팅되는 허브의 경우 이 API의 새 버전에서 변경되더라도 워크로드 풀 형식이 {PROJECT_ID}.hub.id.goog입니다.

identityProvider

string

출력 전용입니다. 워크로드 아이덴티티 풀의 issuer를 반영하는 ID 공급업체입니다.

oidcJwks

string (bytes format)

선택사항입니다. JWKS 형식의 이 멤버십에 대한 OIDC 확인 키입니다(RFC 7517).

이 필드가 설정된 경우에는 issuer에서 OIDC 탐색이 수행되지 않으며, 대신 이 필드를 사용하여 OIDC 토큰을 검증합니다.

base64 인코딩 문자열입니다.

Membership.InfrastructureType

멤버십의 인프라 유형을 지정합니다. 인프라 유형은 허브에서 가격 책정을 포함한 인프라 특정 동작을 제어하기 위해 사용됩니다.

각 GKE 배포판(on-GCP, on-Prem, on-X,...)은 이 필드를 자동으로 설정하지만 연결된 클러스터 고객은 등록 중 유형을 지정해야 합니다.

열거형
INFRASTRUCTURE_TYPE_UNSPECIFIED 유형이 지정되지 않았습니다. 일부 허브 기능은 유형이 지정되어 있어야 하며 이 값의 멤버십을 지원하지 않습니다.
ON_PREM 고객이 소유하거나 운영하는 비공개 인프라입니다. 여기에는 GKE-OnPrem 및 GKE-OnBareMetal과 같은 GKE 배포판이 포함됩니다.
MULTI_CLOUD 퍼블릭 클라우드 인프라입니다.

MonitoringConfig

MonitoringConfig는 Fleet 기반 애플리케이션/서비스/UI에 기본 클러스터의 측정항목을 클라우드 모니터링 서비스에 보고하는 방법을 알려줍니다. 비어 있음에서 비어 있지 않음으로 설정할 수 있지만 측정항목의 연속성을 의도치 않게 방해하지 않도록 방지하기 위해 직접 수정은 불가능합니다.

JSON 표현
{
  "projectId": string,
  "location": string,
  "cluster": string,
  "kubernetesMetricsPrefix": string,
  "clusterHash": string
}
필드
projectId

string

선택사항입니다. 측정항목 보고를 위해 사용된 프로젝트입니다.

location

string

선택사항입니다. 측정항목 보고를 위해 사용된 위치입니다.

cluster

string

선택사항입니다. 측정항목 보고를 위해 사용된 클러스터 이름입니다. VMWare/베어메탈/멀티 클라우드용 Anthos 클러스터의 경우 {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 에이전트의 배포를 위한 매니페스트를 생성합니다.

generateExclusivityManifest

GenerateExclusivityManifest는 필요한 경우 클러스터의 독점 아티팩트를 업데이트하기 위한 매니페스트를 생성합니다.

get

멤버십 세부정보를 가져옵니다.

getIamPolicy

리소스의 액세스 제어 정책을 가져옵니다.

list

특정 프로젝트 및 위치의 멤버십을 나열합니다.

patch

기존 멤버십을 업데이트합니다.

setIamPolicy

지정된 리소스의 액세스 제어 정책을 설정합니다.

testIamPermissions

지정된 리소스에 대해 호출자가 보유한 권한을 반환합니다.

validateExclusivity

ValidateExclusivity는 클러스터의 독점 상태를 검증합니다.