이 페이지는 팀을 위해 Fleet 사용을 설정하고 관리하려는 플랫폼 관리자를 대상으로 합니다. Fleet팀 관리 기능은 GKE Enterprise를 사용 설정한 사용자에게만 제공됩니다.
이 페이지를 읽으려면 먼저 Fleet 팀 관리를 숙지해야 합니다.
팀 설정 개요
Google Cloud CLI, Google Cloud 콘솔 또는 Terraform을 사용하여 팀을 설정할 수 있습니다.
일반적인 팀 설정 절차는 다음과 같습니다.
- 팀 액세스를 설정할 Fleet을 선택하거나 만들고 설정을 완료하기 위한 올바른 권한과 API가 있는지 확인합니다.
- (선택사항이지만 권장됨) Fleet 클러스터에서 Google 그룹스에 대한 액세스 제어를 설정합니다.
- 팀을 구성할 사용자를 결정합니다. 팀에는 Google 그룹스(권장) 또는 개별 계정이 포함될 수 있습니다.
- 각 팀 구성원에게 Fleet 및 팀 리소스에 대한 원하는 수준의 액세스 권한을 선택합니다.
- 팀의 팀 범위를 만듭니다.
- Fleet 구성원 클러스터 하나 이상(또는 모두)을 팀 범위에 추가합니다.
- Fleet 수준 네임스페이스를 정의하고 이를 팀 범위와 연결합니다.
- (선택사항) 구성 동기화를 사용하여 Kubernetes 리소스를 팀 범위 및 네임스페이스에 동기화합니다.
그러면 팀에서 사용자 인증 정보를 가져와 Connect Gateway를 사용하여 클러스터에 액세스할 수 있습니다.
Google Cloud CLI 설정
Google Cloud 콘솔을 사용해서 팀 범위를 만들더라도 필요한 API를 사용 설정하는 등 Fleet을 설정하는 동안 일부 기본 요건을 완료하기 위해 gcloud CLI를 설정해야 합니다.
Google Cloud CLI 알파 구성요소를 포함하여 최신 버전의 Google Cloud CLI가 있는지 확인합니다. Fleet팀 관리 명령어를 사용하려면 버전 419.0.0 이상이 필요합니다.
다음 명령어를 실행하여 Google Cloud에 로그인합니다.
gcloud auth login
선택한 Fleet의 호스트 프로젝트에서 사용할 gcloud CLI를 초기화하거나 다음 명령어를 실행하여 Fleet 호스트 프로젝트를 기본값으로 설정합니다.
gcloud config set project PROJECT_ID
필요한 경우 다음 명령어에
--project
플래그를 사용해서 다른 Fleet 호스트 프로젝트를 지정할 수 있습니다.
Fleet 설정
새 팀을 설정할 Fleet을 선택하거나 만듭니다. Fleet을 구성하는 데 도움이 되는 가이드라인 및 예시는 Fleet 예시 및 Fleet 계획의 기타 가이드를 참조하세요.
아직 Fleet이 없는 프로젝트에 명명된 Fleet을 새로 만들려면 다음 명령어를 실행합니다. 먼저 Google Cloud CLI를 설정해야 합니다.
gcloud container fleet create \
--display-name=NAME \
--project=FLEET_HOST_PROJECT_ID
display-name
을 지정하지 않으면 Fleet 호스트 프로젝트 이름을 기반으로 기본 표시 이름을 사용하여 새 Fleet이 생성됩니다.
필요한 IAM 역할
Fleet 호스트 프로젝트에 roles/owner
가 없으면 팀 범위와 네임스페이스를 만들고 구성하기 위해 roles/gkehub.admin
이 필요합니다. 프로젝트 소유자는 다음 명령어를 사용하여 이 역할을 부여할 수 있습니다.
gcloud projects add-iam-policy-binding PROJECT_ID \
--member user:USER_EMAIL_ADDRESS \
--role='roles/gkehub.admin'
API 사용 설정
Fleet 호스트 프로젝트에 GKE Enterprise API를 포함하여 모든 필수 API가 사용 설정되었는지 확인합니다.
gcloud services enable --project=PROJECT_ID \
gkehub.googleapis.com \
container.googleapis.com \
connectgateway.googleapis.com \
cloudresourcemanager.googleapis.com \
iam.googleapis.com \
anthos.googleapis.com
Fleet 팀 관리를 구성한 후 GKE Enterprise API를 중지하면 일부 기능이 계속 작동하지만 팀 범위 또는 Fleet 네임스페이스를 업데이트하거나 만들 수 없습니다.
Google 그룹스로 액세스 제어를 위해 클러스터 구성
추가 클러스터 구성 없이 RBAC를 사용하여 팀의 액세스 권한을 사용자별로 Fleet 구성원 클러스터에 구성할 수 있지만 팀 구성원에게 팀 Google 그룹의 멤버십 기반으로 클러스터에 대한 액세스 권한을 부여하는 것이 좋습니다. 그룹 멤버십을 기준으로 승인하면 계정마다 별도의 승인을 설정할 필요가 없으므로 정책을 보다 간편하게 관리하고 감사할 수 있으며 팀에 가입하거나 탈퇴할 때 클러스터에서 직접 개별 사용자를 추가/삭제할 필요가 없습니다. 다음 가이드에 따라 팀 범위에 할당하려는 클러스터가 액세스 제어를 위해 Google 그룹스 및 Connect Gateway를 사용할 수 있는지 확인합니다.
- Google Cloud의 GKE 클러스터의 경우 RBAC용 Google 그룹스 구성의 안내를 따르세요.
- Google Cloud 외부의 Fleet 구성원 클러스터의 경우 Google 그룹스를 사용하여 Connect 게이트웨이 설정의 안내를 따르세요.
새 팀 설정
다음 안내에서는 팀의 새 팀 범위를 만드는 방법을 보여줍니다.
팀 액세스 권한 선택
먼저 팀을 구성할 사용자를 결정하거나 찾습니다. 팀 설정에서 중요한 부분은 Google Cloud 콘솔에서 클러스터를 보고 팀 범위 전체에서 로그를 볼 수 있는 기능을 포함하여 이러한 팀 구성원에게 Fleet에 대한 액세스 권한을 부여하는 것입니다. 팀 구성원의 역할에 따라 팀 범위 내에서 네임스페이스를 만드는 권한(gkehub.ScopeAdmin
또는 gkehub.ScopeEditor
에서 사용 가능)을 위임하거나 RBAC 역할 바인딩을 업데이트하도록 허용할 수 있습니다(gkehub.ScopeAdmin
만 해당). 이 설정을 간소화하기 위해 Fleet팀 관리는 팀 범위 관리자, 편집자 또는 뷰어가 해당 범위에서 작업할 때 필요할 수 있는 전체 IAM 및 Kubernetes RBAC 권한 집합을 포함하여 세 가지 커스텀 권한 캐릭터를 제공합니다. 그런 후 다음 섹션의 설명대로 팀을 설정할 때 이러한 캐릭터를 팀 구성원에게 할당할 수 있습니다.
다음 표에서는 각 캐릭터에 부여되는 각 유형의 권한을 보여줍니다.
설명 | 유형 | 범위 관리자 캐릭터 | 범위 편집자 캐릭터 | 범위 뷰어 캐릭터 |
---|---|---|---|---|
팀 범위 및 해당 네임스페이스에 대한 액세스 권한입니다. |
팀 범위의 IAM 바인딩 | roles/gkehub.ScopeAdmin | roles/gkehub.ScopeEditor | roles/gkehub.ScopeViewer |
측정항목, 장기 실행 작업, Connect 게이트웨이를 포함한 Fleet 호스트 프로젝트에 대한 액세스 권한입니다. |
Fleet 호스트 프로젝트의 IAM 바인딩 | roles/gkehub.ScopeEditorProjectLevel | roles/gkehub.ScopeEditorProjectLevel | roles/gkehub.ScopeViewerProjectLevel |
팀 범위의 로그 버킷에 대한 액세스 권한입니다. |
Fleet 호스트 프로젝트의 IAM 바인딩(액세스되는 리소스가 버킷 이름인 조건 포함)입니다. | roles/logging.viewAccessor | roles/logging.viewAccessor | roles/logging.viewAccessor |
범위의 클러스터 내 Kubernetes 리소스에 대한 액세스 권한입니다. |
팀 범위의 네임스페이스에 적용되는 범위의 RBAC 바인딩입니다. | Kubernetes 기본 역할: 관리자 | Kubernetes 기본 역할: 수정 | Kubernetes 기본 역할: 뷰 |
팀 관리자가 개별 사용자에게 액세스 권한을 부여할 수도 있지만, 이전 섹션의 설명과 같이 Google 그룹 멤버십을 기준으로 팀 구성원에게 리소스 액세스 권한을 부여하는 것이 좋습니다.
이러한 캐릭터가 사용자의 요구사항을 완전히 충족하지 않는 경우 IAM(gcloud container fleet scopes add-iam-policy-binding
사용) 및 RBAC(gcloud container fleet scopes rbacrolebindings create
사용) 역할을 개별적으로 바인딩할 수도 있습니다. 이러한 바인딩을 관리하는 데 사용할 수 있는 추가 명령어는 Google Cloud CLI 참고 문서를 확인하세요.
팀 범위 설정
gcloud
팀 범위 만들기
Fleet에서 새 팀 범위를 만들려면 다음 명령어를 실행합니다. 여기서 SCOPE_NAME은 새 범위에 대해 선택한 고유 식별 이름입니다.
gcloud container fleet scopes create SCOPE_NAME
팀 범위에 클러스터 추가
기존 Fleet 구성원만 팀 범위에 추가될 수 있습니다. 이 안내에서는 범위에 추가하려는 클러스터가 이미 Fleet 멤버라고 가정합니다. Fleet에 클러스터를 추가해야 하는 경우 Fleet 만들기에서 클러스터 유형에 해당하는 안내에 따라 클러스터를 등록합니다. 앞에서 설명한 대로 새로 등록된 클러스터가 액세스 제어용 Google 그룹스를 사용하도록 구성되었는지 확인합니다.
Fleet 구성원 클러스터는 Fleet 호스트 프로젝트의 여러 팀 범위에 제한 없이 추가될 수 있습니다.
클러스터를 팀 범위에 추가하려면 다음 명령어를 실행합니다.
gcloud container fleet memberships bindings create BINDING_NAME \
--membership MEMBERSHIP_NAME \
--scope SCOPE_NAME \
--location MEMBERSHIP_LOCATION
다음을 바꿉니다.
- BINDING_NAME: 클러스터와 팀 범위 사이의 관계를 나타내는 이름입니다. MEMBERSHIP_NAME-SCOPE_NAME을 사용하는 것이 좋습니다.
- MEMBERSHIP_NAME: Fleet 내의 클러스터 고유 식별자(일반적으로 클러스터 이름)입니다.
- (선택사항) MEMBERSHIP_LOCATION: 클러스터의 멤버십 위치입니다. 생략할 경우 값은 클러스터 등록 시 기본값인
global
입니다.
Fleet 네임스페이스 만들기
팀 범위에 네임스페이스를 만들려면 다음 명령어를 실행합니다.
gcloud container fleet scopes namespaces create NAMESPACE_NAME --scope=SCOPE_NAME
다음을 바꿉니다.
- NAMESPACE_NAME: Fleet 내에서 네임스페이스에 대해 선택한 고유한 이름입니다. NAMESPACE_NAME이 Fleet 네임스페이스 이름 지정 제한사항과 충돌하지 않도록 해야 합니다.
- SCOPE_NAME: 네임스페이스를 사용할 팀 범위입니다.
이 명령어는 팀 범위의 각 클러스터에 NAMESPACE_NAME이라는 Kubernetes 네임스페이스를 만듭니다. 개발자가 팀 구성원에게 범위에 대한 액세스 권한을 부여한 후에 팀 구성원은 다른 Kubernetes 네임스페이스와 같이 NAMESPACE_NAME을 사용할 수 있습니다. 이미 팀 범위에 NAMESPACE_NAME이라는 기존 Kubernetes 네임스페이스가 있으면 새 Fleet 네임스페이스의 일부로 간주됩니다. 경우에 따라 이를 네임스페이스 온보딩이라고 부릅니다.
팀 구성원에게 팀 범위에 대한 액세스 권한 부여
그런 후 관련 Google 그룹스에 새 범위에서 작동하도록 적절한 IAM 및 RBAC 권한이 있는지 확인합니다.
gcloud alpha container fleet scopes add-app-operator-binding SCOPE_ID
--role=ROLE --group=TEAM_EMAIL --project PROJECT_ID
- PROJECT_ID는 Fleet 호스트 프로젝트의 ID입니다.
- TEAM_EMAIL은 팀의 Google 그룹 이메일 주소입니다.
- SCOPE_ID는 생성된 범위의 ID입니다.
- ROLE은 그룹이 팀 범위에 속하는 권한 캐릭터입니다. 이 매개변수의 값은
admin
(범위 관리자),edit
(범위 편집자) 또는view
(범위 뷰어)일 수 있습니다.
범위에 개별 사용자 액세스 권한을 부여해야 하는 경우 다음 명령어를 대신 실행합니다. 여기서 USER_EMAIL은 사용자의 Google ID 이메일 주소입니다.
gcloud alpha container fleet scopes add-app-operator-binding SCOPE_ID
--role=ROLE --user=USER_EMAIL --project PROJECT_ID
콘솔
팀 범위 만들기
Fleet 호스트 프로젝트가 선택된 상태에서 Google Cloud 콘솔의 팀 섹션으로 이동합니다.
페이지 상단에서 팀 범위 만들기를 클릭합니다.
팀 기본사항 페이지에서 이름에 팀 범위에 대한 고유 이름을 입력합니다. 팀 범위를 만든 후에는 이 이름을 변경할 수 없습니다.
범위에 팀 멤버를 추가하려면 팀 멤버 추가를 클릭합니다.
- 유형으로 사용자를 선택해서 개별 팀 멤버를 추가하거나 그룹을 선택해서 Google 그룹을 추가합니다(권장됨).
- 사용자 또는 그룹에 대해 팀 멤버 또는 그룹의 이메일 주소를 입력합니다.
- 역할에서 범위 관리자, 범위 편집자, 범위 뷰어를 선택합니다. 이는 팀 액세스 권한 선택에 설명된 대로 범위와 Fleet에서 여러 IAM 및 RBAC 바인딩을 구성합니다.
이 단계에서 클러스터 및 네임스페이스를 추가하지 않고 팀 범위를 만들려면 팀 범위 만들기를 클릭합니다. 그렇지 않으면 다음 섹션을 계속해서 범위에 클러스터를 추가합니다.
팀 범위에 클러스터 추가
팀 범위에 클러스터를 연결하려면 클러스터가 기존 Fleet 멤버여야 합니다. Fleet에 클러스터를 추가해야 하는 경우 Fleet 만들기에서 클러스터 유형에 해당하는 안내에 따라 클러스터를 등록합니다. 앞에서 설명한 대로 새로 등록된 클러스터가 액세스 제어용 Google 그룹스를 사용하도록 구성되었는지 확인합니다.
Fleet 구성원 클러스터를 Fleet 호스트 프로젝트의 여러 팀 범위에 추가할 수 있으므로 여러 팀이 같은 클러스터에서 워크로드를 실행할 수 있습니다.
- 팀 기본사항 페이지에서 범위에 팀 멤버를 추가한 후 계속을 클릭합니다.
- 클러스터 페이지에서 이 팀 범위와 연결할 Fleet 클러스터를 선택할 수 있습니다. 클러스터 드롭다운에서 추가하려는 클러스터를 선택하고 확인을 클릭합니다.
Fleet 네임스페이스 만들기
팀 멤버가 다른 Kubernetes 네임스페이스와 같은 Fleet 네임스페이스를 사용할 수 있습니다. Fleet 네임스페이스를 만들면 아직 Kubernetes 네임스페이스가 없는 경우 팀 범위에 생성됩니다.
- 클러스터 페이지에서 클러스터를 팀 범위에 추가한 후 계속을 클릭합니다.
- 네임스페이스 페이지에서 네임스페이스 추가를 클릭합니다.
- 이름에 Fleet 내의 네임스페이스에 대한 고유 이름 또는 온보딩하려는 기존 네임스페이스의 이름을 입력합니다. 이름이 Fleet 네임스페이스 이름 지정 제한사항과 충돌하지 않도록 해야 합니다.
- 범위에 Fleet 네임스페이스를 더 추가하려면 이전 단계를 반복합니다.
- 팀 범위를 만들려면 팀 범위 만들기를 클릭합니다. 팀 범위가 생성되면 필요한 경우 팀 섹션에서 팀 범위 이름을 클릭하여 팀 범위를 보고 수정할 수 있습니다.
Terraform
이 섹션에서는 Terraform을 사용해서 새 팀을 설정하는 방법을 보여줍니다. 자세한 내용과 기타 예시는 다음 리소스에 대한 참조 문서를 확인하세요.
google_gke_hub_scope
google_gke_hub_membership_binding
google_gke_hub_namespace
google_gke_hub_scope_rbac_role_binding
팀 범위 만들기
팀 범위를 만들려면 Terraform 구성에서 다음 블록을 사용할 수 있습니다.
resource "google_gke_hub_scope" "TF_SCOPE_RESOURCE_NAME" {
scope_id = "SCOPE_NAME"
}
다음을 바꿉니다.
- TF_SCOPE_RESOURCE_NAME: 이 블록에서 생성된 Terraform
google_gke_hub_scope
리소스를 고유하게 식별하기 위해 선택하는 이름입니다. - SCOPE_NAME: 팀 범위의 고유한 식별 이름입니다.
범위에 클러스터 추가
기존 Fleet 구성원만 팀 범위에 추가될 수 있습니다. Fleet에 클러스터를 추가해야 하는 경우 Fleet 만들기에서 클러스터 유형에 해당하는 안내에 따라 클러스터를 등록합니다. 앞에서 설명한 대로 새로 등록된 클러스터가 액세스 제어용 Google 그룹스를 사용하도록 구성되었는지 확인합니다.
클러스터를 팀 범위에 추가하려면 구성에서 다음 블록을 사용합니다.
resource "google_gke_hub_membership_binding" "TF_MEMBERSHIP_BINDING_RESOURCE_NAME" {
membership_binding_id = "BINDING_NAME"
scope = SCOPE_NAME
membership_id = MEMBERSHIP_NAME
location = "MEMBERSHIP_LOCATION"
}
다음을 바꿉니다.
- TF_MEMBERSHIP_BINDING_RESOURCE_NAME: 이 블록으로 생성된
google_gke_hub_membership_binding
리소스를 식별하는 이름입니다. - BINDING_NAME: 클러스터와 범위 사이의 관계를 나타내는 이름입니다. MEMBERSHIP_NAME-SCOPE_NAME을 사용하는 것이 좋습니다.
- SCOPE_NAME: 팀 범위의 이름입니다.
- MEMBERSHIP_NAME: Fleet 내의 클러스터 고유 식별자(일반적으로 클러스터 이름)입니다.
- MEMBERSHIP_LOCATION: 클러스터의 멤버십 위치입니다.
Fleet 네임스페이스 만들기
팀 멤버가 다른 Kubernetes 네임스페이스와 같은 Fleet 네임스페이스를 사용할 수 있습니다. 새 네임스페이스를 만들거나 기존 네임스페이스를 온보딩할 수 있습니다. Fleet 네임스페이스를 만들면 아직 Kubernetes 네임스페이스가 없는 경우 팀 범위에 생성됩니다.
Fleet 네임스페이스를 만들려면 구성에서 다음 블록을 사용합니다.
resource "google_gke_hub_namespace" "TF_NAMESPACE_RESOURCE_NAME" {
scope_namespace_id = "NAMESPACE_NAME"
scope_id = SCOPE_NAME
scope = SCOPE_NAME
}
다음을 바꿉니다.
- TF_NAMESPACE_RESOURCE_NAME: 이 블록으로 생성된
google_gke_hub_namespace
리소스를 식별하는 이름입니다. - NAMESPACE_NAME: Fleet 네임스페이스에 선택한 고유한 이름입니다. 이 이름이 Fleet 네임스페이스 이름 지정 제한사항과 충돌하지 않도록 해야 합니다.
- SCOPE_NAME: Fleet 네임스페이스가 생성되는 팀 범위의 이름입니다.
범위 액세스 권한 부여
이전 섹션에서 설명한 것처럼 IAM 및 RBAC 권한을 모두 포함하는 권한 캐릭터를 사용하여 팀 구성원에게 범위에 대한 액세스 권한을 부여할 수 있습니다. 예를 들어 개별 사용자에게 팀 범위에 대한 액세스 권한을 부여하기 위한 구성은 다음과 같습니다.
module "TF_SCOPE_RESOURCE_NAME_USER_EMAIL" {
source = "terraform-google-modules/kubernetes-engine/google//modules/fleet-app-operator-binding"
scope_id = "SCOPE_NAME"
user = "USER_EMAIL"
role = "ROLE"
}
다음을 바꿉니다.
- TF_SCOPE_RESOURCE_NAME: 범위의 이름입니다.
- BINDING_NAME: 이 바인딩을 나타내는 이름입니다.
- SCOPE_NAME: 팀 범위의 이름입니다.
- USER_EMAIL: 사용자의 이메일 주소입니다.
- ROLE: 사용자에게 부여할 캐릭터입니다.
ADMIN
,EDIT
,VIEW
중에서 선택할 수 있습니다.
Google 그룹에 팀 범위에 대한 액세스 권한을 부여하려면 앞의 구성에서 user
대신 group
을 사용하고 팀의 Google 그룹에 대한 이메일 주소를 사용합니다.
Fleet 네임스페이스 액세스
설정이 완료되면 팀 구성원이 관련 클러스터 사용자 인증 정보를 가져와서 범위 내의 네임스페이스에 액세스할 수 있습니다. Connect Gateway를 사용하여 Fleet 구성원 클러스터의 사용자 인증 정보를 가져오려면 다음 명령어를 실행합니다. 여기서 MEMBERSHIP_NAME은 클러스터의 Fleet 멤버십 이름입니다.
gcloud container fleet memberships get-credentials MEMBERSHIP_NAME
자세한 내용은 Connect 게이트웨이 사용을 참조하세요.
팀 범위 관리
다음 명령어를 사용하여 팀 범위를 관리합니다.
gcloud
팀 범위 나열
Fleet의 모든 범위를 나열하려면 다음 명령어를 실행합니다.
gcloud container fleet scopes list
클러스터와 연결된 모든 범위를 나열하려면 다음 명령어를 실행합니다.
gcloud container fleet memberships bindings list --membership MEMBERSHIP_NAME
팀 범위에서 클러스터 삭제
범위에서 클러스터를 삭제하려면 다음 명령어를 실행합니다.
gcloud container fleet memberships bindings delete BINDING_NAME --membership MEMBERSHIP_NAME
팀 범위 삭제
Fleet에서 범위를 삭제하려면 다음 명령어를 실행합니다.
gcloud container fleet scopes delete SCOPE_NAME
Console
팀 범위 나열
Fleet의 모든 범위를 보려면 Fleet 호스트 프로젝트가 선택된 상태로 Google Cloud 콘솔에서 팀 섹션으로 이동합니다.
팀 페이지에 Fleet에 대해 생성된 모든 팀 범위 목록이 표시됩니다. 각 범위에 대해 지정된 기간 동안의 리소스 사용률 요약 정보를 보고, 예상 월간 비용, 오류 수, 컨테이너 다시 시작 수를 확인할 수 있습니다.
비용 최적화를 클릭하여 보다 자세한 비용 관련 사용률 측정항목을 확인할 수 있습니다.
팀 범위 세부정보 보기
각 팀 범위에 대해 해당 범위, 팀 멤버, 팀 범위 로그와 관련된 라벨을 포함하여 세부정보를 볼 수 있습니다.
- 팀 페이지에서 세부정보를 보려는 팀 범위를 클릭합니다.
- 팀 탭에서 범위 라벨을 보고 팀 멤버를 볼 수 있습니다.
- 모니터링 탭을 클릭하여 팀의 리소스 사용률 측정항목을 확인합니다.
- 클러스터 탭을 클릭하여 팀 범위의 클러스터를 확인합니다.
- 네임스페이스 탭을 클릭하여 이 팀 범위의 Fleet 네임스페이스를 확인합니다.
- 로그 탭을 클릭하여 팀 범위 로그를 확인합니다.
팀 범위에서 클러스터 추가 또는 삭제
기존 팀 범위에서 클러스터를 추가하거나 삭제하려면 다음 안내를 따르세요.
Google Cloud 콘솔에서 팀 페이지로 이동합니다.
클러스터를 추가하거나 삭제하려는 팀 범위를 선택합니다. 클러스터 탭에 현재 해당 범위에 바인딩된 클러스터 목록이 표시됩니다.
클러스터를 팀 범위에 추가하려면 다음 안내를 따르세요.
- 페이지 위에서 제품 추가를 클릭합니다.
- 클러스터 드롭다운에서 범위에 추가하려는 클러스터를 선택하고 확인을 클릭합니다.
- 팀 범위 업데이트를 클릭합니다.
팀 범위에서 클러스터를 삭제하려면 다음 안내를 따르세요.
- 범위에 현재 바인딩된 클러스터 목록을 표시하는 클러스터 탭을 선택합니다.
- 삭제하려는 클러스터 옆의 휴지통 아이콘을 클릭하고 삭제를 클릭하여 삭제를 확인합니다.
범위 삭제
Google Cloud 콘솔에서 팀 페이지로 이동합니다.
삭제할 팀 범위를 선택합니다.
범위를 삭제하려면 페이지 상단에서 삭제를 클릭합니다.
범위 이름을 입력하여 삭제를 확인하고 삭제를 다시 클릭합니다.
Fleet 네임스페이스 관리
gcloud
다음 명령어를 사용해서 팀 범위 내에서 네임스페이스를 관리합니다.
Fleet 네임스페이스 나열
범위에서 fleet scopes namespaces create
를 사용하여 만든 네임스페이스를 모두 나열하려면 다음 명령어를 실행합니다.
gcloud container fleet scopes namespaces list --scope=SCOPE_NAME
Fleet 네임스페이스 삭제
Fleet 네임스페이스를 삭제하려면 다음 명령어를 실행합니다.
gcloud container fleet scopes namespaces delete NAMESPACE_NAME --scope=SCOPE_NAME
Fleet 네임스페이스를 삭제할 때 발생하는 결과는 네임스페이스를 추가한 방법에 따라 달라집니다.
- 새 Fleet 네임스페이스를 만든 경우: 이 명령어가 Fleet 네임스페이스를 삭제합니다. 또한 해당 워크로드와 함께 Fleet 네임스페이스 만들기의 결과로 생성된 모든 Kubernetes 네임스페이스를 삭제합니다.
- 기존 Kubernetes 네임스페이스를 온보딩한 경우: 이 명령어에서 Fleet 네임스페이스를 삭제합니다. 온보딩한 원래 네임스페이스는 삭제되지 않습니다.
Console
팀 범위에서 Fleet 네임스페이스를 관리하려면 다음 안내를 따르세요.
Google Cloud 콘솔에서 팀 페이지로 이동합니다.
Fleet 네임스페이스를 관리하려는 팀 범위를 선택합니다.
Fleet 네임스페이스 나열
팀 범위에서 이 범위에 생성된 네임스페이스 목록을 표시하는 네임스페이스 탭을 선택합니다.
네임스페이스 세부정보 보기
각 Fleet 네임스페이스에 대해 해당 네임스페이스와 연결된 라벨, 워크로드, 네임스페이스로 필터링된 로그를 볼 수 있습니다.
- 팀 범위에서 생성된 Fleet 네임스페이스 목록을 표시하는 네임스페이스 탭을 선택합니다.
- 세부정보를 보려는 Fleet 네임스페이스를 클릭합니다.
- 세부정보 탭에서 Fleet 네임스페이스와 범위 라벨을 볼 수 있습니다.
- 이 네임스페이스의 워크로드를 보려면 워크로드 보기를 클릭합니다.
- 워크로드 페이지에서 이미 네임스페이스로 필터링된 워크로드와 해당 네임스페이스의 팀 범위와 연결된 클러스터를 볼 수 있습니다.
- 로그 탭에서 네임스페이스별 Fleet 범위 로그를 볼 수 있습니다.
팀 범위에 Fleet 네임스페이스 추가
- 새 Fleet 네임스페이스를 추가하려면 페이지 상단에서 네임스페이스 추가를 클릭합니다.
- 새 Fleet 네임스페이스의 이름을 입력하고 이름이 Fleet 네임스페이스 이름 지정 제한사항과 충돌하지 않는지 확인합니다. 네임스페이스를 더 추가하려면 네임스페이스 추가를 클릭합니다.
- 팀 범위 업데이트를 클릭합니다.
Fleet 네임스페이스 삭제
- 팀 범위에서 생성된 Fleet 네임스페이스 목록을 표시하는 네임스페이스 탭을 선택합니다.
- 삭제하려는 네임스페이스 옆에 있는 휴지통 아이콘을 클릭합니다.
- 네임스페이스 이름을 입력하여 삭제를 확인하고 삭제를 다시 클릭합니다.
이 작업을 수행할 때 발생하는 결과는 네임스페이스를 추가한 방법에 따라 달라집니다.
- 새 Fleet 네임스페이스를 만든 경우: Fleet 네임스페이스가 삭제됩니다. 해당 워크로드와 함께 Fleet 네임스페이스 만들기의 결과로 생성된 모든 Kubernetes 네임스페이스도 삭제됩니다.
- 기존 Kubernetes 네임스페이스를 온보딩한 경우: Fleet 네임스페이스가 삭제됩니다. 하지만 온보딩한 원래 네임스페이스는 삭제되지 않습니다.
Fleet 네임스페이스 이름 업데이트
Fleet 네임스페이스를 만든 후에는 이를 수정할 수 없습니다. Fleet 네임스페이스 이름을 업데이트하려면 네임스페이스를 삭제하고 팀 범위에서 새 네임스페이스를 만들어야 합니다.
팀 액세스 관리
gcloud
팀 구성원 나열
add-app-operator-binding
명령어를 사용하여 팀 범위에 대한 액세스 권한이 부여된 모든 팀 구성원을 권한 캐릭터와 함께 나열하려면 다음 명령어를 사용합니다.
gcloud alpha container hub scopes list-app-operator-bindings SCOPE_NAME
다음을 바꿉니다.
- SCOPE_NAME: 팀 범위의 고유 식별자입니다.
팀 구성원 삭제
add-app-operator-binding
으로 부여되는 팀 구성원의 범위 액세스 권한을 삭제하려면 다음 명령어를 사용합니다.
gcloud alpha container hub scopes remove-app-operator-binding SCOPE_NAME \
--group=TEAM_EMAIL
또는
gcloud alpha container hub scopes remove-app-operator-binding SCOPE_NAME \
--user=USER_EMAIL
다음을 바꿉니다.
- SCOPE_NAME: 팀 범위의 고유 식별자입니다.
- TEAM_EMAIL 또는 USER_EMAIL: 팀에서 삭제할 그룹 또는 사용자의 이메일 주소입니다.
rbacrolebindings create
명령어로 액세스 권한이 팀 구성원에게 부여된 경우 대신 rbacrolebindings delete
명령어를 사용하여 팀 구성원을 삭제할 수 있습니다.
팀 범위 액세스 업데이트
팀 범위 액세스 권한을 업데이트(예: 팀 구성원에 다른 역할 부여 또는 그룹 이메일 주소 업데이트)하려면 이전 섹션에서 설명한 대로 범위에서 팀 구성원을 삭제한 다음 새로운 세부정보로 액세스 권한을 다시 부여합니다.
rbacrolebindings create
명령어로 팀 구성원에게 액세스 권한이 부여된 경우 대신 rbacrolebindings update
명령어를 사용하여 구성원의 액세스 권한을 업데이트할 수 있습니다.
콘솔
팀 구성원 추가 또는 삭제
팀 범위에서 팀 구성원을 관리하려면 다음 안내를 따르세요.
Google Cloud 콘솔에서 팀 페이지로 이동합니다.
멤버를 관리하려는 팀 범위를 선택합니다.
범위에 새 팀 멤버를 추가하려면 다음 안내를 따르세요.
- 페이지 상단에서 팀 멤버 추가를 클릭합니다. 팀 범위 만들기 섹션에 설명된 안내를 따릅니다.
- 팀 범위 업데이트를 클릭합니다.
범위에서 팀 멤버를 삭제하려면 다음 안내를 따르세요.
- 팀 탭에서 팀 범위로부터 삭제할 팀 멤버 옆의 휴지통 아이콘을 클릭합니다.
- 삭제를 클릭하여 삭제를 확인합니다.
Google Cloud 콘솔에서는 팀 멤버의 세부정보를 수정할 수 없습니다. Google Cloud 콘솔에서 범위 액세스를 업데이트하려면(예: 팀 멤버에 다른 역할 부여 또는 그룹 이메일 주소 업데이트) 범위에서 팀 멤버를 삭제하고 새로운 세부정보를 사용해서 다시 추가합니다.
Fleet 네임스페이스 이름 지정 제한사항
다음 이름은 예약되어 있으며 팀 범위에서 Fleet 네임스페이스를 만들 때 사용이 금지됩니다.
default
kube-system
gke-connect
kube-node-lease
kube-public
istio-system
gatekeeper-system
asm-system
config-management-system
라벨 관리
범위를 식별하고 관리하는 데 도움이 될 수 있도록 Google Cloud CLI를 사용해서 Fleet 네임스페이스 및 팀 범위에 대해 라벨을 만들고 관리할 수 있습니다.
팀 범위에 추가된 라벨은 해당 범위의 모든 Fleet 네임스페이스에 상속됩니다. 즉, 해당 범위의 클러스터에 있는 모든 Kubernetes 네임스페이스에 연결됩니다. Fleet 네임스페이스에 직접 추가된 라벨은 해당 Kubernetes 네임스페이스에만 연결됩니다. 팀 범위 라벨과 Fleet 네임스페이스 라벨의 키가 동일하면 팀 범위 라벨이 우선 적용됩니다.
쉼표로 구분된 키-값 쌍 목록을 추가하여 여러 키-값 쌍을 한 번에 작업할 수 있습니다.
Fleet 네임스페이스 라벨 관리
라벨을 사용해서 Fleet 네임스페이스 만들기
라벨을 사용해서 Fleet 네임스페이스를 만들려면 다음 명령어를 실행합니다.
gcloud container fleet scopes namespaces create NAMESPACE_NAME \
--scope SCOPE_NAME \
--namespace-labels KEY=VALUE
다음을 바꿉니다.
NAMESPACE_NAME
: Fleet 내에서 네임스페이스에 대해 선택한 고유한 이름입니다.SCOPE_NAME
: 네임스페이스를 사용할 팀 범위입니다.KEY
: 라벨의 키-값 쌍에 대한 키입니다.VALUE
: 라벨의 키-값 쌍에 대한 값입니다.
기존 Fleet 네임스페이스의 라벨 추가 또는 업데이트
기존 네임스페이스의 라벨을 추가하거나 업데이트하려면 다음 명령어를 실행합니다.
gcloud container fleet scopes namespaces update NAMESPACE_NAME \
--scope SCOPE_NAME \
--update-namespace-labels KEY=VALUE
Fleet 네임스페이스 라벨 삭제
특정 Fleet 네임스페이스 라벨을 삭제하려면 다음 명령어를 실행합니다.
gcloud container fleet scopes namespaces update NAMESPACE_NAME \
--scope SCOPE_NAME \
--remove-namespace-labels KEY
KEY
를 삭제할 라벨의 쉼표로 구분된 키 목록으로 바꿉니다.
모든 Fleet 네임스페이스 라벨을 삭제하려면 다음 명령어를 실행합니다.
gcloud container fleet scopes namespaces update NAMESPACE_NAME \
--scope SCOPE_NAME \
--clear-namespace-labels
팀 범위 라벨 관리
라벨로 팀 범위 만들기
라벨로 범위를 만들려면 다음 명령어를 실행합니다.
gcloud container fleet scopes create SCOPE_NAME \
--namespace-labels KEY=VALUE
다음을 바꿉니다.
SCOPE_NAME
: 새 팀 범위에 선택한 고유한 식별 이름입니다.KEY
: 라벨의 키-값 쌍에 대한 키입니다.VALUE
: 라벨의 키-값 쌍에 대한 값입니다.
기존 팀 범위의 라벨 추가 또는 업데이트
기존 범위의 라벨을 추가하거나 업데이트하려면 다음 명령어를 실행합니다.
gcloud container fleet scopes update SCOPE_NAME \
--update-namespace-labels KEY=VALUE
팀 범위 라벨 삭제
특정 라벨을 삭제하려면 다음 명령어를 실행합니다.
gcloud container fleet scopes update SCOPE_NAME \
--remove-namespace-labels KEY
KEY
를 삭제할 라벨의 쉼표로 구분된 키 목록으로 바꿉니다.
모든 라벨을 삭제하려면 다음 명령어를 실행합니다.
gcloud container fleet scopes update SCOPE_NAME \
--clear-namespace-labels
문제 해결
Fleet팀 관리 리소스를 업데이트하거나 만들 수 없으면 GKE Enterprise API가 사용 설정되었는지 확인합니다. Fleet팀 관리를 구성한 후 Fleet 호스트 프로젝트에서 GKE Enterprise API를 사용 중지하면 다음 결과가 발생합니다.
- 생성된 모든 팀 범위와 Fleet 네임스페이스는 정상적으로 계속 작동하지만 업데이트될 수 없습니다.
- 기존 팀 범위와 Fleet 네임스페이스를 삭제할 수 있습니다.
- 새 팀 범위와 Fleet 네임스페이스를 만들 수 없습니다.
다음 단계
- 팀 개요 사용에서 팀 수준 측정항목과 기타 팀별 정보를 보는 방법을 알아봅니다.
- 구성 동기화를 사용하여 Kubernetes 리소스를 팀 범위 및 네임스페이스에 동기화하는 방법을 알아봅니다.