서드 파티 통합을 위한 인벤토리 생성

이 페이지에서는 기존 Fleet에 대한 클러스터 인벤토리를 생성하는 방법을 설명합니다. Fleet의 클러스터 인벤토리를 사용하면 ClusterProfile 사양을 사용하는 오픈소스 및 서드 파티 통합 기능을 활용할 수 있습니다.

클러스터 인벤토리는 Fleet과 유사한 오픈소스 개념으로, 함께 관리할 수 있는 Kubernetes 클러스터 및 기타 리소스를 논리적으로 그룹화한 것입니다. ClusterProfile 사양에는 Fleet에 포함된 정보의 하위 집합이 포함되어 있습니다.

ClusterProfile 동기화 기능은 Fleet과 클러스터 인벤토리 간의 단방향 동기화를 제공합니다. ClusterProfile 동기화가 사용 설정되면, Fleet이 기준(정보 소스)이 되며, Fleet의 변경사항은 ClusterProfile 동기화를 통해 자동으로 클러스터 인벤토리에 적용됩니다. 클러스터 프로필 리소스를 직접 수정해도 해당 변경사항은 Fleet에 적용되지 않습니다.

시작하기 전에

  1. Fleet을 사용하려면 일반 기본 요건을 모두 충족했는지 확인하세요.

  2. 사용할 Fleet을 새로 만들거나 기존 Fleet을 식별하세요.

ClusterProfile 동기화 사용 설정

ClusterProfile 동기화는 Fleet 내 하나의 클러스터에 대해 실행됩니다. 이 클러스터를 허브 클러스터라고 하며, Fleet 내 다른 클러스터에 대한 정보를 필요로 하는 멀티 클러스터 컨트롤러를 실행하는 데 사용할 수 있습니다. 멀티 클러스터 컨트롤러의 예로는 Argo CD 컨트롤러멀티 클러스터 조정자가 있습니다. 허브 클러스터에서는 다른 워크로드를 실행하지 않는 것이 좋습니다.

클러스터에 fleet-clusterinventory-management-cluster=true 라벨을 추가하여 ClusterProfile 동기화를 사용 설정합니다. 다음 방법 중 하나를 선택할 수 있습니다.

Fleet에 대해 ClusterProfile 동기화 기능을 사용 설정하면, ClusterProfile API를 사용하여 Fleet의 각 클러스터에 대한 클러스터 프로필이 자동으로 생성됩니다. 이 클러스터 프로필은 Fleet에서 변경사항이 발생할 때마다 자동으로 생성, 업데이트, 삭제됩니다.

새 클러스터에서 ClusterProfile 동기화 사용 설정

허브 클러스터를 만들고 ClusterProfile 동기화를 활성화하려면 다음 명령어를 사용합니다.

gcloud container clusters create CLUSTER --location LOCATION --enable-fleet
    --labels=fleet-clusterinventory-management-cluster=true

다음을 바꿉니다.

  • CLUSTER: google_container_cluster 리소스 이름입니다.
  • LOCATION: 클러스터가 생성된 위치입니다.

기본적으로 클러스터 프로필은 fleet-cluster-inventory 네임스페이스에 생성됩니다. 네임스페이스를 변경하려면 fleet-clusterinventory-namespace 라벨을 지정합니다.

gcloud container clusters update CLUSTER --location LOCATION
    --update-labels=fleet-clusterinventory-namespace=NAMESPACE

다음을 바꿉니다.

  • CLUSTER: google_container_cluster 리소스 이름입니다.
  • LOCATION: 클러스터가 생성된 위치입니다.
  • NAMESPACE: 클러스터 프로필이 생성되는 네임스페이스입니다. 지정하지 않으면 클러스터 프로필이 fleet-cluster-inventory 네임스페이스에 생성됩니다.

기존 클러스터에서 ClusterProfile 동기화 사용 설정

기존 클러스터에서 ClusterProfile 동기화를 사용 설정하려면 다음 명령어를 사용합니다.

gcloud container clusters update CLUSTER --location LOCATION
    --update-labels=fleet-clusterinventory-management-cluster=true

다음을 바꿉니다.

  • CLUSTER: google_container_cluster 리소스 이름입니다.
  • LOCATION: 클러스터가 생성된 위치입니다.

기본적으로 클러스터 프로필은 fleet-cluster-inventory 네임스페이스에 생성됩니다. 네임스페이스를 변경하려면 fleet-clusterinventory-namespace 라벨을 지정합니다.

gcloud container clusters update CLUSTER --location LOCATION
    --update-labels=fleet-clusterinventory-namespace=NAMESPACE

다음을 바꿉니다.

  • CLUSTER: google_container_cluster 리소스 이름입니다.
  • LOCATION: 클러스터가 생성된 위치입니다.
  • NAMESPACE: 클러스터 프로필이 생성되는 네임스페이스입니다. 지정하지 않으면 클러스터 프로필이 fleet-cluster-inventory 네임스페이스에 생성됩니다.

ClusterProfile 동기화가 사용 설정되었는지 확인

허브 클러스터에 fleet-clusterinventory-management-cluster = true 라벨이 포함되었는지 확인하여 ClusterProfile 동기화가 사용 설정되었는지 확인합니다. 이렇게 하려면 다음 명령어를 사용합니다.

gcloud container clusters describe CLUSTER --location LOCATION

다음을 바꿉니다.

  • CLUSTER: google_container_cluster 리소스 이름입니다.
  • LOCATION: 클러스터가 생성된 위치입니다.

출력은 다음과 비슷하게 표시됩니다.

resourceLabels:
  fleet-clusterinventory-management-cluster: 'true'

생성된 클러스터 프로필 리소스 확인

다음 명령어를 사용하여 허브 클러스터에서 클러스터 프로필 리소스가 생성되었는지 확인합니다.

gcloud container clusters get-credentials CLUSTER --location LOCATION

kubectl get clusterprofiles -n fleet-cluster-inventory

다음을 바꿉니다.

  • CLUSTER: google_container_cluster 리소스 이름입니다.
  • LOCATION: 클러스터가 생성된 위치입니다.

출력은 다음과 비슷합니다.

NAME                           AGE
cluster-1-us-west1             10s
cluster-2-us-west1             20s

이 출력에는 Fleet의 각 클러스터에 대한 클러스터 프로필이 포함됩니다. 클러스터 프로필 이름에는 MEMBERSHIP-LOCATION 형식이 사용됩니다.

클러스터 프로필의 콘텐츠 보기

특정 클러스터의 클러스터 프로필 콘텐츠를 보려면 다음 명령어를 사용합니다.

kubectl get clusterprofile CLUSTER-LOCATION -n fleet-cluster-inventory -o yaml

다음을 바꿉니다.

  • CLUSTER: google_container_cluster 리소스 이름입니다.
  • LOCATION: 클러스터가 생성된 위치입니다.

출력은 다음과 비슷합니다.

apiVersion: multicluster.x-k8s.io/v1alpha1
kind: ClusterProfile
metadata:
  annotations:
    fleet.gke.io/membershipName: projects/123456789/locations/us-west1/memberships/cluster-1
  labels:
    x-k8s.io/cluster-manager: gke-fleet
  name: cluster-1-us-west1
  namespace: fleet-cluster-inventory

ClusterProfile 동기화 사용 중지

fleet-clusterinventory-management-cluster 라벨을 삭제하여 Fleet의 허브 클러스터에서 ClusterProfile 동기화를 사용 중지합니다.

gcloud container clusters update CLUSTER --location LOCATION \
    --remove-labels=fleet-clusterinventory-management-cluster

다음을 바꿉니다.

  • CLUSTER: google_container_cluster 리소스 이름입니다.
  • LOCATION: 클러스터가 생성된 위치입니다.

다음 단계