組織のコンテナー レジストリーの使用
ArcGIS Enterprise on Kubernetes で組織のコンテナー レジストリーを使用する場合、新しいデプロイメント、アップデート、アップグレードの前に Esri コンテナー イメージを使用して準備する必要があります。 そのためには、ソフトウェアに付属するレジストリー ツールを使用して、組織のコンテナー レジストリーに Esri の Docker Hub イメージをプッシュします。
レジストリー ツールの概要
ArcGIS Enterprise on Kubernetes デプロイメント パッケージには、組織のコンテナー レジストリーにイメージを転送するための一連のツールが含まれます。
これらのツールは、デプロイメント パッケージを展開したディレクトリーの /setup/tools/registry-tools にあり、次のツールが含まれています:
image-download.sh- すべてのコンテナー イメージを、.tar.gzアーカイブとして指定のストレージ デバイスにダウンロードします。image-upload.sh- コンテナー イメージをストレージ デバイスからコンテナー レジストリーにアップロードします。image-transfer.sh- イメージを 2 つのレジストリー間で直接転送します。 クライアント ワークステーションが両方のレジストリーにアクセスできる場合、これを使用すると、image-download.shやimage-upload.shを使用するよりも高速になります。create-offline-manifest.sh- バージョン マニフェストをダウンロードし、組織にインポートすることで、アップデートとアップグレードにオフラインでアクセスできるようになります。registry-toolsフォルダーには、registry-tools.properties.templateファイルも含まれています。 このテンプレート ファイルは、image-download.sh、image-upload.sh、およびimage-transfer.shツールで使用できます。 プロパティ ファイルとレジストリー ツールの詳細については、このフォルダー内のReadme.mdファイルをご参照ください。
注意:
組織が Docker のユーザー名前空間再割り当てを使用している場合、レジストリー ツールを実行する前に、Docker 管理者に arcgis uid 117932853 を割り当ててもらってください。
クライアント コンピューターが Docker Hub と組織のコンテナー レジストリーにアクセスできる場合のレジストリーの準備
クライアント コンピューターが Docker Hub と組織のレジストリーにアクセスできる場合は、image-transfer.sh ツールを使用して、新しいデプロイメント、アップデート、アップグレード向けにレジストリーを準備できます。
次の手順を実行します。
My Esri から、デプロイするソフトウェア バージョンの ArcGIS Enterprise on Kubernetes を取得します。
デプロイメント スクリプトをダウンロードして、クライアント コンピューターに展開します。
アップグレードの準備を行うには、最新のイメージを取得する新しいバージョンのデプロイメント スクリプトをダウンロードします。
ターミナルを開き、ディレクトリーを
/setup/tools/registry-toolsディレクトリーに変更します。レジストリーにイメージ リポジトリーを事前に作成しておく必要がある場合、例として Amazon Elastic Container Registry (ECR) では、次のコマンドを実行して、必要なイメージ リポジトリーのリストを取得します。
./image-transfer.sh -l関連するバージョン情報を取得します。
- 新しいデプロイメント向けに準備する場合、デプロイするソフトウェア リリースの対応するバージョン タグを特定するには、リリース ノートを参照するか、次のコマンドを実行して、利用可能なイメージ タグを表示します。
./image-transfer.sh -sこれらのタグは、
DOWNLOAD_TAGSプロパティを指定するときに使用します。アップグレードまたはアップデート向けに準備する場合、組織の現在のバージョンを特定します。これはバージョンとビルドの組み合わせになります。 この情報を見つけるには、ArcGIS Enterprise Manager にサイン インして、概要 ページの下部までスクロールし、この組織について をクリックします。
たとえば、バージョンが 11.4.0 でビルドが 6144 の場合、
CURRENT_VERSIONは 11.4.0.6144 になります。
registry-toolsフォルダーにあるテンプレートを使用するか、別にプロパティ ファイルを作成して、これらのパラメーターを含めることができます:DOWNLOAD_REGISTRY="docker.io/esridocker" DOWNLOAD_USER="<username>" DOWNLOAD_PASS="<password>" CURRENT_VERSION="<current_version_tag>" DOWNLOAD_TAGS="<version_tag>" UPLOAD_REGISTRY="<registry_host>/<repository_prefix>" UPLOAD_USER="<username>" UPLOAD_PASS="<password>" UPLOAD_TAGS="<version_tag>" DOWNLOAD_DIR="</path/to/download/directory>" ENCRYPTION_KEYFILE="</path/to/keyfile.txt>"これらのいくつかのプロパティの詳細について、以下をご参照ください。
CURRENT_VERSION- ステップ 5 で特定された組織の現在のバージョン。アップデートとアップグレード向けに準備する場合に使用されます。 新しいデプロイメント向けに準備する場合、このプロパティはスキップされます。DOWNLOAD_TAGSとUPLOAD_TAGS- 新しいデプロイメントで使用されます。 アップデートまたはアップグレード向けに準備する場合、これらのプロパティはスキップされます。UPLOAD_REGISTRY- イメージのアップロード先のコンテナー レジストリー。 レジストリー ホストと、該当する場合は、レジストリーに関連付けられたリポジトリーの接頭辞を指定します。 レジストリー ホストは、コンテナー レジストリー ホストの完全修飾ドメイン名です。 リポジトリーの接頭辞は、コンテナー イメージの格納に使用されるイメージ リポジトリーです。ENCRYPTION_KEYFILE- 暗号化キーファイルは、パスワードの AES-256 暗号化および復号化に使用されるプレーン テキスト ファイルです。 このファイルのコンテンツは、指定したテキストで、パスワードを含めることはできません。 このファイルは固定の場所に残しておき、コンテンツを変更しないでください。例:
$ echo 'My Encryption Text!' >> </path/to/keyfile.txt>ワークフローに関連するコマンドを使用してスクリプトを実行します。
- 新しいデプロイメント向けの準備
./image-transfer.sh -f </path/to/properties/file>- アップデート向けの準備
./image-transfer.sh -f </path/to/properties/file> --update- アップグレード向けの準備
./image-transfer.sh -f </path/to/properties/file> --upgrade関連するフラグの詳細について、以下をご参照ください。
--update- 最新のアップデートを適用するために必要なコンテナー イメージを転送します。--upgrade- 最新リリースの ArcGIS Enterprise on Kubernetes にアップグレードするために必要なコンテナー イメージを転送します。--view---updateまたは--upgradeと共に使用して、累積されたイメージ リストをダウンロードせずに表示します。
このスクリプトは、複数のイメージをコンテナー レジストリーに転送するため、完了するまでに多少時間がかかります。 転送が中断された場合は、スクリプトを再実行してダウンロードを再開します。
ヒント:
image_transfer.shツールの完了後も、イメージはコンテナーのランタイム キャッシュ内に存在します。 ツールが正常に完了した後に領域を解放するためにも、Docker キャッシュ内で不要なアイテムをクリーンアップすることをおすすめします。 これを行うには、docker system pruneまたはdocker image rmを実行します。
インターネットに接続されていないレジストリーの準備
組織のレジストリーがインターネットに接続されていない場合は、image-download.sh および image-upload.sh ツールを使用して、新しいデプロイメント、アップデート、アップグレード向けにレジストリーを準備できます。
次の手順を実行します。
My Esri から、デプロイするソフトウェア バージョンの ArcGIS Enterprise on Kubernetes を取得します。
ダウンロード ツールを実行するクライアント コンピューターとアップロード ツールを実行するクライアント コンピューターにデプロイメント スクリプトをダウンロードして展開します。
同じバージョンのデプロイメント スクリプトを使用することをおすすめします。 アップグレードの準備を行うには、最新のイメージを取得する新しいバージョンのデプロイメント スクリプトをダウンロードします。
ダウンロード ツールを実行しているクライアント コンピューターでターミナルを開き、ディレクトリーを
/setup/tools/registry-toolsディレクトリーに変更します。レジストリーにイメージ リポジトリーを事前に作成しておく必要がある場合、例として Amazon Elastic Container Registry (ECR) では、次のコマンドを実行して、必要なイメージ リポジトリーのリストを取得します。
./image-download.sh -l関連するバージョン情報を取得します。
- 新しいデプロイメント向けに準備する場合、デプロイするソフトウェア リリースの対応するバージョン タグを特定するには、リリース ノートを参照するか、次のコマンドを実行して、利用可能なイメージ タグを表示します。
./image-download.sh -sこれらのタグは、
DOWNLOAD_TAGSプロパティを指定するときに使用します。アップグレードまたはアップデート向けに準備する場合、組織の現在のバージョンを特定します。これはバージョンとビルドの組み合わせになります。 この情報を見つけるには、ArcGIS Enterprise Manager にサイン インして、概要 ページの下部までスクロールし、この組織について をクリックします。
たとえば、バージョンが 11.4.0 でビルドが 6144 の場合、
CURRENT_VERSIONは 11.4.0.6144 になります。
新しいデプロイメント向けに準備する場合に、プロパティを使用していないときは、次のコマンドの書式を使用して
image-download.shツールを実行します:./image-download.sh -r docker.io/esridocker -u <username> -p <password> -d </path/to/download/directory> -t <version_tag>プロパティ ファイルを使用している場合は、
registry-toolsフォルダーにあるテンプレートを使用するか、別にプロパティ ファイルを作成して、これらのパラメーターを含めることができます:DOWNLOAD_REGISTRY="docker.io/esridocker" DOWNLOAD_USER="<username>" DOWNLOAD_PASS="<password>" CURRENT_VERSION="<current_version_tag>" DOWNLOAD_TAGS="<version_tag>" DOWNLOAD_DIR="</path/to/download/directory>" ENCRYPTION_KEYFILE="</path/to/keyfile.txt>"これらのいくつかのプロパティの詳細について、以下をご参照ください。
CURRENT_VERSION- ステップ 5 で特定された組織の現在のバージョン。アップデートとアップグレード向けに準備する場合に使用されます。 新しいデプロイメント向けに準備する場合、このプロパティはスキップされます。DOWNLOAD_TAGS- 新しいデプロイメントで使用されます。 アップデートまたはアップグレード向けに準備する場合、このプロパティはスキップされます。ENCRYPTION_KEYFILE- 暗号化キーファイルは、パスワードの AES-256 暗号化および復号化に使用されるプレーン テキスト ファイルです。 このファイルのコンテンツは、指定したテキストで、パスワードを含めることはできません。 このファイルは固定の場所に残しておき、コンテンツを変更しないでください。例:
$ echo 'My Encryption Text!' >> </path/to/keyfile.txt>ワークフローに関連するコマンドを使用してスクリプトを実行します。
- 新しいデプロイメント向けの準備
./image-download.sh -f </path/to/properties/file>- アップデート向けの準備
./image-download.sh -f </path/to/properties/file> --update- アップグレード向けの準備
./image-download.sh -f </path/to/properties/file> --upgrade関連するフラグの詳細について、以下をご参照ください。
--update- 最新のアップデートを適用するために必要なコンテナー イメージを転送します。--upgrade- 最新リリースの ArcGIS Enterprise on Kubernetes にアップグレードするために必要なコンテナー イメージを転送します。--view---updateまたは--upgradeと共に使用して、累積されたイメージ リストをダウンロードせずに表示します。
このスクリプトは、Esri リポジトリーから複数のイメージをダウンロードするため、完了するまでに多少時間がかかります。 ダウンロードが中断された場合は、スクリプトを再実行してダウンロードを再開します。
ヒント:
image_download.shツールの完了後も、イメージはコンテナーのランタイム キャッシュ内に存在します。 ツールが正常に完了した後に領域を解放するためにも、Docker キャッシュ内で不要なアイテムをクリーンアップすることをおすすめします。 これを行うには、docker system pruneまたはdocker image rmを実行します。
接続解除されたクライアント コンピューターにイメージを移動するための組織のプロセスに従います。
このコンピューターは、プライベート レジストリーにアクセスできる必要があります。
コンテナー レジストリーにアクセスできるクライアント コンピューターでターミナルを開き、ディレクトリーを
/setup/tools/registry-toolsディレクトリーに変更します。プロパティ ファイルを使用していない場合は、次のコマンドの書式を使用して
image-upload.shツールを実行します:./image-upload.sh -r <registry_host>/<repository_prefix> -u <username> -p <password> -d </path/to/download/directory> -t <version_tag>プロパティ ファイルを使用している場合は、
registry-toolsフォルダーにあるテンプレートを使用するか、別にプロパティ ファイルを作成して、これらのパラメーターを含めることができます:UPLOAD_REGISTRY="<registry_host>/<repository_prefix>" UPLOAD_USER="<username>" UPLOAD_PASS="<password>" UPLOAD_TAGS="<version_tag>" DOWNLOAD_DIR="</path/to/download/directory>" ENCRYPTION_KEYFILE="</path/to/keyfile.txt>"これらのいくつかのプロパティの詳細について、以下をご参照ください。
UPLOAD_REGISTRY- イメージのアップロード先のコンテナー レジストリー。 レジストリー ホストと、該当する場合は、レジストリーに関連付けられたリポジトリーの接頭辞を指定します。 レジストリー ホストは、コンテナー レジストリー ホストの完全修飾ドメイン名です。 リポジトリーの接頭辞は、コンテナー イメージの格納に使用されるイメージ リポジトリーです。 アップデートまたはアップグレード向けに準備する場合は、コピーされたイメージ アーカイブのディレクトリーを必ず指定してください。UPLOAD_TAGS- 新しいデプロイメントを準備する場合に使用されます。 アップデートまたはアップグレード向けに準備する場合、このプロパティはスキップされます。
ワークフローに関連するコマンドを使用してスクリプトを実行します。
- 新しいデプロイメント向けの準備
./image-upload.sh -f </path/to/properties/file>- アップデートまたはアップグレード向けの準備
./image-upload.sh -f </path/to/properties/file> -t all-tオプションにallを指定すると、--updateまたは--upgradeフラグを使用して前にダウンロードしたすべてのイメージがアップロードされます。スクリプトによってすべてのタグ付きイメージがコンテナー レジストリーにアップロードされるため、完了するまで多少時間がかかります。 アップロードが中断された場合は、スクリプトを再実行してアップロードを再開します。
注意:
image-upload.shツールの完了後も、イメージはコンテナーのランタイム キャッシュ内に存在します。 ツールが正常に完了した後に領域を解放するためにも、Docker キャッシュ内で不要なアイテムをクリーンアップすることをおすすめします。 これを行うには、docker system pruneまたはdocker image rmを実行します。