이 빠른 시작은 foo-corp 예시 저장소를 사용하여 일련의 구성으로 클러스터를 부트스트랩하기위해 새 클러스터에서 Anthos Config Management를 시작하는 방법을 보여줍니다. 이 빠른 시작에서는 저장소에 대한 쓰기 액세스 권한이 필요하지 않습니다. 조직의 규정 준수팀이 구성을 만들고, 각 클러스터가 저장소와 동기화해야 한다고 가정해 보세요.
시작하기 전에
-
Google 계정으로
로그인합니다.
아직 계정이 없으면 새 계정을 등록하세요.
-
Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.
-
Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.
- Anthos API를 사용 설정합니다.
- Cloud SDK 설치 및 초기화
클러스터 설정
GKE 사용자
kubectl
명령어를 설정하여 클러스터에 인증하고 다음 명령어로 RoleBinding을 만들어 자신을 클러스터 관리자로 지정합니다.[MY-CLUSTER]
에는 클러스터 이름을 사용하고 [USER-ACCOUNT]에는 Google Cloud 계정의 이메일 주소를 사용합니다. 로컬 시스템에서gcloud
명령어를 구성한 방법에 따라--project
및--zone
필드를 추가해야 할 수도 있습니다.gcloud container clusters get-credentials [MY-CLUSTER] kubectl create clusterrolebinding cluster-admin-binding \ --clusterrole cluster-admin --user [USER_ACCOUNT]
Anthos clusters on VMware 사용자
Anthos Config Management 준비
다음 단계를 완료하여 이 빠른 시작에 필요한 도구를 준비하세요.
Anthos Config Management를 처음으로 사용하는 경우 Google Cloud Console 또는
gcloud
명령줄 도구를 통해 이 기능을 사용 설정합니다.콘솔
Anthos Config Management를 사용 설정하려면 다음 안내를 따르세요.
Google Cloud Console에서 Anthos 기능 페이지로 이동합니다.
Config Management 행에서 사용 설정을 클릭합니다.
확인 창에서 Config Management 사용 설정을 클릭합니다.
gcloud
Anthos Config Management를 사용 설정하려면 다음 명령어를 실행합니다.
gcloud alpha container hub config-management enable
로컬 시스템에
nomos
명령어를 설치합니다.kubectl
을 사용하여 설치하려는 경우 방금 만든 클러스터에 Config Management Operator를 배포합니다.
클러스터 구성
Google Cloud Console, gcloud
명령줄 도구 또는 kubectl
을 사용하여 클러스터를 구성할 수 있습니다.
콘솔
Google Cloud Console에서 Anthos Config Management를 구성하려면 다음 단계를 완료합니다.
Google Cloud Console에서 Anthos Config Management 메뉴로 이동합니다.
등록된 클러스터를 선택하고 구성을 클릭합니다.
이 예시에서 저장소를 공개적으로 읽을 수 있으므로 ACM용 Git 저장소 인증 섹션에 없음을 선택합니다.
계속을 클릭합니다.
클러스터의 ACM 설정 섹션에서 다음을 완료합니다.
- 버전 필드에서 Anthos Config Management 버전을 선택합니다.
- 구성 동기화 사용 설정 체크박스를 선택합니다.
표시되는 드롭다운 메뉴에서 다음을 완료합니다.
- URL 필드에
https://github.com/GoogleCloudPlatform/csp-config-management/
를 추가합니다. - 분기 필드에
1.0.0
을 추가합니다. HEAD
의 기본값을 사용하므로 태그/커밋 필드를 비워 둡니다.- 정책 디렉터리 필드에
foo-corp
를 추가합니다. - 다른 필드는 모두 기본값 그대로 둡니다.
- URL 필드에
완료를 클릭합니다. Anthos Config Management 메뉴로 돌아갑니다. 몇 분 후에 구성한 클러스터 옆에 있는 상태 열에
Synced
가 표시됩니다.
gcloud
config-management.yaml
파일을 만들고 이 파일에 아래 YAML 파일을 복사합니다.
저장소는 전 세계에서 읽을 수 있으므로 secretType
은 none
으로 설정됩니다. 필드에 대한 설명은 Git 저장소 구성을 참조하세요.
config-management.yaml
파일을 만들고 이 파일에 아래 YAML 파일을 복사합니다.# config-management.yaml apiVersion: configmanagement.gke.io/v1 kind: ConfigManagement metadata: name: config-management namespace: config-management-system spec: git: syncRepo: https://github.com/GoogleCloudPlatform/csp-config-management/ syncBranch: 1.0.0 secretType: none policyDir: "foo-corp"
변수 설정:
export CONFIG_YAML=PATH_TO_CONFIG_YAML
config-management.yaml
파일을 적용합니다.gcloud alpha container hub config-management apply \ --membership=CLUSTER_NAME \ --config=CONFIG_YAML \ --project=PROJECT_ID
다음을 바꿉니다.
- CLUSTER_NAME: 이 구성을 적용할 등록된 클러스터를 추가합니다.
- PROJECT_ID: 프로젝트 ID를 추가합니다.
kubectl
config-management.yaml
파일을 만들고 이 파일에 아래 YAML 파일을 복사합니다.
저장소는 전 세계에서 읽을 수 있으므로 secretType
은 none
으로 설정됩니다. 필드에 대한 설명은 Git 저장소 구성을 참조하세요.
apiVersion: configmanagement.gke.io/v1
kind: ConfigManagement
metadata:
name: config-management
spec:
# clusterName is required and must be unique among all managed clusters
clusterName: my-cluster
git:
syncRepo: https://github.com/GoogleCloudPlatform/csp-config-management/
syncBranch: 1.0.0
secretType: none
policyDir: "foo-corp"
클러스터에 구성을 적용합니다.
kubectl apply -f config-management.yaml
명령어가 성공적으로 실행되면 Kubernetes는 클러스터에서 Anthos Config Management를 업데이트하여 저장소에서 클러스터의 구성을 동기화하기 시작합니다.
Anthos Config Management가 실행 중인지 확인하려면 config-management-system
네임스페이스에서 실행 중인 모든 Pod를 나열합니다.
kubectl get pods -n config-management-system
결과:
NAME READY STATUS RESTARTS AGE
git-importer-5f8bdb59bd-7nn5m 2/2 Running 0 2m
monitor-58c48fbc66-ggrmd 1/1 Running 0 2m
syncer-7bbfd7686b-dxb45 1/1 Running 0 2m
클러스터 및 저장소 검사
foo-corp
저장소에는 cluster/
및 namespaces/
디렉터리의 구성이 포함됩니다. 이러한 구성은 Anthos Config Management가 저장소에서 읽도록 구성되는 즉시 적용됩니다.
Anthos Config Management가 관리하는 모든 객체에는 app.kubernetes.io/managed-by
라벨이 configmanagement.gke.io
로 설정되어 있습니다.
Anthos Config Management에서 관리하는 네임스페이스를 나열합니다.
kubectl get ns -l app.kubernetes.io/managed-by=configmanagement.gke.io
출력:
NAME STATUS AGE
audit Active 4m
shipping-dev Active 4m
shipping-prod Active 4m
shipping-staging Active 4m
namespaces/audit/namespace.yaml
, namespaces/online/shipping-app-backend/shipping-dev/namespace.yaml
등 이러한 네임스페이스를 만든 구성을 검토합니다.
Anthos Config Management에서 관리하는 ClusterRole을 나열합니다.
kubectl get clusterroles -l app.kubernetes.io/managed-by=configmanagement.gke.io
출력:
NAME AGE
namespace-reader 6m52s
pod-creator 6m52s
다음을 선언하는 ClusterRole 구성을 조사합니다.
cluster/namespace-reader-clusterrole.yaml
cluster/pod-creator-clusterrole.yaml
역할 및 PodSecurityPolicies와 같은 다른 객체도 같은 방법으로 검사할 수 있습니다.
관리형 객체를 수동으로 수정 시도
Anthos Config Management에서 관리하는 Kubernetes 객체를 수동으로 수정하면 수정된 객체 구성이 저장소에 있는 객체 구성과 일치하도록 자동으로 업데이트됩니다. 이를 테스트하려면 shipping-dev
네임스페이스를 삭제합니다.
kubectl delete namespace shipping-dev
바로 검사하면 네임스페이스가 누락될 수 있지만 몇 초 내에 다시 존재하게 됩니다. 예를 들면 다음과 같습니다.
kubectl get ns shipping-dev
출력:
Error from server (NotFound): namespaces "shipping-dev" not found
몇 초 후:
kubectl get ns shipping-dev
출력:
NAME STATUS AGE
shipping-dev Active 3s
삭제
Config Sync을 위한 구성 작성의 빠른 시작을 사용하려면 아직 정리하지 마세요. 이 빠른 시작은 고급 빠른 시작의 기본 요건이며, 고급 빠른 시작에도 삭제 안내가 포함되어 있습니다.
고급 빠른 시작을 원하지 않으면 테스트에 사용된 클러스터를 삭제하여 정리할 수 있습니다.
다음 단계
- 구성 작성, 테스트, 동기화에 대한 고급 빠른 시작 따라하기
- 구성 작성에 대해 자세히 알아보기
- 구성 확인 알아보기