시스템 아티팩트 수정

이 페이지에서는 Google Distributed Cloud (GDC) 오프라인 어플라이언스에서 시스템 아티팩트를 수정하는 방법을 설명합니다.

GDC에서 시스템 아티팩트를 수정하여 배포를 관리하고 개선합니다.

시작하기 전에

시스템 아티팩트를 수정하려면 진단 액세스 권한을 얻고 필요한 ID 및 액세스 역할에 대한 액세스 권한이 있어야 합니다.

  • 진단 액세스는 고객이 문제를 겪을 때 안전하게 지원하는 데 필요한 권한 액세스 모드입니다. 이 액세스 권한을 부여받으려면 티켓을 만들어야 합니다.
  • 시스템 아티팩트 레지스트리 디버거: 모든 Harbor 리소스에 대한 읽기 및 쓰기 액세스 권한이 있습니다. 보안 관리자에게 시스템 아티팩트 레지스트리 디버거 (sar-debugger) 클러스터 역할을 부여해 달라고 요청합니다.
  • 시스템 Artifact Registry harbor-system 보안 비밀 디버거: harbor-system 네임스페이스에 디버거 액세스 권한이 있습니다. 보안 관리자에게 시스템 아티팩트 레지스트리 harbor-system 보안 비밀 디버거 (sar-harbor-system-secret-debugger) 역할을 부여해 달라고 요청합니다.

Docker 이미지 업로드

시스템 아티팩트를 수정하려면 새 Docker 이미지를 업로드해야 합니다. 업로드 방법은 컨테이너 이미지를 푸시하는 다음 두 레지스트리 중 하나에 따라 달라집니다.

다음 섹션에서는 두 레지스트리 유형의 업로드 안내를 보여줍니다.

부트스트랩 머신에 컨테이너 이미지 업로드

부트스트랩 머신의 Artifact Registry에 컨테이너 이미지를 업로드하려면 다음 단계를 완료하세요.

  1. 호환성 문제가 해결된 수정된 Docker 이미지가 있는지 확인합니다.

  2. 새 이미지를 GDC 환경의 부트스트랩 노드로 전송합니다.

  3. 부트스트랩 노드에 로그인합니다.

  4. 부트스트랩 시간에 부트스트랩 머신에서 Artifact Registry의 주소를 찾아 REGISTRY_IP 환경 변수로 설정합니다.

    REGISTRY=$(kubectl get harborcluster harbor -n harbor-system -o=jsonpath='{.spec.externalURL}')
    
    REGISTRY_IP=${REGISTRY#https://}
    
  5. Artifact Registry에 액세스하기 위한 사용자 인증 정보를 가져옵니다. 관리자 계정과 비밀번호를 가져옵니다.

    ADMIN_PASS=$(kubectl -n harbor-system get secret harbor-admin \
        -o jsonpath="{.data.secret}" | base64 -d)
    
  6. Artifact Registry에 로그인합니다.

    docker login $REGISTRY_IP -u admin -p $ADMIN_PASS
    

    Artifact Registry에 성공적으로 로그인했는지 확인하기 위해 Login Succeeded 메시지가 출력됩니다.

  7. 새 이미지에 태그를 지정합니다.

    docker image tag CONTAINER_IMAGE_URL \
        $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG
    

    다음을 바꿉니다.

    • CONTAINER_IMAGE_URL: 로컬 컨테이너 이미지 URL입니다(예: gcr.io/repository/image:tag).
    • PROJECT_NAME: Artifact Registry 프로젝트 이름입니다.
    • IMAGE_NAME: 컨테이너 이미지 이름입니다.
    • TAG: 컨테이너 이미지 태그입니다.
  8. 새 이미지를 Artifact Registry에 푸시합니다.

    docker image push $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG
    

조직 인프라 클러스터에 컨테이너 이미지 업로드

조직 인프라 클러스터의 Artifact Registry에 컨테이너 이미지를 업로드하려면 다음 단계를 완료하세요.

  1. 호환성 문제가 해결된 수정된 Docker 이미지가 있는지 확인합니다.

  2. 에어갭 환경에서 루트 액세스 권한이 있고 루트 kubeconfig 파일이 있는 노드로 새 이미지를 조직 인프라 클러스터에 전송합니다.

  3. 조직 인프라 클러스터 kubeconfig 경로를 환경 변수로 내보냅니다.

    export ORG_INFRA_KUBECONFIG=KUBECONFIG_FILE_PATH
    

    KUBECONFIG_FILE_PATHkubeconfig 파일의 경로로 바꿉니다.

  4. 클러스터 내 Artifact Registry 주소를 찾아 REGISTRY_IP 환경 변수로 설정합니다.

    REGISTRY=$(kubectl --kubeconfig $ORG_INFRA_KUBECONFIG get harborcluster /
    harbor -n harbor-system -o=jsonpath='{.spec.externalURL}')
    
    REGISTRY_IP=${REGISTRY#https://}
    
  5. REGISTRY_IP10.200.0.36:10443과 같은 유효한 URL이 포함되어 있는지 확인합니다.

    echo ${REGISTRY_IP}
    
  6. 인증 기관 (CA) 인증서가 있는지 확인합니다.

    ls -al /etc/docker/certs.d/${REGISTRY_IP}/ca.crt
    

    인증서가 없는 경우 인증서를 만들고 구성합니다.

    mkdir -p /etc/docker/certs.d/${REGISTRY_IP}/
    
    chmod 755  /etc/docker/certs.d/${REGISTRY_IP}/
    
    echo $(kubectl get secret harbor-cert-secret -n istio-system -o jsonpath='{.data.ca\.crt}' --kubeconfig $ORG_INFRA_KUBECONFIG) | openssl base64 -A -d >  /etc/docker/certs.d/${REGISTRY_IP}/ca.crt
    
    chmod 755 /etc/docker/certs.d/${REGISTRY_IP}/ca.crt
    
  7. Artifact Registry에 액세스하기 위한 사용자 인증 정보를 가져옵니다. 다음 명령어를 사용하여 관리자 계정과 비밀번호를 가져옵니다.

    ADMIN_PASS=$(kubectl --kubeconfig $ORG_INFRA_KUBECONFIG \
        -n harbor-system get secret harbor-admin \
        -o jsonpath="{.data.secret}" | base64 -d)
    
  8. Artifact Registry에 로그인합니다.

    docker login $REGISTRY_IP -u admin -p $ADMIN_PASS
    

    Artifact Registry에 성공적으로 로그인했는지 확인하기 위해 Login Succeeded 메시지가 출력됩니다.

  9. 새 이미지에 태그를 지정합니다.

    docker image tag CONTAINER_IMAGE_URL \
        $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG
    

    다음을 바꿉니다.

    • CONTAINER_IMAGE_URL: 로컬 컨테이너 이미지 URL입니다(예: gcr.io/repository/image:tag).
    • PROJECT_NAME: Artifact Registry 프로젝트 이름입니다.
    • IMAGE_NAME: 컨테이너 이미지 이름입니다.
    • TAG: 컨테이너 이미지 태그입니다.
  10. 새 이미지를 Artifact Registry에 푸시합니다.

    docker image push $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG
    

시스템 아티팩트 수정

gdcloud artifacts 명령어를 사용하여 GDC에서 시스템 아티팩트를 수정합니다. 소프트웨어 패키지 교체, 구성 조정, 패치 적용과 같은 작업을 실행하여 배포를 업데이트, 맞춤설정, 보호합니다.

다음 작업을 실행합니다.

  • apt 패키지를 관리합니다.
  • OCI 패키지에서 이미지를 빌드하고 추출합니다.
  • 사용 가능한 루트 OCI 이미지 버전을 나열합니다.
  • 기존 패키지를 패치합니다.
  • 레지스트리에서 OCI 패키지를 가져오거나 레지스트리로 OCI 패키지를 푸시합니다.
  • OCI 번들의 구조를 표시합니다.
  • OCI 번들의 압축을 풉니다.

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