Fleet 팀 설정

이 페이지는 팀을 위해 Fleet 사용을 설정하고 관리하려는 플랫폼 관리자를 대상으로 합니다. Fleet팀 관리 기능은 GKE Enterprise를 사용 설정한 사용자에게만 제공됩니다.

이 페이지에서는 사용자가 이미 Fleet팀 관리 개요를 읽었다고 가정합니다.

팀 설정 개요

Google Cloud CLI, Google Cloud 콘솔 또는 Terraform을 사용하여 팀을 설정할 수 있습니다.

일반적인 팀 설정 절차는 다음과 같습니다.

  1. 팀 액세스를 설정할 Fleet을 선택하거나 만들고 설정을 완료하기 위한 올바른 권한과 API가 있는지 확인합니다.
  2. (선택사항이지만 권장됨) Fleet 클러스터에서 Google 그룹스에 대한 액세스 제어를 설정합니다.
  3. 팀을 구성할 사용자를 결정하고 Fleet에 액세스할 수 있는지 확인합니다. 팀에는 Google 그룹스(권장) 또는 개별 계정이 포함될 수 있습니다.
  4. 팀의 팀 범위를 만듭니다.
  5. Fleet 구성원 클러스터 하나 이상(또는 모두)을 팀 범위에 추가합니다.
  6. Fleet 수준 네임스페이스를 정의하고 이를 팀 범위와 연결합니다.
  7. RBACRoleBinding 리소스를 사용하여 팀 구성원에게 새 범위에 대한 액세스 권한을 부여합니다.
  8. (선택사항) 구성 동기화를 사용하여 Kubernetes 리소스를 팀 범위 및 네임스페이스에 동기화합니다.

그러면 팀에서 사용자 인증 정보를 가져와 Connect Gateway를 사용하여 클러스터에 액세스할 수 있습니다.

Google Cloud CLI 설정

Google Cloud 콘솔을 사용해서 팀 범위를 만들더라도 필요한 API를 사용 설정하는 등 Fleet을 설정하는 동안 일부 기본 요건을 완료하기 위해 gcloud CLI를 설정해야 합니다.

  1. Google Cloud CLI 알파 구성요소를 포함하여 최신 버전의 Google Cloud CLI가 있는지 확인합니다. Fleet팀 관리 명령어를 사용하려면 버전 419.0.0 이상이 필요합니다.

  2. 다음 명령어를 실행하여 Google Cloud에 로그인합니다.

    gcloud auth login
    
  3. 선택한 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를 사용할 수 있는지 확인합니다.

팀 구성원에게 Fleet 액세스 권한 부여

다음으로, 어떤 사용자가 팀을 구성하는지 결정하거나 조사하고 Fleet에 액세스할 수 있는지 확인합니다. 팀 관리자가 개별 사용자에게 액세스 권한을 부여할 수도 있지만, 이전 섹션의 설명과 같이 Google 그룹 멤버십을 기준으로 팀 구성원에게 리소스 액세스 권한을 부여하는 것이 좋습니다. 관련 Google 그룹스 또는 개별 사용자에게 Fleet 클러스터를 사용할 수 있도록 적절히 구성된 Identity and Access Management(IAM) 역할이 있는지 확인합니다.

gcloud projects add-iam-policy-binding PROJECT_ID \
   --member=group:TEAM_EMAIL \
   --role=roles/gkehub.viewer

gcloud projects add-iam-policy-binding PROJECT_ID \
   --member=group:TEAM_EMAIL \
   --role=roles/gkehub.gatewayEditor
  • PROJECT_ID는 Fleet 호스트 프로젝트의 ID입니다.
  • TEAM_EMAIL은 팀의 Google 그룹 이메일 주소입니다.

팀 구성원은 이 명령어로 Google Cloud 콘솔에서 모든 Fleet 클러스터를 볼 수 있고, Google 그룹스의 경우 Connect Gateway를 사용하여 Google 그룹스 기반 승인으로 Fleet 구성원 클러스터에 로그인할 수 있습니다.

새 팀 설정

다음 안내에서는 팀의 새 팀 범위를 만드는 방법을 보여줍니다.

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_NAMEFleet 네임스페이스 이름 지정 제한사항과 충돌하지 않도록 해야 합니다.
  • SCOPE_NAME: 네임스페이스를 사용할 팀 범위입니다.

이 명령어는 팀 범위의 각 클러스터에 NAMESPACE_NAME이라는 Kubernetes 네임스페이스를 만듭니다. 개발자가 팀 구성원에게 범위에 대한 액세스 권한을 부여한 후에 팀 구성원은 다른 Kubernetes 네임스페이스와 같이 NAMESPACE_NAME을 사용할 수 있습니다. 이미 팀 범위에 NAMESPACE_NAME이라는 기존 Kubernetes 네임스페이스가 있으면 새 Fleet 네임스페이스의 일부로 간주됩니다. 경우에 따라 이를 네임스페이스 온보딩이라고 부릅니다.

RBAC로 팀 범위 액세스 권한 부여

이제 RBAC를 사용하여 팀 구성원에게 해당 범위에 대한 액세스 권한을 부여할 수 있습니다. 다음 명령어를 사용하여 Google 그룹에 팀 범위에 대한 액세스 권한을 부여합니다.

gcloud container fleet scopes rbacrolebindings create BINDING_NAME \
   --scope=SCOPE_NAME \
   --role=ROLE \
   --group=TEAM_EMAIL

다음을 바꿉니다.

  • BINDING_NAME: 이 바인딩을 나타내는 문자열 이름입니다.
  • SCOPE_NAME: 팀 범위의 고유 식별자입니다.
  • ROLE: 팀 멤버에 부여하려는 RBAC 역할입니다. admin, edit, view 중에서 선택할 수 있습니다.
  • TEAM_EMAIL: 팀의 Google 그룹에 대한 이메일 주소입니다.

네임스페이스에 개별 사용자 액세스 권한을 부여해야 하는 경우 다음 명령어를 대신 실행합니다. 여기서 USER_EMAIL은 사용자의 Google ID 이메일 주소입니다.

gcloud container fleet scopes rbacrolebindings create BINDING_NAME \
   --scope=SCOPE_NAME \
   --role=ROLE \
   --user=USER_EMAIL

콘솔

팀 범위 만들기

  1. Fleet 호스트 프로젝트가 선택된 상태에서 Google Cloud 콘솔의 섹션으로 이동합니다.

    팀으로 이동

  2. 페이지 상단에서 팀 범위 만들기를 클릭합니다.

  3. 팀 기본사항 페이지에서 이름에 팀 범위에 대한 고유 이름을 입력합니다. 팀 범위를 만든 후에는 이 이름을 변경할 수 없습니다.

  4. 범위에 팀 멤버를 추가하려면 팀 멤버 추가를 클릭합니다.

    • 유형으로 사용자를 선택해서 개별 팀 멤버를 추가하거나 그룹을 선택해서 Google 그룹을 추가합니다(권장됨).
    • 사용자 또는 그룹에 대해 팀 멤버 또는 그룹의 이메일 주소를 입력합니다.
    • 역할에 대해 관리자, 편집자, 뷰어를 선택해서 범위에 대한 팀 멤버 또는 그룹의 액세스 수준을 지정합니다.
    • 팀 멤버를 더 추가하려면 앞의 3개 단계를 반복합니다.
  5. 이 단계에서 클러스터 및 네임스페이스를 추가하지 않고 팀 범위를 만들려면 팀 범위 만들기를 클릭합니다. 그렇지 않으면 다음 섹션을 계속해서 범위에 클러스터를 추가합니다.

팀 범위에 클러스터 추가

팀 범위에 클러스터를 연결하려면 클러스터가 기존 Fleet 멤버여야 합니다. Fleet에 클러스터를 추가해야 하는 경우 Fleet 만들기에서 클러스터 유형에 해당하는 안내에 따라 클러스터를 등록합니다. 앞에서 설명한 대로 새로 등록된 클러스터가 액세스 제어용 Google 그룹스를 사용하도록 구성되었는지 확인합니다.

Fleet 구성원 클러스터를 Fleet 호스트 프로젝트의 여러 팀 범위에 추가할 수 있으므로 여러 팀이 같은 클러스터에서 워크로드를 실행할 수 있습니다.

  1. 팀 기본사항 페이지에서 범위에 팀 멤버를 추가한 후 계속을 클릭합니다.
  2. 클러스터 페이지에서 이 팀 범위와 연결할 Fleet 클러스터를 선택할 수 있습니다. 클러스터 드롭다운에서 추가하려는 클러스터를 선택하고 확인을 클릭합니다.

Fleet 네임스페이스 만들기

팀 멤버가 다른 Kubernetes 네임스페이스와 같은 Fleet 네임스페이스를 사용할 수 있습니다. Fleet 네임스페이스를 만들면 아직 Kubernetes 네임스페이스가 없는 경우 팀 범위에 생성됩니다.

  1. 클러스터 페이지에서 클러스터를 팀 범위에 추가한 후 계속을 클릭합니다.
  2. 네임스페이스 페이지에서 네임스페이스 추가를 클릭합니다.
    • 이름에 Fleet 내의 네임스페이스에 대한 고유 이름 또는 온보딩하려는 기존 네임스페이스의 이름을 입력합니다. 이름이 Fleet 네임스페이스 이름 지정 제한사항과 충돌하지 않도록 해야 합니다.
  3. 범위에 Fleet 네임스페이스를 더 추가하려면 이전 단계를 반복합니다.
  4. 팀 범위를 만들려면 팀 범위 만들기를 클릭합니다. 팀 범위가 생성되면 필요한 경우 섹션에서 팀 범위 이름을 클릭하여 팀 범위를 보고 수정할 수 있습니다.

Terraform

이 섹션에서는 Terraform을 사용해서 새 팀을 설정하는 방법을 보여줍니다. 자세한 내용과 기타 예시는 다음 리소스에 대한 참조 문서를 확인하세요.

팀 범위 만들기

팀 범위를 만들려면 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 네임스페이스가 생성되는 팀 범위의 이름입니다.

RBAC로 범위 액세스 권한 부여

이제 RBAC를 사용하여 팀 구성원에게 해당 범위에 대한 액세스 권한을 부여할 수 있습니다. 예를 들어 개별 사용자에게 팀 범위에 대한 액세스 권한을 부여하기 위한 구성은 다음과 같습니다.

  resource "google_gke_hub_scope_rbac_role_binding" "TF_RBAC_ROLE_BINDING_NAME" {
    scope_rbac_role_binding_id = "BINDING_NAME"
    scope_id = SCOPE_NAME
    user = USER_EMAIL
    role {
      predefined_role = "ROLE"
    }
  }

다음을 바꿉니다.

  • TF_RBAC_ROLE_BINDING_NAME: 이 블록으로 생성된 google_gke_hub_scope_rbac_role_binding 리소스를 식별하는 이름입니다.
  • BINDING_NAME: 이 바인딩을 나타내는 이름입니다.
  • SCOPE_NAME: 팀 범위의 이름입니다.
  • USER_EMAIL: 사용자의 이메일 주소입니다.
  • ROLE: 사용자에게 부여하려는 RBAC 역할입니다. 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에 대해 생성된 모든 팀 범위 목록과 오류 및 컨테이너 재시작 수가 포함된 각 범위의 리소스 사용률 요약 정보가 표시됩니다.

팀 범위 세부정보 보기

각 팀 범위에 대해 해당 범위와 연결된 라벨, 해당 범위의 팀 멤버, 범위와 연결된 로그를 볼 수 있습니다.

  1. 페이지에서 세부정보를 보려는 팀 범위를 클릭합니다.
  2. 탭에서 범위 라벨을 보고, 해당 범위에 속하는 팀 멤버를 볼 수 있습니다(있는 경우).
  3. 로그 탭을 클릭하여 Fleet 범위 로그를 확인합니다.

팀 범위에서 클러스터 추가 또는 삭제

기존 팀 범위에서 클러스터를 추가하거나 삭제하려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 페이지로 이동합니다.

    팀으로 이동

  2. 클러스터를 추가하거나 삭제하려는 팀 범위를 선택합니다. 클러스터 탭에 현재 해당 범위에 바인딩된 클러스터 목록이 표시됩니다.

클러스터를 팀 범위에 추가하려면 다음 안내를 따르세요.

  1. 페이지 위에서 제품 추가를 클릭합니다.
  2. 클러스터 드롭다운에서 범위에 추가하려는 클러스터를 선택하고 확인을 클릭합니다.
  3. 팀 범위 업데이트를 클릭합니다.

팀 범위에서 클러스터를 삭제하려면 다음 안내를 따르세요.

  1. 범위에 현재 바인딩된 클러스터 목록을 표시하는 클러스터 탭을 선택합니다.
  2. 삭제하려는 클러스터 옆의 휴지통 아이콘을 클릭하고 삭제를 클릭하여 삭제를 확인합니다.

범위 삭제

  1. Google Cloud 콘솔에서 페이지로 이동합니다.

    팀으로 이동

  2. 삭제할 팀 범위를 선택합니다.

  3. 범위를 삭제하려면 페이지 상단에서 삭제를 클릭합니다.

  4. 범위 이름을 입력하여 삭제를 확인하고 삭제를 다시 클릭합니다.

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 네임스페이스를 관리하려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 페이지로 이동합니다.

    팀으로 이동

  2. Fleet 네임스페이스를 관리하려는 팀 범위를 선택합니다.

Fleet 네임스페이스 나열

팀 범위에서 이 범위에 생성된 네임스페이스 목록을 표시하는 네임스페이스 탭을 선택합니다.

네임스페이스 세부정보 보기

각 Fleet 네임스페이스에 대해 해당 네임스페이스와 연결된 라벨, 워크로드, 네임스페이스로 필터링된 로그를 볼 수 있습니다.

  1. 팀 범위에서 생성된 Fleet 네임스페이스 목록을 표시하는 네임스페이스 탭을 선택합니다.
  2. 세부정보를 보려는 Fleet 네임스페이스를 클릭합니다.
  3. 세부정보 탭에서 Fleet 네임스페이스와 범위 라벨을 볼 수 있습니다.
    • 이 네임스페이스의 워크로드를 보려면 워크로드 보기를 클릭합니다.
    • 워크로드 페이지에서 이미 네임스페이스로 필터링된 워크로드와 해당 네임스페이스의 팀 범위와 연결된 클러스터를 볼 수 있습니다.
  4. 로그 탭에서 네임스페이스별 Fleet 범위 로그를 볼 수 있습니다.

팀 범위에 Fleet 네임스페이스 추가

  1. 새 Fleet 네임스페이스를 추가하려면 페이지 상단에서 네임스페이스 추가를 클릭합니다.
  2. 새 Fleet 네임스페이스의 이름을 입력하고 이름이 Fleet 네임스페이스 이름 지정 제한사항과 충돌하지 않는지 확인합니다. 네임스페이스를 더 추가하려면 네임스페이스 추가를 클릭합니다.
  3. 팀 범위 업데이트를 클릭합니다.

Fleet 네임스페이스 삭제

  1. 팀 범위에서 생성된 Fleet 네임스페이스 목록을 표시하는 네임스페이스 탭을 선택합니다.
  2. 삭제하려는 네임스페이스 옆에 있는 휴지통 아이콘을 클릭합니다.
  3. 네임스페이스 이름을 입력하여 삭제를 확인하고 삭제를 다시 클릭합니다.

이 작업을 수행할 때 발생하는 결과는 네임스페이스를 추가한 방법에 따라 달라집니다.

  • 새 Fleet 네임스페이스를 만든 경우: Fleet 네임스페이스가 삭제됩니다. 해당 워크로드와 함께 Fleet 네임스페이스 만들기의 결과로 생성된 모든 Kubernetes 네임스페이스도 삭제됩니다.
  • 기존 Kubernetes 네임스페이스를 온보딩한 경우: Fleet 네임스페이스가 삭제됩니다. 하지만 온보딩한 원래 네임스페이스는 삭제되지 않습니다.

Fleet 네임스페이스 이름 업데이트

Fleet 네임스페이스를 만든 후에는 이를 수정할 수 없습니다. Fleet 네임스페이스 이름을 업데이트하려면 네임스페이스를 삭제하고 팀 범위에서 새 네임스페이스를 만들어야 합니다.

팀 액세스 관리

gcloud

팀 범위 액세스 권한을 업데이트(예: 팀 구성원에게 다른 역할 부여 또는 그룹 이메일 주소 업데이트)하려면 해당 update 명령어를 사용합니다.

gcloud container fleet scopes rbacrolebindings update BINDING_NAME \
   --scope=SCOPE_NAME \
   --role=ROLE \
   --group=TEAM_EMAIL

사용하여

gcloud alpha container fleet namespaces rbacrolebindings update BINDING_NAME \
   --scope=SCOPE_NAME \
   --role=ROLE \
   --user=USER_EMAIL

다음을 바꿉니다.

  • BINDING_NAME: 이 바인딩을 나타내는 문자열 이름입니다.
  • SCOPE_NAME: 팀 범위의 고유 식별자입니다.
  • (선택사항) ROLE: 변경하려는 역할입니다.
  • (선택사항) TEAM_EMAIL 또는 USER_EMAIL: 변경하려는 이메일 주소입니다.

Console

팀 구성원 추가 또는 삭제

팀 범위에서 팀 구성원을 관리하려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 페이지로 이동합니다.

    팀으로 이동

  2. 멤버를 관리하려는 팀 범위를 선택합니다.

범위에 새 팀 멤버를 추가하려면 다음 안내를 따르세요.

  1. 페이지 상단에서 팀 멤버 추가를 클릭합니다. 팀 범위 만들기 섹션에 설명된 안내를 따릅니다.
  2. 팀 범위 업데이트를 클릭합니다.

범위에서 팀 멤버를 삭제하려면 다음 안내를 따르세요.

  1. 탭에서 팀 범위로부터 삭제할 팀 멤버 옆의 휴지통 아이콘을 클릭합니다.
  2. 삭제를 클릭하여 삭제를 확인합니다.

Google Cloud 콘솔에서는 팀 멤버의 세부정보를 수정할 수 없습니다. Google Cloud 콘솔에서 범위 액세스를 업데이트하려면(예: 팀 멤버에 다른 역할 부여 또는 그룹 이메일 주소 업데이트) 범위에서 팀 멤버를 삭제하고 새로운 세부정보를 사용해서 다시 추가합니다.

네임스페이스 관리 위임

일반적으로 플랫폼 관리자만 팀 범위 및 Fleet 네임스페이스를 모두 만들 수 있습니다. 하지만 플랫폼 관리자는 네임스페이스 만들기 또는 관리를 팀 관리자에게 위임할 수 있습니다. 그러면 팀 관리자가 자신의 범위에서 Fleet 네임스페이스를 만들고 관리할 수 있습니다.

네임스페이스 관리를 위임하려면 프로젝트에서 다음 권한을 사용해서 커스텀 IAM 역할을 만듭니다.

gkehub.namespaces.get
gkehub.namespaces.create
gkehub.namespaces.update
gkehub.namespaces.delete
gkehub.namespaces.list

필요에 따라 역할을 맞춤설정할 수 있습니다. 예를 들어 Fleet 네임스페이스 삭제를 허용하지 않으려면 커스텀 역할에서 gkehub.namespaces.delete 권한을 생략합니다.

커스텀 역할을 정의한 후에는 다음 명령어를 사용해서 특정 팀 범위에 대해 네임스페이스를 관리하도록 권한을 명시적으로 부여합니다.

gcloud container fleet scopes add-iam-policy-binding SCOPE_NAME \
    --member='user:USER_EMAIL' \
    --role='projects/PROJECT_ID/roles/CUSTOM_ROLE_NAME

USER_EMAIL로 식별된 사용자만 이 팀 범위의 Fleet 네임스페이스를 관리할 수 있습니다. 다른 사용자에게는 오류가 표시됩니다.

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 네임스페이스를 만들 수 없습니다.

다음 단계