システム アーティファクトを変更する

このページでは、Google Distributed Cloud(GDC)エアギャップ アプライアンスでシステム アーティファクトを変更する方法について説明します。

GDC でシステム アーティファクトを変更して、デプロイを管理および調整します。

始める前に

システム アーティファクトを変更するには、診断アクセス権を取得し、必要な ID とアクセスロールへのアクセス権が必要です。

  • 診断アクセスは、お客様が問題に遭遇したときに安全にサポートするために必要な特権アクセス モードです。このアクセス権を付与するには、チケットを作成する必要があります。
  • システム Artifact Registry デバッガ: すべての Harbor リソースに対する読み取り / 書き込みアクセス権があります。セキュリティ管理者に、システム アーティファクト レジストリ デバッガ(sar-debugger)クラスタロールを付与するよう依頼します。
  • システム Artifact Registry harbor-system シークレット Debugger: harbor-system Namespace でデバッガ アクセス権を持っています。セキュリティ管理者に、システム アーティファクト レジストリ harbor-system シークレット デバッガ(sar-harbor-system-secret-debugger)ロールを付与するよう依頼します。

Docker イメージをアップロードする

システム アーティファクトを変更するには、新しい Docker イメージをアップロードする必要があります。アップロード方法は、コンテナ イメージを push する次の 2 つのレジストリのどちらかによって異なります。

以降のセクションでは、2 つのレジストリ タイプのアップロード手順を示します。

ブートストラップ マシンにコンテナ イメージをアップロードする

ブートストラップ マシンでコンテナ イメージを 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 に push します。

    docker image push $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG
    

コンテナ イメージを組織のインフラストラクチャ クラスタにアップロードする

org インフラストラクチャ クラスタの Artifact Registry にコンテナ イメージをアップロードする手順は次のとおりです。

  1. 重大な問題が修正された変更済みの Docker イメージがあることを確認します。

  2. 新しいイメージを、ルート kubeconfig ファイルを使用してルートアクセス権を持つノードに転送し、エアギャップ環境の組織インフラストラクチャ クラスタに転送します。

  3. 組織インフラストラクチャ クラスタ kubeconfig パスを環境変数としてエクスポートします。

    export ORG_INFRA_KUBECONFIG=KUBECONFIG_FILE_PATH
    

    KUBECONFIG_FILE_PATH は、kubeconfig ファイルのパスに置き換えます。

  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 に push します。

    docker image push $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG
    

システム アーティファクトを変更する

gdcloud artifacts コマンドを使用して、GDC のシステム アーティファクトを変更します。ソフトウェア パッケージの置き換え、構成の調整、パッチの適用などのアクションを実行して、デプロイを更新、カスタマイズ、保護します。

次の操作を行います。

  • apt パッケージを管理します。
  • OCI パッケージからイメージをビルドして抽出します。
  • 利用可能なルート OCI イメージのバージョンを一覧表示します。
  • 既存のパッケージにパッチを適用します。
  • レジストリとの間で OCI パッケージを pull および push します。
  • OCI バンドルの構造を表示します。
  • OCI バンドルを解凍します。

詳細については、gdcloud artifacts をご覧ください。