REST Resource: projects.locations.clusters

리소스: 클러스터

Google Distributed Cloud Edge Kubernetes 클러스터입니다.

JSON 표현
{
  "name": string,
  "createTime": string,
  "updateTime": string,
  "labels": {
    string: string,
    ...
  },
  "fleet": {
    object (Fleet)
  },
  "networking": {
    object (ClusterNetworking)
  },
  "authorization": {
    object (Authorization)
  },
  "defaultMaxPodsPerNode": integer,
  "endpoint": string,
  "port": integer,
  "clusterCaCertificate": string,
  "maintenancePolicy": {
    object (MaintenancePolicy)
  },
  "controlPlaneVersion": string,
  "nodeVersion": string,
  "controlPlane": {
    object (ControlPlane)
  },
  "systemAddonsConfig": {
    object (SystemAddonsConfig)
  },
  "externalLoadBalancerIpv4AddressPools": [
    string
  ],
  "controlPlaneEncryption": {
    object (ControlPlaneEncryption)
  },
  "status": enum (Status),
  "maintenanceEvents": [
    {
      object (MaintenanceEvent)
    }
  ],
  "targetVersion": string,
  "releaseChannel": enum (ReleaseChannel),
  "survivabilityConfig": {
    object (SurvivabilityConfig)
  },
  "externalLoadBalancerIpv6AddressPools": [
    string
  ]
}
필드
name

string

필수 항목입니다. 클러스터의 리소스 이름입니다.

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"입니다.

labels

map (key: string, value: string)

이 리소스와 연결된 라벨입니다.

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

fleet

object (Fleet)

필수 항목입니다. Fleet 구성입니다.

networking

object (ClusterNetworking)

필수 항목입니다. 클러스터 전체 네트워킹 구성입니다.

authorization

object (Authorization)

필수 항목입니다. 변경할 수 없습니다. GEC에서 적용하고 관리할 RBAC 정책입니다.

defaultMaxPodsPerNode

integer

선택사항입니다. 이 클러스터의 노드 풀에 최댓값을 명시적으로 지정하지 않은 경우 사용되는 노드당 기본 최대 포드 수입니다. 지정하지 않으면 Kubernetes 기본값이 사용됩니다.

endpoint

string

출력 전용입니다. Kubernetes API 서버의 IP 주소입니다.

port

integer

출력 전용입니다. Kubernetes API 서버의 포트 번호입니다.

clusterCaCertificate

string

출력 전용입니다. 클러스터 CA의 PEM 인코딩 공개 인증서입니다.

maintenancePolicy

object (MaintenancePolicy)

선택사항입니다. 클러스터 전체 유지보수 정책 구성입니다.

controlPlaneVersion

string

출력 전용입니다. 컨트롤 플레인 출시 버전

nodeVersion

string

출력 전용입니다. 모든 워커 노드 중 가장 낮은 출시 버전입니다. 클러스터에 작업자 노드가 없는 경우 이 필드는 비어 있을 수 있습니다.

controlPlane

object (ControlPlane)

선택사항입니다. 클러스터 컨트롤 플레인의 구성입니다.

systemAddonsConfig

object (SystemAddonsConfig)

선택사항입니다. 시스템 부가기능의 구성입니다.

externalLoadBalancerIpv4AddressPools[]

string

선택사항입니다. 클러스터 데이터 영역 외부 부하 분산의 IPv4 주소 풀입니다.

controlPlaneEncryption

object (ControlPlaneEncryption)

선택사항입니다. 원격 컨트롤 플레인 디스크 암호화 옵션입니다. 이 필드는 CMEK 지원을 사용 설정할 때만 사용됩니다.

status

enum (Status)

출력 전용입니다. 클러스터의 현재 상태입니다.

maintenanceEvents[]

object (MaintenanceEvent)

출력 전용입니다. 진행 중, 향후 계획, 과거 (최대 90일)에 완료된 것을 포함하여 클러스터에 예약된 모든 유지보수 이벤트입니다.

targetVersion

string

선택사항입니다. 타겟 클러스터 버전입니다. 예: '1.5.0'

releaseChannel

enum (ReleaseChannel)

선택사항입니다. 클러스터가 구독된 출시 채널입니다.

survivabilityConfig

object (SurvivabilityConfig)

선택사항입니다. 네트워크 연결이 끊긴 경우와 같은 클러스터 생존 가능성 구성 참고: 이는 로컬 컨트롤 플레인 클러스터에만 적용됩니다.

externalLoadBalancerIpv6AddressPools[]

string

선택사항입니다. 클러스터 데이터 영역 외부 부하 분산의 IPv6 주소 풀입니다.

Fleet

Fleet 관련 구성입니다.

Fleet는 클러스터를 논리적으로 구성하기 위한 Google Cloud 개념으로, 이를 사용하면 멀티 클러스터 기능을 사용 및 관리하고 시스템 전체에 일관된 정책을 적용할 수 있습니다.

JSON 표현
{
  "project": string,
  "membership": string
}
필드
project

string

필수 항목입니다. 이 클러스터가 등록되는 Fleet 호스트 프로젝트의 이름입니다.

프로젝트 이름은 projects/<project-number> 형식으로 지정됩니다.

membership

string

출력 전용입니다. 이 클러스터에 연결된 관리되는 허브 멤버십 리소스의 이름입니다.

멤버십 이름은 projects/<project-number>/locations/global/membership/<cluster-id> 형식으로 지정됩니다.

ClusterNetworking

클러스터 전체 네트워킹 구성입니다.

JSON 표현
{
  "clusterIpv4CidrBlocks": [
    string
  ],
  "servicesIpv4CidrBlocks": [
    string
  ]
}
필드
clusterIpv4CidrBlocks[]

string

필수 항목입니다. 클러스터의 모든 포드에 이 블록의 RFC1918 IPv4 주소가 할당됩니다. 단일 블록만 지원됩니다. 이 필드는 생성 후 변경할 수 없습니다.

servicesIpv4CidrBlocks[]

string

필수 항목입니다. 클러스터의 모든 서비스에 이 블록의 RFC1918 IPv4 주소가 할당됩니다. 단일 블록만 지원됩니다. 이 필드는 생성 후 변경할 수 없습니다.

승인

GEC에서 적용하고 관리할 RBAC 정책입니다.

JSON 표현
{
  "adminUsers": {
    object (ClusterUser)
  }
}
필드
adminUsers

object (ClusterUser)

필수 항목입니다. 클러스터 관리자 액세스 권한을 부여하여 클러스터에 대한 전체 액세스 권한을 제공할 사용자입니다. 현재는 단일 필드이지만 향후 여러 관리자를 허용하도록 확장될 예정입니다.

ClusterUser

RBAC 정책의 사용자 주 구성원입니다.

JSON 표현
{
  "username": string
}
필드
username

string

필수 항목입니다. 활성 상태의 Google 사용자 이름

MaintenancePolicy

유지보수 정책 구성입니다.

JSON 표현
{
  "window": {
    object (MaintenanceWindow)
  }
}
필드
window

object (MaintenanceWindow)

유지보수를 수행할 수 있는 유지보수 기간을 지정합니다.

MaintenanceWindow

유지보수 기간 구성

JSON 표현
{
  "recurringWindow": {
    object (RecurringTimeWindow)
  }
}
필드
recurringWindow

object (RecurringTimeWindow)

반복 유지보수 기간의 구성입니다.

RecurringTimeWindow

반복되는 임의의 기간을 나타냅니다.

JSON 표현
{
  "window": {
    object (TimeWindow)
  },
  "recurrence": string
}
필드
window

object (TimeWindow)

첫 번째 반복의 기간입니다.

recurrence

string

이 기간이 반복되는 방식을 나타내는 RRULE (https://tools.ietf.org/html/rfc5545#section-3.8.5.3)입니다. 시작 시간과 종료 시간 사이의 시간 동안 계속됩니다.

TimeWindow

임의의 시간 범위를 나타냅니다.

JSON 표현
{
  "startTime": string,
  "endTime": string
}
필드
startTime

string (Timestamp format)

기간이 처음 시작되는 시간입니다.

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

endTime

string (Timestamp format)

기간이 종료되는 시간입니다. 종료 시간은 시작 시간 이후여야 합니다.

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

ControlPlane

클러스터 컨트롤 플레인의 구성입니다.

JSON 표현
{

  // Union field config can be only one of the following:
  "remote": {
    object (Remote)
  },
  "local": {
    object (Local)
  }
  // End of list of possible types for union field config.
}
필드

통합 필드 config.

config는 다음 중 하나여야 합니다.

remote

object (Remote)

원격 컨트롤 플레인 구성입니다.

local

object (Local)

로컬 컨트롤 플레인 구성입니다.

경고: 로컬 컨트롤 플레인 클러스터는 자체 프로젝트에서 만들어야 합니다. 로컬 컨트롤 플레인 클러스터는 GDCE 이외의 클러스터를 비롯한 다른 유형의 클러스터와 동일한 프로젝트에 공존할 수 없습니다. 동일한 프로젝트에서 로컬 컨트롤 플레인 GDCE 클러스터를 다른 유형의 클러스터와 혼합하면 데이터가 손실될 수 있습니다.

원격

이 유형에는 필드가 없습니다.

원격으로 호스팅되는 컨트롤 플레인이 있는 클러스터와 관련된 구성입니다.

로컬

로컬로 호스팅되는 컨트롤 플레인이 있는 클러스터와 관련된 구성입니다.

경고: 로컬 컨트롤 플레인 클러스터는 자체 프로젝트에서 만들어야 합니다. 로컬 컨트롤 플레인 클러스터는 GDCE 이외의 클러스터를 비롯한 다른 유형의 클러스터와 동일한 프로젝트에 공존할 수 없습니다. 동일한 프로젝트에서 로컬 컨트롤 플레인 GDCE 클러스터를 다른 유형의 클러스터와 혼합하면 데이터가 손실될 수 있습니다.

JSON 표현
{
  "nodeLocation": string,
  "nodeCount": integer,
  "machineFilter": string,
  "sharedDeploymentPolicy": enum (SharedDeploymentPolicy)
}
필드
nodeLocation

string

이 노드 풀이 생성될 Google Distributed Cloud Edge 영역의 이름입니다. 예를 들면 us-central1-edge-customer-a입니다.

nodeCount

integer

컨트롤 플레인의 복제본 역할을 할 노드 수입니다.

machineFilter

string

이 필터와 일치하는 머신만 컨트롤 플레인 노드를 호스팅할 수 있습니다. 필터링 언어는 'name='과 같은 문자열을 허용하며, AIP-160에 설명되어 있습니다.

sharedDeploymentPolicy

enum (SharedDeploymentPolicy)

사용자 애플리케이션이 배포되는 방식에 관한 정책 구성입니다.

SharedDeploymentPolicy

사용자 애플리케이션이 배포되는 방식에 관한 정책 구성을 나타냅니다.

열거형
SHARED_DEPLOYMENT_POLICY_UNSPECIFIED 지정되지 않음.
ALLOWED 사용자 애플리케이션은 컨트롤 플레인과 워커 노드 모두에 배포할 수 있습니다.
DISALLOWED 사용자 애플리케이션은 제어 영역 노드에 배포할 수 없으며 워커 노드에만 배포할 수 있습니다.

SystemAddonsConfig

고객이 GDCE 시스템 부가기능에 대해 정의할 수 있는 구성입니다.

JSON 표현
{
  "ingress": {
    object (Ingress)
  }
}
필드
ingress

object (Ingress)

선택사항입니다. 인그레스 구성입니다.

인그레스

고객이 인그레스 객체를 만들어 클러스터의 서버에 대한 외부 액세스를 관리할 수 있도록 하는 인그레스 부가기능 구성입니다. 부가기능은 istiod와 istio-ingress로 구성됩니다.

JSON 표현
{
  "disabled": boolean,
  "ipv4Vip": string
}
필드
disabled

boolean

선택사항입니다. 인그레스가 사용 중지되었는지 여부입니다.

ipv4Vip

string

선택사항입니다. 인그레스 VIP입니다.

ControlPlaneEncryption

원격 컨트롤 플레인 클러스터 디스크 암호화에 대한 고객 관리 KMS 키 지원 구성입니다.

JSON 표현
{
  "kmsKey": string,
  "kmsKeyActiveVersion": string,
  "kmsKeyState": enum (KmsKeyState),
  "kmsStatus": {
    object (Status)
  }
}
필드
kmsKey

string

변경할 수 없습니다. 컨트롤 플레인 디스크를 보호하는 데 사용할 Cloud KMS CryptoKey(예: projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey})입니다. 지정하지 않으면 Google 관리 키가 대신 사용됩니다.

kmsKeyActiveVersion

string

출력 전용입니다. 컨트롤 플레인 디스크를 보호하는 데 현재 사용 중인 Cloud KMS CryptoKeyVersion입니다. kmsKey가 설정된 경우에만 적용됩니다.

kmsKeyState

enum (KmsKeyState)

출력 전용입니다. Cloud KMS 암호화 키의 가용성입니다. KEY_AVAILABLE이 아닌 경우 노드가 로컬 데이터에 액세스할 수 없으므로 오프라인 상태가 될 수 있습니다. 키를 사용할 권한이 없거나 키가 사용 중지되었거나 삭제된 경우에 발생할 수 있습니다.

kmsStatus

object (Status)

출력 전용입니다. 이 키를 사용할 때 Cloud KMS에서 반환된 오류 상태입니다. 이 필드는 kmsKeyStateKMS_KEY_STATE_KEY_AVAILABLE이 아닌 경우에만 채워질 수 있습니다. 채워진 경우 이 필드에는 Cloud KMS에서 보고한 오류 상태가 포함됩니다.

상태

클러스터의 상태를 나타냅니다.

열거형
STATUS_UNSPECIFIED 상태를 알 수 없습니다.
PROVISIONING 클러스터를 만드는 중입니다.
RUNNING 클러스터가 생성되었으며 완전히 사용할 수 있습니다.
DELETING 클러스터를 삭제하는 중입니다.
ERROR 상태는 클러스터를 조정/삭제하는 중에 오류가 발생했음을 나타냅니다.
RECONCILING 클러스터에서 버전 업그레이드와 같은 작업이 진행되고 있습니다.

MaintenanceEvent

유지보수 이벤트는 Google에서 시작하거나 사용자가 시작한 클러스터 업그레이드, 노드 재시작이 필요한 사용자가 시작한 클러스터 구성 변경 등 클러스터 워크로드가 일시적으로 중단될 수 있는 작업입니다.

JSON 표현
{
  "uuid": string,
  "targetVersion": string,
  "operation": string,
  "type": enum (Type),
  "schedule": enum (Schedule),
  "state": enum (State),
  "createTime": string,
  "startTime": string,
  "endTime": string,
  "updateTime": string
}
필드
uuid

string

출력 전용입니다. 유지보수 이벤트의 UUID입니다.

targetVersion

string

출력 전용입니다. 클러스터의 타겟 버전입니다.

operation

string

출력 전용입니다. 유지보수 이벤트를 실행하는 작업입니다. projects/*/locations/*/operations/* 형식으로 지정됩니다. 유지보수 이벤트가 여러 작업으로 분할된 경우 (예: 유지보수 기간으로 인해) 가장 최근 작업이 기록됩니다.

type

enum (Type)

출력 전용입니다. 유지보수 이벤트 유형입니다.

schedule

enum (Schedule)

출력 전용입니다. 유지보수 이벤트의 일정입니다.

state

enum (State)

출력 전용입니다. 유지보수 이벤트의 상태입니다.

createTime

string (Timestamp format)

출력 전용입니다. 유지보수 이벤트 요청이 생성된 시간입니다.

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

startTime

string (Timestamp format)

출력 전용입니다. 유지보수 이벤트가 시작된 시간입니다.

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

endTime

string (Timestamp format)

출력 전용입니다. 유지보수 이벤트가 종료된 시간입니다(성공 여부와 관계없음). 유지보수 이벤트가 여러 유지보수 기간으로 분할된 경우 전체 흐름이 종료될 때만 endTime이 업데이트됩니다.

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"입니다.

유형

유지보수 이벤트 유형을 나타냅니다.

열거형
TYPE_UNSPECIFIED 지정되지 않음.
USER_INITIATED_UPGRADE 사용자가 시작한 업그레이드입니다.
GOOGLE_DRIVEN_UPGRADE Google에서 주도하는 업그레이드입니다.

일정

유지보수 이벤트를 실행해야 하는 시점을 나타냅니다.

열거형
SCHEDULE_UNSPECIFIED 지정되지 않음.
IMMEDIATELY 요청을 받은 직후

유지보수 이벤트 상태를 나타냅니다.

열거형
STATE_UNSPECIFIED 지정되지 않음.
RECONCILING 유지보수 이벤트가 진행 중입니다. 클러스터를 사용할 수 없을 수 있습니다.
SUCCEEDED 유지보수 이벤트가 완료되었습니다.
FAILED 유지보수 이벤트가 실패했습니다.

ReleaseChannel

클러스터가 구독된 출시 채널입니다.

열거형
RELEASE_CHANNEL_UNSPECIFIED 지정되지 않은 출시 채널입니다. 기본적으로 일반 채널이 선택됩니다.
NONE 출시 채널이 없습니다.
REGULAR 일반 출시 채널입니다.

SurvivabilityConfig

네트워크 연결이 끊긴 경우와 같은 클러스터 생존 가능성 구성

JSON 표현
{
  "offlineRebootTtl": string
}
필드
offlineRebootTtl

string (Duration format)

선택사항입니다. 클러스터 노드가 Google에 대한 네트워크 연결 없이 재부팅되고 작동할 수 있는 기간입니다. 기본값 0은 허용되지 않음을 의미합니다. 최대 7일입니다.

소수점 아래가 최대 9자리까지이고 's'로 끝나는 초 단위 기간입니다. 예를 들면 "3.5s"입니다.

메서드

create

특정 프로젝트와 위치에 새 클러스터를 만듭니다.

delete

단일 클러스터를 삭제합니다.

generateAccessToken

클러스터의 액세스 토큰을 생성합니다.

generateOfflineCredential

클러스터의 오프라인 사용자 인증 정보를 생성합니다.

get

단일 클러스터의 세부정보를 가져옵니다.

list

특정 프로젝트 및 위치의 클러스터를 나열합니다.

patch

단일 클러스터의 매개변수를 업데이트합니다.

upgrade

단일 클러스터를 업그레이드합니다.