組織のコンテナー レジストリの使用

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.shimage-upload.sh を使用するよりも高速になります。
  • create-offline-manifest.sh - バージョン マニフェストをダウンロードし、組織にインポートすることで、アップデートとアップグレードにオフラインでアクセスできるようになります。

registry-tools フォルダーには、registry-tools.properties.template ファイルも含まれています。 このテンプレート ファイルは、image-download.shimage-upload.sh、および image-transfer.sh ツールで使用できます。 プロパティ ファイルとレジストリ ツールの詳細については、このフォルダー内の Readme.md ファイルをご参照ください。

クライアント コンピューターが Docker Hub と組織のレジストリにアクセスできる場合のレジストリの準備

クライアント コンピューターが Docker Hub と組織のレジストリにアクセスできる場合は、image-transfer.sh ツールを使用して、新しいデプロイメント、アップデート、アップグレード向けにレジストリを準備できます。

レジストリを準備するには、次の手順に従います。

  1. My Esri から、デプロイするソフトウェア バージョンの ArcGIS Enterprise on Kubernetes を取得します。
  2. デプロイメント スクリプトをダウンロードして、クライアント コンピューターに展開します。

    アップグレードの準備を行うには、最新のイメージを取得する新しいバージョンのデプロイメント スクリプトをダウンロードします。

  3. ターミナルを開き、ディレクトリを setup/tools/registry-tools ディレクトリに変更します。
  4. レジストリにイメージ リポジトリを事前に作成しておく必要がある場合、例として Amazon Elastic Container Registry (ECR) では、次のコマンドを実行して、必要なイメージ リポジトリのリストを取得します。
    /setup/tools/registry-tools/image-transfer.sh -l
    
  5. デプロイするソフトウェア リリースの対応するバージョン タグを特定するには、リリース ノートを参照するか、次のコマンドを実行して、利用可能なイメージ タグを表示します。

    /setup/tools/registry-tools/image-transfer.sh -s
    

  6. registry-tools フォルダーにあるテンプレートを使用するか、別にプロパティ ファイルを作成して、これらのパラメーターを含めることができます。
    DOWNLOAD_REGISTRY="docker.io/esridocker"
    DOWNLOAD_USER="<username>"
    DOWNLOAD_PASS="<password>"
    CURRENT_VERSION="<current_version_tag>"
    DOWNLOAD_TAG="<version_tag>"
    UPLOAD_REGISTRY="<registry_host>/<organization>"
    UPLOAD_USER="<username>"
    UPLOAD_PASS="<password>"
    UPLOAD_TAG"="<version_tag>"
    DOWNLOAD_DIR="</path/to/download/directory>"
    ENCRYPTION_KEYFILE"</path/to/keyfile.txt>"
    

    暗号化キーファイルは、パスワードの AES-256 暗号化および復号化に使用されるプレーン テキスト ファイルです。 このファイルのコンテンツは、指定したテキストで、パスワードを含めることはできません。 このファイルは固定の場所に残しておき、コンテンツを変更しないでください。 例:

    $ echo 'My Encryption Text!' >> /path/to/keyfile.txt
    
  7. 次のコマンドを使用してスクリプトを実行します。
    ./image-transfer.sh -f </properties/file/path>
    

    スクリプトによってすべてのタグ付きイメージがコンテナー レジストリに転送されるため、完了するまで多少時間がかかります。 転送が中断された場合は、スクリプトを再実行してダウンロードを再開します。

    ヒント:

    image_transfer.sh ツールの完了後も、イメージはコンテナーのランタイム キャッシュ内に存在します。 ツールが正常に完了した後に領域を解放するためにも、Docker キャッシュ内で不要なアイテムをクリーンナップすることをおすすめします。 これを行うには、docker system prune または docker image rm を実行します。

組織のレジストリがインターネットに接続されていない場合のレジストリの準備

組織のレジストリがインターネットに接続されていない場合は、image-download.sh および image-upload.sh ツールを使用して、新しいデプロイメント、アップデート、アップグレード向けにレジストリを準備できます。

レジストリを準備するには、次の手順に従います。

  1. My Esri から、デプロイするソフトウェア バージョンの ArcGIS Enterprise on Kubernetes を取得します。
  2. ダウンロード ツールを実行するクライアント コンピューターとアップロード ツールを実行するクライアント コンピューターにデプロイメント スクリプトをダウンロードして展開します。

    同じバージョンのデプロイメント スクリプトを使用することをおすすめします。 アップグレードの準備を行うには、最新のイメージを取得する新しいバージョンのデプロイメント スクリプトをダウンロードします。

  3. ダウンロード ツールを実行しているクライアント コンピューターでターミナルを開き、ディレクトリを setup/tools/registry-tools ディレクトリに変更します。
  4. レジストリにイメージ リポジトリを事前に作成しておく必要がある場合、例として Amazon Elastic Container Registry (ECR) では、次のコマンドを実行して、必要なイメージ リポジトリのリストを取得します。
    /setup/tools/registry-tools/image-download.sh -l
    
  5. デプロイするソフトウェア リリースの対応するバージョン タグを特定するには、リリース ノートを参照するか、次のコマンドを実行して、利用可能なイメージ タグを表示します。

    /setup/tools/registry-tools/image-download.sh -s
    

  6. プロパティ ファイルを使用していない場合は、次のコマンドの書式を使用して image-download.sh ツールを実行します。
    ./image-download.sh -r docker.io/esridocker -u <username> -p <password> -d </path/to/download/directory> -t <version_tag>
    
  7. プロパティ ファイルを使用している場合は、registry-tools フォルダーにあるテンプレートを使用するか、別にプロパティ ファイルを作成して、これらのパラメーターを含めることができます。
    DOWNLOAD_REGISTRY="<docker.io/esridocker>"
    DOWNLOAD_USER="<username>"
    DOWNLOAD_PASS="<password>"
    DOWNLOAD_TAG="<version_tag>"
    DOWNLOAD_DIR="</path/to/download/directory>"
    ENCRYPTION_KEYFILE="</path/to/keyfile.txt>"
    

    暗号化キーファイルは、パスワードの AES-256 暗号化および復号化に使用されるプレーン テキスト ファイルです。 このファイルのコンテンツは、指定したテキストで、パスワードを含めることはできません。 このファイルは固定の場所に残しておき、コンテンツを変更しないでください。 例:

    $ echo 'My Encryption Text!' >> /path/to/keyfile.txt
    

    1. 次のコマンドを使用してスクリプトを実行します。
      ./image-download.sh -f </properties/file/path>
      

      スクリプトによって Esri リポジトリからすべてのタグ付きイメージがダウンロードされるため、完了するまで多少時間がかかります。 ダウンロードが中断された場合は、スクリプトを再実行してダウンロードを再開します。

      ヒント:

      image_download.sh ツールの完了後も、イメージはコンテナーのランタイム キャッシュ内に存在します。 ツールが正常に完了した後に領域を解放するためにも、Docker キャッシュ内で不要なアイテムをクリーンナップすることをおすすめします。 これを行うには、docker system prune または docker image rm を実行します。

  8. 接続解除されたクライアント コンピューターにイメージを移動するための組織のプロセスに従います。

    このコンピューターは、プライベート レジストリにアクセスできる必要があります。

  9. コンテナー レジストリにアクセスできるクライアント コンピューターでターミナルを開き、ディレクトリを setup/tools/registry-tools ディレクトリに変更します。
  10. プロパティ ファイルを使用していない場合は、次のコマンドの書式を使用して image-upload.sh ツールを実行します。
    ./image-upload.sh -r <registry_host>/<organization> -u <username> -p <password> -d </path/to/download/directory> -t <version_tag>
    
  11. プロパティ ファイルを使用している場合は、registry-tools フォルダーにあるテンプレートを使用するか、別にプロパティ ファイルを作成して、これらのパラメーターを含めることができます。
    UPLOAD_REGISTRY="<registry_host>/<organization>"
    UPLOAD_USER="<username>"
    UPLOAD_PASS="<password>"
    UPLOAD_TAG="<version_tag>"
    DOWNLOAD_DIR="</path/to/download/directory>"
    ENCRYPTION_KEYFILE="</path/to/keyfile.txt>"
    
    1. 次のコマンドを使用してスクリプトを実行します。
      ./image-upload.sh -f <properties file path>
      

      スクリプトによってすべてのタグ付きイメージがコンテナー レジストリにアップロードされるため、完了するまで多少時間がかかります。 アップロードが中断された場合は、スクリプトを再実行してアップロードを再開します。

      注意:

      image-upload.sh ツールの完了後も、イメージはコンテナーのランタイム キャッシュ内に存在します。 ツールが正常に完了した後に領域を解放するためにも、Docker キャッシュ内で不要なアイテムをクリーンナップすることをおすすめします。 これを行うには、docker system prune または docker image rm を実行します。

アップデートまたはアップグレードのためのレジストリの準備

最新のアップデートを適用する前、または組織をアップグレードする前にレジストリを準備する場合は、プロパティ ファイルを使用して CURRENT_VERSION プロパティを設定し、必要なイメージのみをレジストリ ツールがダウンロードまたは転送するようにします。 上記のいずれかのセクションでステップ 1 ~ 4 を完了し、プロパティ ファイルを設定したら、次の手順を実行します。

  1. 管理 API にサイン インしてバージョンとビルドを組み合わせることで、組織の現在のバージョンを特定します。

    たとえば、バージョンが 11.4.0 でビルドが 6144 の場合、CURRENT_VERSION は 11.4.0.6144 になります。

  2. プロパティ ファイルの CURRENT_VERSION プロパティを設定します。
  3. 最新のアップデートを適用する準備をしている場合は、image-transfer.sh または image-download.sh ツールを実行します。
    1. クライアント ワークステーションが Docker Hub とターゲット組織レジストリの両方に直接アクセスできる場合は、次の形式でコマンドを実行します。
      ./image-transfer.sh -f <properties_file> --update
      
    2. クライアント ワークステーションが Docker Hub にはアクセスできるものの、ターゲット組織レジストリにはアクセスできない場合は、次の形式でコマンドを実行します。
      ./image-download.sh -f <properties_file> --update
      
  4. 組織を次のリリース バージョンにアップグレードする準備をしている場合は、image-transfer.sh または image-download.sh ツールを実行します。
    1. クライアント ワークステーションが Docker Hub とターゲット組織レジストリの両方に直接アクセスできる場合は、次の形式でコマンドを実行します。
      ./image-transfer.sh -f <properties_file> --upgrade
      
    2. クライアント ワークステーションが Docker Hub にはアクセスできるものの、ターゲット組織レジストリにはアクセスできない場合は、次の形式でコマンドを実行します。
      ./image-download.sh -f <properties_file> --upgrade
      
  5. 注意:
    image-download.sh ツールを使用した場合は、組織レジストリにアクセスできるクライアント ワークステーションにイメージを転送し、コピーしたイメージ アーカイブのディレクトリを指定して image-upload.sh ツールを実行する必要があります。