Sync container images to your registry#

Hybrid Managerソフトウェアスタックは、EDB Repos 2.0レジストリを介して配布されます。 Hybrid Managerをインストールまたはアップグレードする前に、これらのコンテナイメージを独自の安全で承認された内部レジストリに同期する必要があります。

なぜ画像を同期するのですか?#

同期プロセスにより、次のことが保証されます。

  • セキュリティ イメージは組織の承認されたレジストリでホストされています

  • 不変性 SHA256ダイジェストは環境全体で保存されます

  • コンプライアンス コンテナイメージの保存場所を制御します

  • 可用性 外部レジストリが利用できない場合でも、イメージはアクセス可能なままです

前提条件#

画像を同期する前に、次のことを確認します。

  • インストールするHybrid Managerのバージョン

  • 読み取り権限を持つEDB Repos 2.0アクセストークン

  • プッシュ権限による宛先コンテナレジストリへのアクセス

  • システムにインストールされているedbctl またはskopeo

オプション1edbctlの使用推奨#

edbctl は、ハイブリッドマネージャーリソースを管理するためのCLIツールで、イメージを同期する最も簡単な方法を提供します。

edbctlのインストール#

edbctl を使用する前に、システムにインストールする必要があります。 CLIツールのインストールと構成の詳細な手順については、 edbctl installation guide を参照してください。

プラットフォームイメージの同期#

必要な環境変数を構成し、 syncコマンドを実行します。

#  Configure the HM release version

export HM_RELEASE=<RELEASE_VERSION>

#  Configure the EDB Repos 2.0 access token

export EDB_TOKEN=<EDB_TOKEN>

#  Configure the EDB Repos 2.0 registry source

export EDB_SOURCE_REGISTRY=pgai-platform

#  Run the sync-to-local-registry command

edbctl image sync-to-local-registry \
    --destination-registry-uri "<LOCAL_REGISTRY_URI>" \
    --version "${HM_RELEASE}" \
    --source-registry-username "${EDB_SOURCE_REGISTRY}" \
    --source-registry-password "${EDB_TOKEN}" \
    --destination-registry-username "<LOCAL_REGISTRY_USER>" \
    --destination-registry-password "<LOCAL_REGISTRY_PWD>"

プレースホルダーを置き換えます。

  • <RELEASE_VERSION> HMバージョン例 v1.3.4

  • <EDB_TOKEN> EDB Repos 2.0アクセストークン

  • <LOCAL_REGISTRY_URI> 宛先レジストリURI

  • <LOCAL_REGISTRY_USER> 宛先レジストリのユーザー名

  • <LOCAL_REGISTRY_PWD> 宛先レジストリのパスワード

オペレーター画像を同期する#

#  Sync the HM Operator image

edbctl operator sync-to-local-registry \
    --destination-registry-uri "<LOCAL_REGISTRY_URI>" \
    --version "${HM_RELEASE}" \
    --source-registry-username "${EDB_SOURCE_REGISTRY}" \
    --source-registry-password "${EDB_TOKEN}" \
    --destination-registry-username "<LOCAL_REGISTRY_USER>" \
    --destination-registry-password "<LOCAL_REGISTRY_PWD>"

オプション2skopeoを使用する#

Skopeo は、コンテナイメージを操作するためのオープンソースツールです。 edbctl を使用したくない場合は、それを使用して画像を同期できます。

skopeoのインストール#

ご使用のオペレーティングシステムの official skopeo installation instructions に従ってください。

画像リストをダウンロードする#

Hybrid Managerの各リリースは、必要なすべてのコンテナイメージのリストを含むアーティファクトを提供します。

#  Configure the HM release version

export HM_RELEASE=<RELEASE_VERSION>

#  Configure the EDB Repos 2.0 access token

export EDB_TOKEN=<EDB_TOKEN>

#  Download the image list artifact

curl -sLO "https://downloads.enterprisedb.com/${EDB_TOKEN}/pgai-platform/raw/names/${HM_RELEASE}-images.txt/versions/${HM_RELEASE}/images.txt"

レジストリへの認証#

#  Configure registries

export EDB_SOURCE_REGISTRY=docker.enterprisedb.com/pgai-platform
export LOCAL_REGISTRY_URI=<LOCAL_REGISTRY_ADDRESS>

#  Login to EDB Repos 2.0 source registry

skopeo login docker.enterprisedb.com

#  Login to destination registry

skopeo login <LOCAL_REGISTRY_ADDRESS>

すべての画像を同期する#

#  Parse the image list and sync each image

while read -r image; do
  skopeo --override-os linux copy \
    --multi-arch all \
    docker://$EDB_SOURCE_REGISTRY/${image/:*@/@} \
    docker://$LOCAL_REGISTRY_URI/${image/:*@/@} \
    --retry-times 3
done < images.txt

オペレーター画像を同期する#

#  Sync the HM Operator image

skopeo --override-os linux copy \
    --multi-arch all \
    docker://${EDB_SOURCE_REGISTRY}/edb-hcp-operator/manager:${HM_RELEASE} \
    docker://${LOCAL_REGISTRY_URI}/edb-hcp-operator/manager:${HM_RELEASE} \
    --retry-times 3

!!!note ネットワーク速度とリリース内のイメージの数によっては、同期プロセスが完了するまでに数分かかります。

プラットフォーム固有の注意事項#

AWS ECR#

ECRは、名前に複数のスラッシュを含むイメージを同じリポジトリに保存することをサポートしていないため、宛先レジストリとしてAWS ECRを使用する場合、イメージごとに別個のリポジトリを作成する必要があります。

edbctl でsyncコマンドを実行すると、ECRを検出して確認を求め、AWS CLIコマンドのコードスニペットを提供して、必要なすべてのリポジトリを事前に作成します。

認証には、次を使用します。

- -destination-registry-username "AWS" \
- -destination-registry-password "$(aws ecr get-login-password --region ${AWS_REGION})"

詳細は、 AWS ECR documentation を参照してください。

GCPアーティファクトレジストリ#

GCP Artifact Registry認証の場合、次を使用します。

- -destination-registry-username "_json_key" \
- -destination-registry-password "$(cat ~/gcp-service-account-key.json)"

Red Hat Quay / OpenShift#

標準のユーザー名とパスワード、またはトークン認証がサポートされています。 OpenShift内部レジストリの場合、適切なサービスアカウントトークンが構成されていることを確認します。

次のステップ#

コンテナイメージをプライベートレジストリに同期した後

  1. レジストリをポイントするようにHelmチャート values.yaml を更新します。

containerRegistryURL: "<your-local-container-registry-url>"
  1. ご使用のプラットフォームのハイブリッドマネージャーのインストールを続行します。- Installation phase of Hybrid Manager on Rancher RKE2