Config Connector를 수동으로 설치
이 페이지에서는 구성 커넥터를 수동으로 설치하는 방법을 설명합니다.
여러 설치 옵션에 대한 자세한 정보는 설치 유형 선택을 참조하세요.
수동 방법으로 설치하면 부가기능을 사용하는 것보다 더 신속하게 업데이트할 수 있습니다.
Config Connector는 아래 안내에 따라 클러스터 모드로 구성됩니다. 즉, 단일 Google Cloud IAM 서비스 계정으로 가장된 전역 Config Connector 컨트롤러 한 개가 있습니다. Config Connector 리소스를 더 추가하고 동일한 클러스터에 더 많은 Kubernetes 네임스페이스를 도입하면 확장성이 뛰어나고 멀티 테넌트 사용 사례(예: 여러 Google Cloud 프로젝트의 리소스 관리)에 대해 더 나은 IAM 권한 격리를 제공하는 네임스페이스 모드로 전환하는 것을 고려해볼 수 있습니다.
시작하기 전에
Config Connector 연산자를 수동으로 설치하기 전에 다음 단계를 완료하세요.
- Config Connector가 아직 설치되지 않았고 워크로드 아이덴티티 및 Kubernetes Engine Monitoring이 사용 설정된 GKE 클러스터를 만들거나 식별합니다.
- 클러스터에 연결하도록
kubectl
을 구성합니다.
구성 커넥터 연산자 설치
구성 커넥터는 Kubernetes 연산자를 사용하여 설치를 최신 상태로 유지합니다. 이 연산자를 설치하려면 다음 단계를 완료하세요.
최신 Config Connector 연산자 tar 파일을 다운로드합니다.
gcloud storage cp gs://configconnector-operator/latest/release-bundle.tar.gz release-bundle.tar.gz
tar 파일의 압축을 풉니다.
tar zxvf release-bundle.tar.gz
클러스터에 Config Connector 연산자를 설치합니다.
GKE Autopilot 클러스터의 경우:
kubectl apply -f operator-system/autopilot-configconnector-operator.yaml
GKE Standard 클러스터의 경우:
kubectl apply -f operator-system/configconnector-operator.yaml
ID 만들기
구성 커넥터는 IAM 서비스 계정을 Kubernetes 서비스 계정과 연결하기 위해 Identity and Access Management(IAM) 서비스 계정과 GKE의 워크로드 아이덴티티를 사용하여 Google Cloud 리소스를 만들고 관리합니다.
ID를 만들려면 다음 단계를 완료하세요.
-
IAM 서비스 계정을 만듭니다. 기존 서비스 계정을 사용하려면 해당 계정을 사용하여 이 단계를 건너뛸 수 있습니다.
서비스 계정을 만들려면 다음 명령어를 사용합니다.gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
SERVICE_ACCOUNT_NAME
을 서비스 계정의 이름으로 바꿉니다. - 프로젝트에 대해 높은 권한을 IAM 서비스 계정에 부여합니다.
다음을 바꿉니다.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/editor"
PROJECT_ID
를 프로젝트 ID로 바꿉니다.SERVICE_ACCOUNT_NAME
을 서비스 계정의 이름으로 바꿉니다.
- IAM 서비스 계정과 구성 커넥터가 실행되는 사전 정의된 Kubernetes 서비스 계정 간에 IAM 정책 binding을 만듭니다.
다음을 바꿉니다.gcloud iam service-accounts add-iam-policy-binding \ SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --member="serviceAccount:PROJECT_ID.svc.id.goog[cnrm-system/cnrm-controller-manager]" \ --role="roles/iam.workloadIdentityUser"
SERVICE_ACCOUNT_NAME
을 서비스 계정의 이름으로 바꿉니다.PROJECT_ID
를 프로젝트 ID로 바꿉니다.
서비스 계정 만들기에 대한 자세한 내용은 서비스 계정 만들기 및 관리를 참조하세요.
Config Connector 구성
설치를 완료하려면 ConfigConnector
CustomResource를 위한 구성 파일을 만든 다음 kubectl apply
명령어를 사용하여 적용합니다. 구성 커넥터 연산자가 Google Cloud 리소스 CRD 및 구성 커넥터 구성요소를 클러스터에 설치합니다.
연산자를 클러스터 모드로 구성하려면 다음 단계를 완료합니다.
-
다음 YAML 파일을
configconnector.yaml
이라는 파일에 복사합니다. 다음을 바꿉니다.# configconnector.yaml apiVersion: core.cnrm.cloud.google.com/v1beta1 kind: ConfigConnector metadata: # the name is restricted to ensure that there is only one # ConfigConnector resource installed in your cluster name: configconnector.core.cnrm.cloud.google.com spec: mode: cluster googleServiceAccount: "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" # Setting `stateIntoSpec` to `Absent` is recommended. It means setting `cnrm.cloud.google.com/state-into-spec` # annotation to `absent` for all Config Connector resources created in the cluster in the future. # It prevents Config Connector from populating unspecified fields into the spec. stateIntoSpec: Absent
SERVICE_ACCOUNT_NAME
을 서비스 계정의 이름으로 바꿉니다.PROJECT_ID
를 프로젝트 ID로 바꿉니다.
kubectl apply
로 클러스터에 구성을 적용합니다.kubectl apply -f configconnector.yaml
리소스를 만들 위치 지정
구성 커넥터는 프로젝트, 폴더 또는 조직별로 리소스를 정리할 수 있으며 이는 Google Cloud에서 리소스를 정리하는 방법과 동일합니다.
구성 커넥터를 사용하여 리소스를 생성하기 전에 리소스를 생성할 위치를 구성해야 합니다. 리소스를 생성할 위치를 결정하기 위해 구성 커넥터는 리소스 구성 또는 기존 네임스페이스에 주석을 사용합니다. 자세한 정보는 리소스 구성을 참조하세요.
이 목적을 위한 네임스페이스가 없는 경우kubectl
을 사용하여 네임스페이스를 만듭니다.
kubectl create namespace NAMESPACE
NAMESPACE
를 네임스페이스 이름으로 바꿉니다. 예를 들면 config-connector
입니다.
탭을 선택하여 구성 커넥터로 리소스를 만들 위치를 선택합니다.
프로젝트
특정 프로젝트에서 리소스를 만들려면 다음 명령어를 실행하세요.
kubectl annotate namespace \ NAMESPACE cnrm.cloud.google.com/project-id=PROJECT_ID
다음을 바꿉니다.
NAMESPACE
를 네임스페이스 이름으로 바꿉니다.PROJECT_ID
를 Google Cloud 프로젝트 ID로 바꿉니다.
폴더
특정 폴더에 리소스를 만들려면 다음 명령어를 실행합니다.
kubectl annotate namespace \ NAMESPACE cnrm.cloud.google.com/folder-id=FOLDER_ID
다음을 바꿉니다.
NAMESPACE
를 네임스페이스 이름으로 바꿉니다.FOLDER_ID
를 Google Cloud 폴더 ID로 바꿉니다.
조직
특정 조직의 리소스를 만들려면 다음 명령어를 실행합니다.
kubectl annotate namespace \ NAMESPACE cnrm.cloud.google.com/organization-id=ORGANIZATION_ID
다음을 바꿉니다.
NAMESPACE
를 네임스페이스 이름으로 바꿉니다.ORGANIZATION_ID
를 Google Cloud 조직 ID로 바꿉니다.
네임스페이스에 주석을 달면 구성 커넥터는 해당 프로젝트, 폴더 또는 조직에 리소스를 만듭니다. 구성 커넥터가 Kubernetes 네임스페이스를 사용하는 방법에 대한 자세한 내용은 Kubernetes 네임스페이스 및 Google Cloud 프로젝트를 참조하세요.
설치 확인
구성 커넥터는 cnrm-system
이라는 네임스페이스에서 모든 구성요소를 실행합니다.
다음 명령어를 실행하여 pod가 준비되었는지 확인할 수 있습니다.
kubectl wait -n cnrm-system \
--for=condition=Ready pod --all
구성 커넥터가 올바르게 설치된 경우 출력은 다음과 유사합니다.
pod/cnrm-controller-manager-0 condition met
구성 커넥터 업그레이드
Config Connector 연산자의 최신 버전을 다운로드하고 설치하려면 다음 명령어를 실행합니다.
gcloud storage cp gs://configconnector-operator/latest/release-bundle.tar.gz release-bundle.tar.gz
tar zxvf release-bundle.tar.gz
kubectl apply -f operator-system/configconnector-operator.yaml
Config Connector 제거
kubectl delete
를 사용하여 컨트롤러 구성요소와 함께 Config Connector CRD를 삭제합니다.
kubectl delete ConfigConnector configconnector.core.cnrm.cloud.google.com \
--wait=true
Config Connector 연산자를 제거하려면 다음 명령어를 실행합니다.
kubectl delete -f operator-system/configconnector-operator.yaml --wait=true
비연산자 설치에서 업그레이드
Config Connector 버전 1.33.0 이상에서는 GKE 부가기능 또는 연산자를 통한 설치만 지원합니다.
연산자로 업그레이드하고 모든 Config Connector 리소스를 유지하려면 CRD를 제외한 모든 Config Connector 시스템 구성요소를 삭제한 후 연산자를 설치해야 합니다.
다음 명령어를 실행하여 Config Connector 시스템의 CRD를 제외한 구성요소를 삭제합니다.
kubectl delete sts,deploy,po,svc,roles,clusterroles,clusterrolebindings --all-namespaces -l cnrm.cloud.google.com/system=true --wait=true kubectl delete validatingwebhookconfiguration abandon-on-uninstall.cnrm.cloud.google.com --ignore-not-found --wait=true kubectl delete validatingwebhookconfiguration validating-webhook.cnrm.cloud.google.com --ignore-not-found --wait=true kubectl delete mutatingwebhookconfiguration mutating-webhook.cnrm.cloud.google.com --ignore-not-found --wait=true
부가기능에서 수동 설치로 전환
부가기능으로 설치된 경우 Config Connector 버전이 설치된 GKE 버전에 직접 연결됩니다.
수동 설치를 사용하면 수동 업그레이드 비용으로 더 빠르게 업그레이드할 수 있습니다.
모든 리소스를 안전하게 보관하면서 전환하려면 다음 안내를 따르세요.
ConfigConnector
또는ConfigConnectorContext
객체를 삭제하지 않고 부가기능을 사용 중지합니다.gcloud container clusters update CLUSTER_NAME --update-addons ConfigConnector=DISABLED
CLUSTER_NAME
을 Config Connector가 설치된 클러스터의 이름으로 바꿉니다.안내에 따라 원하는 버전의 수동 연산자를 설치합니다.
다음 단계
- Config Connector 시작하기
- 구성 커넥터의 권장사항에 대해 알아보기