이 페이지에서는 Google Cloud 콘솔 또는 Google Cloud CLI를 사용하여 구성 동기화를 설치한 후 kubectl 명령어를 사용해서 구성 동기화를 구성하는 방법을 설명합니다.
콘솔 또는 CLI를 사용하여 구성을 많이 변경할 수 있지만 일부 구성 동기화 기본값을 재정의하고 SSL 인증서 확인을 제어하며 인증 기관을 사용하려면 kubectl 명령어를 사용해야 합니다.
RootSync 구성 파일 만들기 및 수정
kubectl 명령어를 사용하여 구성 동기화를 구성하려면 YAML 파일을 만들어서 RootSync 객체를 수정합니다.
Google Cloud 콘솔 또는 Google Cloud CLI를 사용하여 구성 동기화를 설치하면 구성 동기화는 root-sync라는 RootSync 객체를 자동으로 만듭니다. 이 객체에는 구성 동기화에 대한 최신 구성 정보가 포함됩니다. Google Cloud 콘솔 또는 Google Cloud CLI에서 변경을 수행할 때마다 root-sync가 업데이트됩니다.
kubectl을 사용하여 수정할 수 있는 필드에 대해 알아보기
Google Cloud 콘솔 또는 Google Cloud CLI에서 지원되지 않는 필드에 kubectl 명령어를 사용하여 root-sync에 고급 변경사항을 적용할 수 있습니다. kubectl 명령어를 사용해서 RootSync 또는 RepoSync 객체를 직접 만든 후 업데이트하려면 RootSync 및 RepoSync 필드를 참조하세요.
다음 섹션에서 만드는 YAML 파일을 변경하기 전에 다음 표를 숙지합니다. 이 표에는 편집 및 추가할 수 있는 필드가 나열되어 있습니다. 이 표에 나열되지 않은 필드를 수정하면 구성 동기화는 Google Cloud 콘솔 또는 Google Cloud CLI에서 구성 동기화를 마지막으로 구성했을 때 설정한 값으로 변경사항을 자동으로 되돌립니다.
| 키 | 설명 |
|---|---|
spec.helm |
Helm 저장소 구성의 모든 필드입니다. |
spec.override |
기본 구성을 재정의하는 모든 필드입니다. |
spec.git.noSSLVerify |
Git의 SSL 인증서 확인을 사용 설정 또는 사용 중지할지 지정합니다. 기본값은 false입니다.
|
spec.git.caCertSecretRef.name |
Git 저장소의 인증 기관(CA) 인증서가 포함된 보안 비밀의 이름입니다. |
spec.oci.caCertSecretRef.name |
OCI 저장소의 인증 기관(CA) 인증서가 포함된 보안 비밀의 이름입니다. |
파일 만들기
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.yamlFILE_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 객체를 모니터링하는 방법 알아보기