이 문서에서는 베어메탈용 Google Distributed Cloud(소프트웨어 전용)의 클러스터 키 없는 모드 기능을 설정하고 사용하는 방법을 설명합니다. 키 없는 모드는 서비스 계정 키 대신 단기 토큰과 워크로드 아이덴티티 제휴를 사용하여 클러스터를 만들고 보호합니다. 서비스 계정의 단기 사용자 인증 정보는 OAuth 2.0 액세스 토큰 형태로 제공됩니다. 액세스 토큰은 기본적으로 1시간 후에 만료됩니다. 단, 이미지 가져오기 토큰은 12시간 후에 만료됩니다.
키 없는 모드는 버전 1.30 이상 클러스터에서만 사용할 수 있습니다.
반면 클러스터 생성 및 보호를 위한 표준 방법인 키 모드는 다운로드된 서비스 계정 키를 사용합니다. 자체 관리형(관리자, 하이브리드 또는 독립형) 클러스터를 만들 때 다운로드한 키의 경로를 지정합니다. 그러면 키가 클러스터 및 관리 사용자 클러스터에 보안 비밀로 저장됩니다. 기본적으로 서비스 계정 키는 만료되지 않으며 올바르게 관리되지 않으면 보안 위험이 발생합니다.
키 없는 모드는 서비스 계정 키를 사용하는 것보다 다음과 같은 두 가지 주요 이점이 있습니다.
보안 개선: 서비스 계정 키를 올바르게 관리하지 않으면 보안 위험이 발생할 수 있습니다. OAuth 2.0 토큰과 워크로드 아이덴티티 제휴는 서비스 계정 키의 권장 대안으로 간주됩니다. 서비스 계정 토큰에 관한 자세한 내용은 단기 서비스 계정 사용자 인증 정보를 참조하세요. 워크로드 아이덴티티 제휴에 관한 자세한 내용은 워크로드 아이덴티티 제휴를 참조하세요.
유지보수 감소: 서비스 계정 키는 더 많은 유지보수가 필요합니다. 이러한 키를 정기적으로 순환하고 보호하는 것은 상당한 관리 부담이 될 수 있습니다.
이 기능은 미리보기 버전으로 제공되며 몇 가지 알려진 제한사항이 있습니다.
시작하기 전에
다음 섹션에서는 서비스 계정을 만들고 키 없는 모드에 필요한 역할을 부여합니다. 이 문서의 설정 안내는 Google Cloud 리소스 설정의 안내를 대체하는 것이 아니라 표준 Google Distributed Cloud 소프트웨어 전용 설치 기본 요건과 함께 필요합니다. 키 없는 모드에 필요한 서비스 계정은 Google Cloud 리소스 설정에 설명된 서비스 계정과 유사하지만 고유한 이름이 지정되어 있으므로 기본 서비스 계정 키를 사용하는 클러스터를 방해하지 않습니다.
이 페이지는 기본 기술 인프라의 수명 주기를 설정, 모니터링, 관리하는 관리자, 설계자, 운영자를 위해 작성되었습니다. Google Cloud 콘텐츠에서 참조하는 일반적인 역할 및 예시 작업에 대해 자세히 알아보려면 일반 GKE 기업 사용자 역할 및 태스크를 참조하세요.
다음 표에서는 키 없는 모드에 필요한 서비스 계정을 설명합니다.
서비스 계정 | 목적 | 역할 |
---|---|---|
ADMIN_SA |
이 서비스 계정을 사용하여 토큰을 생성합니다. 각 토큰에는 서비스 계정 역할과 연결된 권한이 있습니다. |
roles/gkehub.admin roles/logging.admin roles/monitoring.admin roles/monitoring.dashboardEditor roles/iam.serviceAccountAdmin roles/iam.serviceAccountTokenCreator
|
baremetal-controller |
Connect Agent는 이 서비스 계정을 사용하여 클러스터와 Google Cloud 간의 연결을 유지하고 Fleet에 클러스터를 등록합니다.
이 서비스 계정은 baremetal-gcr 서비스 계정의 토큰도 새로고침합니다.
|
roles/gkehub.admin roles/monitoring.dashboardEditor roles/serviceusage.serviceUsageViewer
|
baremetal-cloud-ops |
Stackdriver Agent는 이 서비스 계정을 사용하여 클러스터의 로그와 측정항목을 Cloud Logging 및 Cloud Monitoring으로 내보냅니다. |
roles/logging.logWriter roles/monitoring.metricWriter roles/stackdriver.resourceMetadata.writer roles/opsconfigmonitoring.resourceMetadata.writer roles/monitoring.dashboardEditor roles/monitoring.viewer roles/serviceusage.serviceUsageViewer roles/kubernetesmetadata.publisher
|
baremetal-gcr |
Google Distributed Cloud는 이 서비스 계정을 사용하여 Container Registry에서 컨테이너 이미지를 다운로드합니다. | 없음 |
키 없는 모드용 서비스 계정 만들기 및 구성
다음 섹션에는 필요한 서비스 계정을 만들고 키 없는 모드에 필요한 역할을 부여하는 안내가 포함되어 있습니다. 서비스 계정 및 필요한 역할의 목록은 이전 섹션의 표를 참조하세요.
서비스 계정 만들기
키 없는 모드의 서비스 계정을 만들려면 다음 단계를 사용합니다.
관리자 워크스테이션에서 Google Cloud CLI에 로그인합니다.
gcloud auth login
원하는 경우 관리 서비스 계정을 만듭니다.
ADMIN_SA
서비스 계정의 이름은 임의로 지정할 수 있습니다. 이전 섹션의 표에 지정된 역할이 있는 기존 서비스 계정을 사용할 수도 있지만 최소 권한의 원칙에 위배되므로 권장하지 않습니다.gcloud iam service-accounts create ADMIN_SA \ --project=PROJECT_ID
PROJECT_ID
를 Google Cloud 프로젝트의 ID로 바꿉니다.키 없는 기능을 위한 표준 서비스 계정을 만듭니다.
키가 없는 기능의 표준 서비스 계정에는 원하는 경우 맞춤설정할 수 있는 사전 지정된 이름이 있습니다.
gcloud iam service-accounts create baremetal-controller \ --project=PROJECT_ID gcloud iam service-accounts create baremetal-cloud-ops \ --project=PROJECT_ID gcloud iam service-accounts create baremetal-gcr \ --project=PROJECT_ID
PROJECT_ID
를 Google Cloud 프로젝트의 ID로 바꿉니다.
서비스 계정에 ID 및 액세스 관리 정책 바인딩 추가
ADMIN_SA
서비스 계정에 필요한 역할의 IAM 정책 바인딩을 추가합니다.gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/gkehub.admin gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/logging.admin gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/monitoring.admin gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/monitoring.dashboardEditor gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/iam.serviceAccountAdmin gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/iam.serviceAccountTokenCreator
baremetal-controller
서비스 계정에 필요한 역할의 IAM 정책 바인딩을 추가합니다.gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:baremetal-controller@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/gkehub.admin gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:baremetal-controller@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/monitoring.dashboardEditor gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:baremetal-controller@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/serviceusage.serviceUsageViewer
baremetal-cloud-ops
서비스 계정에 필요한 역할의 IAM 정책 바인딩을 추가합니다.gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/logging.logWriter gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/monitoring.dashboardEditor gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/monitoring.metricWriter gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/opsconfigmonitoring.resourceMetadata.writer gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/stackdriver.resourceMetadata.writer gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/monitoring.viewer gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/serviceusage.serviceUsageViewer gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/kubernetesmetadata.publisher
baremetal-controller
서비스 계정에baremetal-gcr
서비스 계정을 대신하여 액세스 토큰을 생성할 수 있는 권한을 부여합니다.gcloud iam service-accounts add-iam-policy-binding \ baremetal-gcr@PROJECT_ID.iam.gserviceaccount.com \ --member=serviceAccount:baremetal-controller@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/iam.serviceAccountTokenCreator
클러스터에 워크로드 아이덴티티 제휴 구성
GKE용 워크로드 아이덴티티 제휴를 사용하여 Google Cloud 액세스 권한을 제공하려면 애플리케이션 ID에 해당하는 주 구성원에게 특정 Google Cloud 리소스에 대한 액세스 권한을 부여하는 IAM 허용 정책을 만듭니다. 이 경우 워크로드 아이덴티티 제휴는 클러스터의 특정 운영자에게 액세스 권한을 부여합니다. GKE용 워크로드 아이덴티티 제휴에 관한 자세한 내용은 IAM 문서의 워크로드 아이덴티티 제휴를 참조하세요.
클러스터 운영자의 IAM 정책 바인딩 추가
다음 명령어는 anthos-cluster-operator
Kubernetes 서비스 계정에 baremetal-controller
서비스 계정을 가장하고 클러스터를 대신하여 Google Cloud 리소스와 상호작용할 수 있는 권한을 부여합니다.
부트스트랩 클러스터를 비롯한 각 키 없는 클러스터(또는 계획된 키 없는 클러스터)의 경우 클러스터의
anthos-cluster-operator
에baremetal-controller
서비스 계정을 명의 도용할 수 있는 권한을 부여합니다.다음 명령어에서
principalSet
는 워크로드 ID 풀과kube-system
네임스페이스의 Kubernetes 서비스 계정anthos-cluster-operator
로 구성됩니다.gcloud iam service-accounts add-iam-policy-binding \ baremetal-controller@PROJECT_ID.iam.gserviceaccount.com \ --member=principalSet://iam.googleapis.com/projects/PROJECT_NUM/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/attribute.fleetclusteridentity/projects/PROJECT_ID/locations/REGION/memberships/CLUSTER_NAME/ns/kube-system/sa/anthos-cluster-operator \ --role=roles/iam.workloadIdentityUser \ --project=PROJECT_ID
다음을 바꿉니다.
PROJECT_NUM
: 자동으로 생성되는 프로젝트의 고유 식별자입니다.REGION
: 클러스터의 Fleet 멤버십 위치입니다. 기본값은global
입니다. 자세한 내용은 Fleet 멤버십 위치를 참조하세요.CLUSTER_NAME
: 클러스터의 이름입니다. 기본적으로 부트스트랩 클러스터 이름은bmctl-MACHINE_NAME
입니다.
baremetal-controller
서비스 계정의 정책 바인딩을 확인합니다.gcloud iam service-accounts get-iam-policy \ baremetal-controller@PROJECT_ID.iam.gserviceaccount.com
응답은 다음과 비슷하게 표시됩니다.
bindings: - members: - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/bmctl-admin-ws/kube-system/anthos-cluster-operator - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/admin-cluster/kube-system/anthos-cluster-operator - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/user-cluster/kube-system/anthos-cluster-operator role: roles/iam.workloadIdentityUser etag: BwYoN3QLig0= version: 1
Google Cloud Observability 운영자의 IAM 정책 바인딩 추가
다음 명령어는 다음 Google Cloud Observability Kubernetes 서비스 계정에 baremetal-cloud-ops
서비스 계정을 가장하고 클러스터를 대신하여 Google Cloud 리소스와 상호작용할 수 있는 권한을 부여합니다.
cloud-audit-logging
gke-metrics-agent
kubestore-collector
metadata-agent
stackdriver-log-forwarder
부트스트랩 클러스터를 포함한 각 키 없는 클러스터(또는 계획된 키 없는 클러스터)의 경우 클러스터의 Google Cloud Observability 운영자에게
baremetal-cloud-ops
서비스 계정을 가장할 수 있는 권한을 부여합니다.다음 명령어에서
principalSet
는 워크로드 아이덴티티 풀과kube-system
네임스페이스의 Kubernetes 서비스 계정(예:cloud-audit-logging
)으로 구성됩니다.gcloud iam service-accounts add-iam-policy-binding \ baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \ --member=principalSet://iam.googleapis.com/projects/PROJECT_NUM/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/attribute.fleetclusteridentity/projects/PROJECT_ID/locations/REGION/memberships/CLUSTER_NAME/ns/kube-system/sa/cloud-audit-logging \ --role=roles/iam.workloadIdentityUser \ --project=PROJECT_ID gcloud iam service-accounts add-iam-policy-binding \ baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \ --member=principalSet://iam.googleapis.com/projects/PROJECT_NUM/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/attribute.fleetclusteridentity/projects/PROJECT_ID/locations/REGION/memberships/CLUSTER_NAME/ns/kube-system/sa/gke-metrics-agent \ --role=roles/iam.workloadIdentityUser \ --project=PROJECT_ID gcloud iam service-accounts add-iam-policy-binding \ baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \ --member=principalSet://iam.googleapis.com/projects/PROJECT_NUM/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/attribute.fleetclusteridentity/projects/PROJECT_ID/locations/REGION/memberships/CLUSTER_NAME/ns/kube-system/sa/kubestore-collector \ --role=roles/iam.workloadIdentityUser \ --project=PROJECT_ID gcloud iam service-accounts add-iam-policy-binding \ baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \ --member=principalSet://iam.googleapis.com/projects/PROJECT_NUM/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/attribute.fleetclusteridentity/projects/PROJECT_ID/locations/REGION/memberships/CLUSTER_NAME/ns/kube-system/sa/metadata-agent \ --role=roles/iam.workloadIdentityUser \ --project=PROJECT_ID gcloud iam service-accounts add-iam-policy-binding \ baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com \ --member=principalSet://iam.googleapis.com/projects/PROJECT_NUM/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog/attribute.fleetclusteridentity/projects/PROJECT_ID/locations/REGION/memberships/CLUSTER_NAME/ns/kube-system/sa/stackdriver-log-forwarder \ --role=roles/iam.workloadIdentityUser \ --project=PROJECT_ID
baremetal-cloud-ops
서비스 계정의 정책 바인딩을 확인합니다.gcloud iam service-accounts get-iam-policy \ baremetal-cloud-ops@PROJECT_ID.iam.gserviceaccount.com
응답은 다음과 비슷하게 표시됩니다.
bindings: - members: - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/bmctl-admin-ws/kube-system/cloud-audit-logging - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/bmctl-admin-ws/kube-system/gke-metrics-agent - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/bmctl-admin-ws/kube-system/kubestore-collector - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/bmctl-admin-ws/kube-system/metadata-agent - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/bmctl-admin-ws/kube-system/stackdriver-log-forwarder - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/admin-cluster/kube-system/cloud-audit-logging - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/admin-cluster/kube-system/gke-metrics-agent - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/admin-cluster/kube-system/kubestore-collector - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/admin-cluster/kube-system/metadata-agent - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/admin-cluster/kube-system/stackdriver-log-forwarder - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/user-cluster/kube-system/cloud-audit-logging - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/user-cluster/kube-system/gke-metrics-agent - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/user-cluster/kube-system/kubestore-collector - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/user-cluster/kube-system/metadata-agent - principalSet://iam.googleapis.com/projects/112233445566/locations/global/workloadIdentityPools/my-project.svc.id.goog/attribute.fleetclusteridentity/user-cluster/kube-system/stackdriver-log-forwarder role: roles/iam.workloadIdentityUser etag: BwYhT4gL-dY= version: 1
클러스터 구성
키 없는 모드를 사용하는 클러스터의 가장 명백한 클러스터 구성 차이점은 다운로드된 서비스 계정 키의 경로를 지정하지 않는다는 점입니다.
구성 파일에서 클러스터 설정을 입력할 때는 다음 예와 같이 사용자 인증 정보 섹션의 서비스 계정 키 경로를 비워 둡니다.
gcrKeyPath: sshPrivateKeyPath: /home/USERNAME/.ssh/id_rsa gkeConnectAgentServiceAccountKeyPath: gkeConnectRegisterServiceAccountKeyPath: cloudOperationsServiceAccountKeyPath: --- apiVersion: v1 kind: Namespace metadata: name: cluster-CLUSTER_NAME --- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: CLUSTER_NAME namespace: cluster-CLUSTER_NAME spec: type: admin profile: default anthosBareMetalVersion: 1.30.0-gke.1930 ...
원하는 경우 키 없는 모드 서비스 계정의 맞춤 이름을 설정합니다.
맞춤 이름을 지정하면 기존 서비스 계정을 사용할 수 있습니다. 두 개 이상의 서비스 계정에 동일한 맞춤 이름을 지정하면 더 적은 수의 서비스 계정으로 통합할 수 있습니다.
apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: CLUSTER_NAME namespace: cluster-CLUSTER_NAME annotations: baremetal.cluster.gke.io/controller-service-account: "CUSTOM_CONTROLLER_GSA" baremetal.cluster.gke.io/cloud-ops-service-account: "CUSTOM_CLOUD_OPS_GSA" baremetal.cluster.gke.io/gcr-service-account: "CUSTOM_GCR_GSA" spec: type: admin profile: default anthosBareMetalVersion: 1.30.0-gke.1930 ...
클러스터 작업
키가 없는 모드 클러스터를 만들거나 업그레이드하거나 삭제할 준비가 되면 다음 단계를 사용합니다.
Google Cloud CLI에 로그인합니다.
gcloud auth login
관리자 워크스테이션에서
ADMIN_SA
서비스 계정의 키를 만들고 다운로드합니다.gcloud iam service-accounts keys create TMP_KEY_FILE_PATH \ --iam-account=ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com
TMP_KEY_FILE_PATH
을 다운로드한 키 파일의 경로(파일 이름 포함)로 바꿉니다.ADMIN_SA
서비스 계정으로 Google Cloud에 대한 액세스 권한을 승인합니다.gcloud auth activate-service-account ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com \ --key-file=TMP_KEY_FILE_PATH
다운로드한 JSON 키 파일을 삭제합니다.
rm TMP_KEY_FILE_PATH
관리자 워크스테이션에서
ADMIN_SA
서비스 계정으로 만든 액세스 토큰 값을 사용하여GCP_ACCESS_TOKEN
환경 변수를 만듭니다.export GCP_ACCESS_TOKEN=$(gcloud auth print-access-token \ --impersonate-service-account=ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com)
기본적으로 액세스 토큰의 수명은 1시간입니다.
ADMIN_SA
서비스 계정에서 올바른 만료일로 토큰을 생성했는지 확인합니다.curl "https://oauth2.googleapis.com/tokeninfo?access_token=$GCP_ACCESS_TOKEN"
응답에는 다음과 유사한 줄이 포함되어 있어야 합니다.
... "expires_in": "3582", "email": "ADMIN_SA@PROJECT_ID.iam.gserviceaccount.com)", ...
만료 값은 초 단위이며
3600
보다 작아야 합니다. 이는 토큰이 1시간 이내에 만료됨을 나타냅니다.bmctl
명령어를 실행하여 키가 없는 모드 클러스터를 만들거나 업그레이드하거나 삭제합니다.bmctl
가GCP_ACCESS_TOKEN
환경 변수가 설정되었음을 감지하면 토큰 유효성 검사를 실행합니다. 토큰이 유효하면bmctl
에서 키 없는 모드 클러스터 작업에 이를 사용합니다.키가 없는 모드를 사용하는 클러스터의 경우 다음 명령어를 실행하려면
GCP_ACCESS_TOKEN
환경 변수를 유효하고 활성 상태인 액세스 토큰으로 설정해야 합니다.bmctl create cluster -c CLUSTER_NAME
bmctl reset cluster -c CLUSTER_NAME
bmctl upgrade cluster -c CLUSTER_NAME
제한사항
키 없는 모드가 미리보기 상태인 동안 다음 기능은 키 없는 모드에서 실행되는 클러스터에서 사용할 수 없습니다.
- 프록시 서버 사용
- VPC 서비스 제어