예상 소요 시간: 15분
작동 가능한 구성요소 소유자: RM기술 프로필: 배포 엔지니어
OrganizationZonalConfig 리소스는 조직의 영역별 구성을 제어하는 소스입니다.
업그레이드를 위해 루트 관리자 클러스터의 수명 주기를 관리하려면 루트 OrganizationZonalConfig 리소스가 필요합니다. IaC로 리소스를 만들어야 합니다.
다음 단계에 따라 루트 OrganizationZonalConfig 리소스를 만드세요.
루트
OrganizationZonalConfig커스텀 리소스를 생성합니다.get_capacity(){ CAPACITY="$(kubectl --kubeconfig ROOT_ADMIN_KUBECONFIG get organizations -n gpc-system root -o json | jq -r ".spec.resourceCapacities.\"$1\" | to_entries | map(\"\(.key)=\(.value)\") | join(\",\")")"; echo $([[ -z ${CAPACITY} ]] || echo "$2=${CAPACITY} "); } VERSION=$(kubectl --kubeconfig ROOT_ADMIN_KUBECONFIG get organization -n gpc-system root -o json | jq .spec.version) ZONE=$(kubectl --kubeconfig ROOT_ADMIN_KUBECONFIG get controlplane cp -n mz-system -ojsonpath='{.spec.zone}') gdcloud organizations zonal-configs create --name=root --zones=${ZONE?} --version=${VERSION?} $(get_capacity adminServers --admin-server) $(get_capacity storage --storage-sku)ROOT_ADMIN_KUBECONFIG를 루트 관리자 클러스터 kubeconfig 파일의 경로로 바꿉니다.생성된
OrganizationZonalConfig커스텀 리소스 YAML 파일의 예는 다음 예와 비슷합니다.apiVersion: resourcemanager.global.private.gdc.goog/v1alpha1 kind: OrganizationZonalConfig metadata: namespace: gpc-system name: root-zone1-config spec: organizationRef: name: root zone: zone1 version: "1.14.0-gdch.1594" capacities: adminServers: o1-highmem1-40-gdc-metal: 3 storage: object-nearline: 10Ti object-standard: 10TiOrganizationZonalConfig커스텀 리소스를 IaC 저장소에 복사합니다.cp YAML_FILE_PATH IAC_REPO_PATH/iac/infrastructure/global/orgs/root/다음을 바꿉니다.
YAML_FILE_PATH:OrganizationZonalConfig커스텀 리소스 파일의 경로입니다.IAC_REPO_PATH: IAC 저장소 경로입니다.
루트
OrganizationZonalConfig를 루트 조직의 리소스로 추가합니다.global-root-kustomization.yaml파일을 엽니다.vim IAC_REPO_PATH/iac/infrastructure/global/orgs/root/global-root-kustomization.yaml기존 리소스 목록 끝에 루트
OrganizationZonalConfig을 리소스로 추가합니다.apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization metadata: name: global-root-kustomization resources: - ... # existing resource items - FILE_NAME.yaml
OrganizationZonalConfigYAML 파일과kustomize파일을 스테이징하고 커밋합니다.git add "IAC_REPO_PATH/iac/infrastructure/global" git commit병합 요청을 만듭니다.
git checkout -b BRANCH_NAME git -c http.sslVerify=false push -o merge_request.create origin BRANCH_NAMEBRANCH_NAME을 선택한 브랜치 이름으로 바꿉니다.코드 검토 및 병합을 기다립니다.
루트 관리자 클러스터의 관리자 Kubernetes 구성을 사용하여 전역 API의 관리자 Kubernetes 구성을 가져옵니다.
kubectl get secrets -n global-kube-system kube-admin-test-kubeconfig -ojsonpath="{.data.value}" | base64 -d > HOME_DIRECTORY/root-global-kubeconfig루트 관리자 클러스터의 관리자 Kubernetes 구성을 사용하여 전역 API의 포트를 전달합니다.
kubectl port-forward -n global-kube-system service/kube-svc 6449:6449 &> /dev/null &이 단계에서는 백그라운드에서 포트 전달 명령어를 실행합니다. 프로세스가 예기치 않게 중지되면 동일한 명령어를 다시 실행하여 다시 시작할 수 있습니다.
OrganizationZonalConfig리소스를 GDC 환경에서 사용할 수 있는지 확인합니다.kubectl --kubeconfig HOME_DIRECTORY/root-global-kubeconfig get organizationzonalconfig -A출력에는 다음 항목이 포함되어야 합니다(영역 이름은 다를 수 있음).
NAMESPACE NAME AGE gpc-system rootzone1config 38h