이 페이지에서는 Google Cloud 콘솔 또는 Google Cloud CLI를 사용하여 구성 동기화를 설치한 후 kubectl
명령어를 사용해서 구성 동기화를 구성하는 방법을 설명합니다.
콘솔 또는 CLI를 사용하여 구성을 많이 변경할 수 있지만 일부 구성 동기화 기본값을 재정의하고 SSL 인증서 확인을 제어하며 인증 기관을 사용하려면 kubectl
명령어를 사용해야 합니다.
RootSync 구성 파일 만들기 및 수정
kubectl
명령어를 사용하여 구성 동기화를 구성하려면 YAML 파일을 만들어서 RootSync 객체를 수정합니다.
Google Cloud Console 또는 Google Cloud CLI를 사용하여 구성 동기화를 설치하면 구성 동기화는 root-sync
라는 RootSync 객체를 자동으로 만듭니다. 이 객체에는 구성 동기화에 대한 최신 구성 정보가 포함됩니다. Google Cloud 콘솔 또는 Google Cloud CLI에서 변경을 수행할 때마다 root-sync
가 업데이트됩니다.
kubectl
을 사용하여 수정할 수 있는 필드에 대해 알아보기
Google Cloud console 또는 Google Cloud CLI에서 지원되지 않는 필드에 kubectl
명령어를 사용하여 root-sync
를 고급으로 변경할 수 있습니다. kubectl
명령어를 사용해서 RootSync 또는 RepoSync 객체를 직접 만든 후 업데이트하려면 RootSync 및 RepoSync 필드를 참조하세요.
다음 섹션에서 만드는 YAML 파일을 변경하기 전에 다음 표를 숙지합니다. 이 표에는 편집 및 추가할 수 있는 필드가 나열되어 있습니다. 이 표에 나열되지 않은 필드를 수정하면 구성 동기화는 Google Cloud Console 또는 Google Cloud CLI에서 구성 동기화를 마지막으로 구성했을 때 설정한 값으로 변경사항을 자동으로 되돌립니다.
키 | 설명 |
---|---|
spec.git.noSSLVerify |
noSSLVerify 는 SSL 인증서 확인을 사용 설정 또는 사용 중지할지 여부를 지정합니다. 기본값: false noSSLVerify 가 true 로 설정된 경우 Git에 SSL 인증서 확인을 건너뛰도록 지정합니다. |
spec.git.caCertSecretRef.name |
인증 기관(CA) 인증서가 포함된 보안 비밀의 이름입니다. 이 필드가 제공되면 Git 서버는 이 CA에서 발급한 인증서를 사용해야 합니다. CA 인증서는 `cert`라는 키 아래 보안 비밀에 저장되어야 합니다. |
spec.override.resources |
컨테이너 리소스 요청 및 한도 재정의 목록입니다. 선택사항. 목록의 각 항목에 3개 필드가 포함됩니다.
리소스 요청 또는 한도의 재정의 값이 제공되지 않았으면 요청 또는 한도에 대해 기본 리소스 값이 사용됩니다. |
spec.override.gitSyncDepth |
gitSyncDepth 를 사용하면 가져올 Git 커밋 수를 재정의할 수 있습니다.0보다 작지 않아야 합니다. 이 필드가 0이면 구성 동기화가 전체 클론을 수행하고 이 필드가 0보다 크면 부분 클론을 수행합니다. 이 필드를 제공하지 않으면 구성 동기화가 이를 자동으로 구성합니다. |
spec.override.statusMode |
statusMode 를 사용하면 리소스 수준 상태 캡처를 사용 설정하거나 사용 중지할 수 있습니다.기본값은 enabled 입니다.리소스 수준 상태 캡처를 사용 중지하려면 이 필드를 disabled 로 설정합니다.
|
spec.override.reconcileTimeout |
reconcileTimeout 을 사용하면 포기하기 전에 적용 그룹의 리소스가 조정될 때까지 기다리는 시간에 대한 기준점을 재정의할 수 있습니다. 커밋의 모든 리소스는 종속 항목을 기반으로 여러 적용 그룹에 있을 수 있습니다.기본 제한 시간은 5m 입니다.문자열을 사용하여 이 필드 값을 지정합니다(예: 30s , 5m ).
|
spec.override.enableShellInRendering |
enableShellInRendering 은 렌더링 프로세스에서 셸 액세스를 사용 설정 또는 사용 중지할지 여부를 지정합니다. Kustomize 원격 베이스에는 셸 액세스가 필요합니다. 이 필드를 true 로 설정하면 렌더링 프로세스에서 셸 액세스를 사용 설정하고 공개 저장소에서 원격 베이스를 가져올 수 있습니다.기본값은 false 입니다. |
파일 만들기
root-sync
를 위한 구성 파일을 만들고 수정하려면 다음 단계를 완료하세요.
올바른 클러스터에 대한 구성 정보를 검색하고 있는지 확인하려면
kubectl
명령줄 액세스를 구성합니다.gcloud container clusters get-credentials CLUSTER_NAME \ --zone ZONE \ --project PROJECT_ID
다음을 바꿉니다.
CLUSTER_NAME
: 변경하려는 구성 동기화 구성이 포함된 클러스터의 이름입니다.ZONE
: 클러스터를 만든 영역입니다.PROJECT_ID
: 프로젝트 ID입니다.
구성 동기화로 만든 RootSync 객체의 구성 정보를 YAML 파일에 복사합니다.
kubectl get rootsync root-sync -n config-management-system -o yaml > FILE_NAME.yaml
FILE_NAME
을 구성 파일의 이름으로 바꿉니다.만든 YAML 파일을 열고 필요한 구성 변경을 수행합니다. 예를 들어
git-sync
컨테이너의 메모리 한도를 재정의하려면 다음 필드를 굵게 표시합니다.apiVersion: v1 items: - apiVersion: configsync.gke.io/v1beta1 kind: RootSync metadata: annotations: configmanagement.gke.io/managed-by-hub: "true" configmanagement.gke.io/update-time: "1644945169" creationTimestamp: "2022-02-15T17:12:52Z" generation: 1 name: root-sync namespace: config-management-system resourceVersion: "211980457" uid: aa30a94b-2825-4590-ad30-5af848403502 spec: git: auth: none branch: main dir: /quickstart/config-sync period: 15s repo: https://github.com/GoogleCloudPlatform/anthos-config-management-samples revision: HEAD secretRef: {} override: resources: - containerName: "git-sync" memoryLimit: "400Mi" sourceFormat: unstructured # Remainder of RootSync omitted
변경사항을 YAML 파일에 적용합니다.
kubectl apply -f FILE_NAME.yaml
구성 동기화로 변경사항이 적용되었는지 확인하려면 RootSync 객체를 봅니다.
kubectl describe rootsync root-sync -n config-management-system
변경사항으로 오류가 발생하지 않았는지 확인하려면
nomos status
명령어를 사용합니다.nomos status
인증 기관 구성
아직 신뢰할 수 없는 인증 기관(CA)의 인증서로 구성된 서버의 경우, 구성 동기화는 CA 인증서를 사용하여 서버에 대한 HTTPS 연결을 확인하도록 구성할 수 있습니다. 이는 Git, Helm 또는 OCI 서버에서 지원됩니다. CA 인증서에는 전체 SSL 인증서(루트/중간/리프)가 포함되어야 합니다.
서버가 이미 신뢰할 수 있는 CA를 사용 중이거나 HTTPS를 통해 연결하지 않는 경우 이 단계를 건너뛰고 caCertSecretRef
를 설정하지 않습니다.
RootSync
Git 서버의 인증서를 발급하는 데 사용된 CA 인증서를 가져와서 파일에 저장합니다.
RootSync
객체의 경우config-management-system
네임스페이스에 보안 비밀을 만들어야 합니다. 예를 들면 다음과 같습니다.kubectl create secret generic ROOT_CA_CERT_SECRET_NAME
--namespace=config-management-system
--from-file=cert=/path/to/CA_CERT_FILERootSync
객체를 구성할 때RootSync
객체의caCertSecretRef.name
필드 값을 ROOT_CA_CERT_SECRET_NAME으로 설정합니다.
RepoSync
Git 서버의 인증서를 발급하는 데 사용된 CA 인증서를 가져와서 파일에 저장합니다.
RepoSync
객체의 경우 RepoSync와 동일한 네임스페이스에 보안 비밀을 만들어야 합니다. 예를 들면 다음과 같습니다.kubectl create secret generic NAMESPACE_CA_CERT_SECRET_NAME
--namespace=REPO_SYNC_NAMESPACE
--from-file=cert=/path/to/CA_CERT_FILERepoSync
를 구성할 때RepoSync
객체의caCertSecretRef.name
필드 값을 NAMESPACE_CA_CERT_SECRET_NAME으로 설정합니다.
RootSync 객체 삭제
root-sync
를 삭제하려면 다음 명령어를 실행합니다.
kubectl delete -f FILE_NAME
FILE_NAME
을 RootSync 구성 파일의 이름으로 바꿉니다. 예를 들면 root-sync.yaml
입니다.
RootSync 또는 RepoSync 객체를 삭제해도 구성 동기화 주석 및 라벨은 삭제되지 않습니다. 관리형 리소스를 삭제하려면 비어 있는 Git 디렉터리에서 동기화합니다.
다음 단계
- RootSync 및 RepoSync 필드 자세히 알아보기
- RootSync 및 RepoSync 객체를 모니터링하는 방법 알아보기