このページでは、Google Distributed Cloud(GDC)エアギャップ アプライアンスでシステム アーティファクトを変更する方法について説明します。
GDC でシステム アーティファクトを変更して、デプロイを管理および調整します。
始める前に
システム アーティファクトを変更するには、診断アクセス権を取得し、必要な ID とアクセスロールへのアクセス権が必要です。
- 診断アクセスは、お客様が問題に遭遇したときに安全にサポートするために必要な特権アクセス モードです。このアクセス権を付与するには、チケットを作成する必要があります。
- システム Artifact Registry デバッガ: すべての Harbor リソースに対する読み取り / 書き込みアクセス権があります。セキュリティ管理者に、システム アーティファクト レジストリ デバッガ(sar-debugger)クラスタロールを付与するよう依頼します。
- システム Artifact Registry harbor-system シークレット Debugger: harbor-systemNamespace でデバッガ アクセス権を持っています。セキュリティ管理者に、システム アーティファクト レジストリ harbor-system シークレット デバッガ(sar-harbor-system-secret-debugger)ロールを付与するよう依頼します。
Docker イメージをアップロードする
システム アーティファクトを変更するには、新しい Docker イメージをアップロードする必要があります。アップロード方法は、コンテナ イメージを push する次の 2 つのレジストリのどちらかによって異なります。
- コンテナ イメージをブートストラップ マシンの Artifact Registry にアップロードします。
- コンテナ イメージを組織インフラストラクチャ クラスタの Artifact Registry にアップロードします。
以降のセクションでは、2 つのレジストリ タイプのアップロード手順を示します。
ブートストラップ マシンにコンテナ イメージをアップロードする
ブートストラップ マシンでコンテナ イメージを Artifact Registry にアップロードするには、次の操作を行います。
- 重大な問題が修正された変更済みの Docker イメージがあることを確認します。 
- 新しいイメージを GDC 環境のブートストラップ ノードに転送します。 
- ブートストラップ ノードにログインします。 
- ブートストラップ時にブートストラップ マシンで Artifact Registry のアドレスを見つけて、 - REGISTRY_IP環境変数として設定します。- REGISTRY=$(kubectl get harborcluster harbor -n harbor-system -o=jsonpath='{.spec.externalURL}') REGISTRY_IP=${REGISTRY#https://}
- Artifact Registry にアクセスするための認証情報を取得します。管理者アカウントとパスワードを取得します。 - ADMIN_PASS=$(kubectl -n harbor-system get secret harbor-admin \ -o jsonpath="{.data.secret}" | base64 -d)
- Artifact Registry にログインします。 - docker login $REGISTRY_IP -u admin -p $ADMIN_PASS- Artifact Registry へのログインが成功したことを確認する - Login Succeededメッセージが出力されます。
- 新しいイメージにタグを付けます。 - 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: コンテナ イメージタグ。
 
- 新しいイメージを Artifact Registry に push します。 - docker image push $REGISTRY_IP/PROJECT_NAME/IMAGE_NAME:TAG
コンテナ イメージを組織のインフラストラクチャ クラスタにアップロードする
org インフラストラクチャ クラスタの Artifact Registry にコンテナ イメージをアップロードする手順は次のとおりです。
- 重大な問題が修正された変更済みの Docker イメージがあることを確認します。 
- 新しいイメージを、ルート - kubeconfigファイルを使用してルートアクセス権を持つノードに転送し、エアギャップ環境の組織インフラストラクチャ クラスタに転送します。
- 組織インフラストラクチャ クラスタ - kubeconfigパスを環境変数としてエクスポートします。- export ORG_INFRA_KUBECONFIG=KUBECONFIG_FILE_PATH- KUBECONFIG_FILE_PATHは、- kubeconfigファイルのパスに置き換えます。
- クラスタ内の Artifact Registry アドレスを見つけて、 - REGISTRY_IP環境変数として設定します。- REGISTRY=$(kubectl --kubeconfig $ORG_INFRA_KUBECONFIG get harborcluster / harbor -n harbor-system -o=jsonpath='{.spec.externalURL}') REGISTRY_IP=${REGISTRY#https://}
- REGISTRY_IPに- 10.200.0.36:10443などの有効な URL が含まれていることを確認します。- echo ${REGISTRY_IP}
- 認証局(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
- Artifact Registry にアクセスするための認証情報を取得します。次のコマンドを使用して、管理者アカウントとパスワードを取得します。 - ADMIN_PASS=$(kubectl --kubeconfig $ORG_INFRA_KUBECONFIG \ -n harbor-system get secret harbor-admin \ -o jsonpath="{.data.secret}" | base64 -d)
- Artifact Registry にログインします。 - docker login $REGISTRY_IP -u admin -p $ADMIN_PASS- Artifact Registry へのログインが成功したことを確認する - Login Succeededメッセージが出力されます。
- 新しいイメージにタグを付けます。 - 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: コンテナ イメージタグ。
 
- 新しいイメージを 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 をご覧ください。