기기 업데이트 및 패치

이 페이지에서는 Google Distributed Cloud (GDC) 오프라인 어플라이언스 기기를 업데이트하고 패치를 적용하는 단계를 설명합니다.

업그레이드 준비

업그레이드하기 전에 이 섹션에 나열된 요구사항을 충족하는지 확인하세요.

시작하기 전에

노트북 기본 요건을 검토하여 업데이트 및 패치 업그레이드에 사용하는 노트북이 물리적 사양 및 기타 요구사항을 충족하는지 확인합니다.

먼저 gdcloud 명령줄 인터페이스 (CLI) 도구와 관련하여 다음 작업을 완료해야 합니다.

  1. gdcloud CLI 도구를 다운로드합니다.
  2. gdcloud CLI 도구를 설치합니다.
  3. 필요에 따라 gdcloud CLI 도구를 업그레이드합니다.
  4. docker-credential-gdcloud이 있는지 확인합니다.

아티팩트를 업그레이드 머신으로 전송

Cloud Storage 버킷에 액세스할 수 있어야 합니다.

다음 단계에 따라 업데이트 및 패치 업그레이드에 사용하는 노트북으로 아티팩트를 전송합니다.

  1. 선택한 패치 버전을 기반으로 패키지 다운로드:

    VERSION=<x.x.x-gdch.yyy>
    RELEASE_SUFFIX="_te"
    DOWNLOADER=gdch-downloader-prod${RELEASE_SUFFIX}-$VERSION.sh
    gcloud storage cp "gs://$GCS_BUCKET/$VERSION/$DOWNLOADER" .
    gcloud storage cp "gs://$GCS_BUCKET/$VERSION/${DOWNLOADER}.sig" .
    
    PUBLIC_KEY=$(cat <<-PUBEND
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEn46iVSyFXsvuKLZ4dVOr2AqlXDnR
    5cKztkpraexHDxn/ozq03EvrdkRmZkSACFfcaEFyitpraidgAx8sPjvzXQ==
    -----END PUBLIC KEY-----
    PUBEND
    )
    echo "${PUBLIC_KEY}" > "key.pub"
    DOWNLOADER=gdch-downloader-${PRODUCT}-$VERSION.sh
    
    gcloud storage cp "gs://${GCS_BUCKET:-private-cloud-release}/$VERSION/$DOWNLOADER*" .
       openssl dgst -sha256 -verify "key.pub" -signature "${DOWNLOADER}.sig" ${DOWNLOADER} && chmod +x $DOWNLOADER && ./$DOWNLOADER --skip-unzip
    

    이 명령어는 업데이트 패키지와 다운로더 스크립트를 현재 디렉터리(예: /home/download)로 가져옵니다.

  2. tree -L 3 /home/download를 실행합니다.

    출력 예시:

    /home/download
    ├── gdch
    │   └── x.x.x-gdch.x
    │       ├── bootstrapper
    │       │   ├── bootstrapper.iso
    │       │   └── bootstrapper.iso.sig
    │       ├── gdch-prod_te-x.x.x-gdch.x-sbom.tar.gz
    │       ├── gdch-prod_te-x.x.x-gdch.x-sbom.tar.gz.sig
    │       ├── prod_te_gdch.tar.gz
    │       └── prod_te_gdch.tar.gz.sig
    ├── gdch-downloader-prod_te-x.x.x-gdch.x.sh
    ├── gdch-downloader-prod_te-x.x.x-gdch.x.sh.1.sig
    ├── gdch-downloader-prod_te-x.x.x-gdch.x.sh.sig
       └── key.pub
    
  3. USB 드라이브를 사용하여 업데이트를 오프라인 환경에 복사합니다.

    다운로더 스크립트와 1단계에서 USB 드라이브에 다운로드한 gdch 디렉터리를 모두 에어 갭 환경의 업그레이드 머신에 복사합니다.

  4. 업그레이드 머신에서 콘텐츠를 확인하고 패키지를 다운로드하는 데 사용한 동일한 정보를 사용하여 파일을 추출합니다. 예를 들어 다음 코드는 패키지를 /root 디렉터리에 복사합니다.

    패키지를 압축 해제합니다.

    VERSION=x.x.x-gdch.x
    PRODUCT=prod_te
    DOWNLOADER=gdch-downloader-${PRODUCT}-$VERSION.sh
    openssl dgst -sha256 -verify "key.pub" -signature "${DOWNLOADER}.sig" ${DOWNLOADER} && chmod +x $DOWNLOADER && ./$DOWNLOADER --skip-download
    

    패키지는 /root/gdch/full-release-x.x.x-gdch.x 경로에서 압축이 해제됩니다.

  5. 버전이 VERSION에 설정한 버전과 일치하는지 확인합니다.

    /root/gdch/full-release-x.x.x-gdch.x/gdcloud version
    

    샘플 출력:

    gdcloud version: 1.14.4-gdch.0
    

인증

구성된 ID 공급업체로 인증하고 사용자 ID 및 클러스터의 kubeconfig 파일을 요청하려면 인증을 참고하세요.

  1. 로그인하여 kubeconfig 파일을 생성합니다.

  2. kubeconfig 파일을 환경 변수로 설정합니다.

      export KUBECONFIG=ROOT_ADMIN_KUBECONFIG
      export MANAGEMENT_KUBECONFIG=MANAGEMENT_API_KUBECONFIG
    
  3. 다음 역할을 요청합니다.

    • 어플라이언스 관리자 업그레이드:

      kubectl --kubeconfig=$KUBECONFIG create clusterrolebinding upgrade-admin-te-initial-user --role=upgrade-admin-te --user=keycloak-oidc-initial-user@example.com
      kubectl --kubeconfig=$MANAGEMENT_KUBECONFIG create clusterrolebinding upgrade-admin-te-initial-user --clusterrole=upgrade-admin-te --user=keycloak-oidc-initial-user@example.com
      
    • 시스템 아티팩트 관리 관리자:

       kubectl --kubeconfig=$KUBECONFIG create rolebinding system-artifact-management-admin-initial-user --role=system-artifact-management-admin --user=keycloak-oidc-initial-user@example.com -n gpc-system
       kubectl --kubeconfig=$MANAGEMENT_KUBECONFIG create rolebinding system-artifact-management-admin-initial-user --role=system-artifact-management-admin --user=keycloak-oidc-initial-user@example.com -n gpc-system
      
    • 시스템 아티팩트 관리 보안 비밀 관리자:

       kubectl --kubeconfig=$KUBECONFIG create rolebinding system-artifact-management-secrets-admin-initial-user --role=system-artifact-management-secrets-admin --user=keycloak-oidc-initial-user@example.com -n anthos-creds
      
    • DNS 서픽스 뷰어:

       kubectl --kubeconfig=$MANAGEMENT_KUBECONFIG create rolebinding dnssuffix-viewer-initial-user --role=dnssuffix-viewer --user=keycloak-oidc-initial-user@example.com -n gpc-system
      
    • 시스템 아티팩트 레지스트리 모니터:

       kubectl --kubeconfig=$KUBECONFIG create clusterrolebinding sar-monitor-initial-user --clusterrole=sar-monitor --user=keycloak-oidc-initial-user@example.com
       kubectl --kubeconfig=$MANAGEMENT_KUBECONFIG create clusterrolebinding sar-monitor-initial-user --clusterrole=sar-monitor --user=keycloak-oidc-initial-user@example.com
      
    • 디버거 업그레이드:

      kubectl --kubeconfig=$KUBECONFIG create clusterrolebinding upgrade-debugger-initial-user --clusterrole=upgrade-debugger --user=keycloak-oidc-initial-user@example.com
      
    • 시스템 Artifact Registry 디버거:

      kubectl --kubeconfig=$KUBECONFIG create clusterrolebinding sar-debugger-initial-user --clusterrole=sar-debugger --user=keycloak-oidc-initial-user@example.com
      
  4. Docker를 구성합니다.

    gdcloud auth configure-docker
    

업그레이드 시작

다음 단계에 따라 어플라이언스 업그레이드를 시작합니다.

gdcloud appliance upgrade 

자세한 내용은 gdcloud appliance upgrade를 참조하세요.

이 명령어는 다음 단계를 실행합니다.

  1. 업그레이드 머신에서 실행 전 검사를 실행합니다.
  2. OTS 저장소의 프리플라이트 검사를 실행합니다.
  3. 아티팩트를 아티팩트 레지스트리로 푸시합니다.
  4. 다음을 포함하여 어플라이언스 소프트웨어 및 펌웨어를 업그레이드합니다.
    1. GDC 루트 관리자 클러스터입니다.
    2. GDC 서비스
    3. 물리적 노드와 가상 노드의 운영체제 (OS)입니다.
    4. 스위치
    5. 스토리지

이 명령어는 순서대로 업데이트를 실행하고 각 단계가 완료될 때까지 기다립니다. 단계를 완료한 후 업그레이드가 성공하면 다음과 비슷한 메시지가 표시됩니다.

The GDC appliance upgrade completed successfully