빠른 시작: 여러 저장소에서 동기화

이 빠른 시작에서는 새 Google Kubernetes Engine(GKE) 클러스터를 만들고 구성 동기화를 사용하여 Anthos Config Management 샘플 저장소의 구성에 동기화합니다.

규정 준수팀에서 조직의 모든 구성원이 내부 규칙을 준수하도록 해야 한다고 가정해 보세요. 이러한 규칙을 적용하기 위해 규정 준수팀은 구성을 만들고 샘플 저장소에 추가했습니다. 조직의 각 클러스터는 저장소에 동기화해야 하며 클러스터를 만들고 동기화할 책임은 사용자에게 있습니다.

시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.

    Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

    Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.

    Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

    Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.

개발 환경 준비

다음 섹션에서는 구성 동기화와 함께 사용할 수 있는 클러스터를 만들고 구성합니다.

클러스터 만들기

구성 동기화에서 사용할 수 있는 클러스터를 만들려면 다음 단계를 따르세요.

  1. Google Cloud Console에서 Google Kubernetes Engine 페이지로 이동합니다.

    Google Kubernetes Engine으로 이동

  2. 만들기를 클릭합니다.

  3. 표준 섹션에서 구성을 클릭합니다.

  4. 클러스터 기본사항 섹션에서 다음을 완료합니다.

    1. 클러스터의 이름cs-cluster로 입력합니다.
    2. 다른 모든 필드는 권장 기본값을 그대로 둡니다.
  5. 왼쪽 메뉴의 클러스터에서 보안을 선택합니다.

  6. 보안 페이지에서 워크로드 아이덴티티 사용 설정 체크박스를 선택합니다.

  7. 만들기를 클릭합니다. 클러스터를 만드는 데 몇 분 정도 걸릴 수 있습니다.

자신에게 관리자 권한 부여

클러스터를 만든 후 Google Cloud Console에서 구성 동기화를 사용하는 데 필요한 GKE 허브 관리자 역할을 직접 부여합니다.

  1. Cloud Console에서 IAM 페이지로 이동합니다.

    IAM으로 이동

  2. 추가를 클릭합니다.

  3. 새 주 구성원 필드에 Google Cloud에 등록할 때 사용한 이메일 주소를 입력합니다.

  4. 역할 선택 드롭다운 목록에서 GKE 허브 관리자를 검색하여 선택합니다.

  5. 저장을 클릭합니다.

Anthos Config Management 사용 설정

Anthos Config Management를 사용 설정하려면 다음 단계를 완료하세요.

  1. Cloud Console에서 Config Management 페이지로 이동합니다.

    Config Management로 이동

  2. Config Management 설정을 클릭합니다.

  3. Config Management API를 사용 설정하려면 다음을 클릭합니다. 다음을 클릭하면 클러스터를 등록할 수 있는 Config Management에 등록된 클러스터 선택 페이지로 이동합니다.

클러스터 등록

클러스터를 만든 후 클러스터를 Fleet에 등록합니다.

  1. Config Management를 위해 등록된 클러스터 선택 페이지에서 이 프로젝트에서 등록 해제된 클러스터 테이블을 찾고 cs-cluster를 찾습니다.
  2. cs-cluster 옆의 등록을 클릭합니다.

    클러스터가 성공적으로 등록되면 Config Management를 위해 등록된 클러스터 선택 테이블에 표시됩니다.

클러스터 구성

이제 클러스터가 생성되었으므로 Anthos Config Management 샘플 저장소의 quickstart 디렉터리에 있는 구성과 동기화되도록 구성 동기화를 구성할 수 있습니다.

Google Cloud Console에서 구성 동기화를 구성하려면 다음 단계를 완료하세요.

  1. Config Management를 위해 등록된 클러스터 선택 테이블에서 cs-cluster를 선택하고 다음을 클릭합니다.
  2. 표시된 구성 동기화 페이지에서 Anthos Config Management 버전 1.7.0 이상을 선택합니다. 이 버전은 기본적으로 여러 저장소에서 동기화를 사용 설정합니다.
  3. 구성 동기화 사용 설정 체크박스를 활성화한 상태로 둡니다.
  4. URL 필드에 https://github.com/GoogleCloudPlatform/anthos-config-management-samples를 추가합니다.
  5. 인증 유형 드롭다운 목록에서 없음을 선택합니다.
  6. 분기 필드에 main을 추가합니다.
  7. HEAD의 기본값을 사용하므로 태그/커밋 필드를 비워 둡니다.
  8. 정책 디렉터리 필드에 quickstart/multirepo/root를 추가합니다.
  9. 여기에서는 각각 기본값인 15초와 HTTPS를 사용하므로 동기화 대기Git 프록시를 비워 둡니다.
  10. 소스 형식 드롭다운 목록에서 구조화되지 않음을 선택합니다. 사용자에게 가장 편리한 방식으로 구성을 조직화할 수 있도록 구조화되지 않은 형식을 사용하는 것이 좋습니다.
  11. 다음을 클릭합니다.
  12. 정책 컨트롤러 사용 설정 체크박스를 선택 해제하고 완료를 클릭합니다.

    Config Management 메뉴로 돌아갑니다. 몇 분 후 cs-cluster 옆에 있는 구성 동기화 상태 열에 Synced가 표시됩니다.

구성 동기화가 저장소에 동기화되었으므로 저장소의 구성과 클러스터 상태를 지속적으로 조정합니다.

구성 동기화 설치 탐색 및 테스트

다음 섹션에서는 Cloud Shell을 사용하여 구성 동기화 설치를 탐색한 후 관리형 객체를 수정하려고 시도합니다.

Cloud Shell 열기

Cloud Shell을 시작하려면 다음 명령을 완료하세요.

  1. Google Cloud Console로 이동합니다.

    Google Cloud Console로 이동

  2. Console의 오른쪽 상단에서 Cloud Shell 활성화 버튼을 클릭합니다.

    Console 하단의 프레임에서 Cloud Shell 세션이 열립니다. 이 셸을 사용하여 gcloud, nomos, kubectl 명령어를 실행합니다.

  3. 다음 섹션의 명령어를 사용하려면 다음 명령어를 실행하여 kubectl 명령줄 액세스를 구성합니다.

    gcloud container clusters get-credentials cs-cluster \
        --zone ZONE \
        --project PROJECT_ID
    

    다음을 바꿉니다.

    • ZONE: 클러스터를 만든 영역입니다.
    • PROJECT_ID: 프로젝트 ID입니다.

    예상 출력:

    Fetching cluster endpoint and auth data.
    kubeconfig entry generated for cs-cluster.
    

클러스터 및 저장소 검사

quickstart 디렉터리에는 ClusterRole, CustomResourceDefinition, 모니터링, Rolebinding, 네임스페이스, RepoSync용 Prometheus 연산자 구성이 포함됩니다. 이 구성은 구성 동기화가 저장소에서 읽도록 구성되는 즉시 적용됩니다.

구성 동기화가 관리하는 모든 객체에는 configmanagement.gke.io로 설정된 app.kubernetes.io/managed-by 라벨이 있습니다.

구성 동기화가 관리하는 네임스페이스를 나열하려면 다음 명령어를 실행합니다.

kubectl get ns -l app.kubernetes.io/managed-by=configmanagement.gke.io

예상 출력:

NAME         STATUS   AGE
gamestore    Active   58s
monitoring   Active   58s

GitHub에서 Anthos Config Management 저장소의 /quickstart/multirepo/ 폴더로 이동하여 이러한 네임스페이스를 만든 구성을 살펴볼 수 있습니다.

ClusterRole, Reposync, CRD, Rolebinding 등의 다른 객체를 같은 방식으로 검사할 수 있습니다.

관리형 객체를 수동으로 수정 시도

구성 동기화는 허용 웹훅을 통해 관리 객체의 변형을 방지합니다.

구성 동기화 관리형 Kubernetes 객체를 수동으로 수정하여 충돌하는 변경사항을 적용하려고 하면 오류가 발생합니다.

이 동작을 테스트하려면 gamestore 네임스페이스를 삭제해보세요.

kubectl delete namespace gamestore

예상 출력:

error: admission webhook "v1.admission-webhook.configsync.gke.io" denied the request: requester is not authorized to delete managed resources

삭제

구성 동기화를 위한 구성 작성의 튜토리얼을 따르려면 아직 정리하지 마세요. 이 빠른 시작은 튜토리얼의 기본 요건이며 튜토리얼에도 정리 안내가 포함되어 있습니다.

이 튜토리얼을 진행하지 않으려면 이 튜토리얼에서 사용한 클러스터를 삭제하여 정리하면 됩니다.

  1. Cloud Console에서 GKE 메뉴로 이동합니다.

    GKE로 이동

  2. cs-cluster 옆의 작업을 클릭한 다음 삭제를 클릭합니다.

  3. 확인 메시지가 나타나면 삭제를 다시 클릭합니다.

다음 단계