セルフマネージドイメージリポジトリからイメージをプルすると、異なるプロトコルまたは証明書の認証エラーが原因で、イメージのプルに失敗することがあります。このトピックでは、セルフマネージドイメージリポジトリがHTTPプロトコルまたは自己署名証明書を使用している場合に、セルフマネージドイメージリポジトリからイメージをプルして、エラスティックコンテナインスタンスまたはイメージキャッシュを作成する方法について説明します。
説明
セルフマネージドイメージリポジトリからイメージをプルすると、ErrImagePullというアラートイベントがトリガーされ、イメージをプルできない場合があります。次の表は、Elastic Container Instanceとイメージリポジトリ間のネットワークが接続されていることを前提とした、この問題の原因と解決策を示しています。
シナリオ | 原因 | 解決策 |
セルフマネージドイメージリポジトリがHTTPプロトコルを使用している。 | デフォルトでは、Elastic Container InstanceはHTTPS経由でイメージをプルします。異なるプロトコルを使用すると、イメージのプルに失敗します。 | Elastic Container InstanceがHTTPプロトコルを使用してイメージリポジトリと通信するように設定します。 |
セルフマネージドイメージリポジトリがHTTPSプロトコルを使用しているが、自己署名証明書を使用している。 | セルフマネージドイメージリポジトリが自己署名証明書を使用しています。これにより、リポジトリからイメージをプルするときに証明書の認証エラーが発生します。その結果、イメージをプルできません。 | 証明書の認証をスキップするように設定します。 |
構成
CreateContainerGroup APIオペレーションを呼び出してエラスティックコンテナインスタンスを作成する場合、またはCreateImageCache APIオペレーションを呼び出してイメージキャッシュを作成する場合、HTTPプロトコルまたは自己署名証明書を使用するセルフマネージドイメージリポジトリからイメージをプルする場合は、イメージのプルエラーを防ぐために、PlainHttpRegistryまたはInsecureRegistryパラメータを設定する必要があります。
APIオペレーションを呼び出してエラスティックコンテナインスタンスまたはイメージキャッシュを作成する場合にのみ、PlainHttpRegistryまたはInsecureRegistryパラメータを設定できます。
パラメータ | タイプ | 例 | 説明 |
PlainHttpRegistry | String | "harbor***.pre.com,192.168.XX.XX:5000,reg***.test.com:80" | セルフマネージドイメージリポジトリのアドレス。 HTTPプロトコルを使用するセルフマネージドイメージリポジトリからイメージをプルする場合は、このパラメータを指定する必要があります。これにより、Elastic Container InstanceはHTTPプロトコルを使用してイメージをプルします。これにより、異なるプロトコルが原因でイメージのプルに失敗することを防ぎます。 |
InsecureRegistry | String | "harbor***.pre.com,192.168.XX.XX:5000,reg***.test.com:80" | セルフマネージドイメージリポジトリのアドレス。 自己署名証明書を使用するセルフマネージドイメージリポジトリからイメージをプルする場合は、証明書の認証をスキップするために、このパラメータを指定する必要があります。これにより、証明書の認証エラーが原因でイメージのプルに失敗することを防ぎます。 |
複数のコンテナコンテナを異なるイメージリポジトリからプルする場合は、複数のイメージリポジトリアドレスを指定できます。複数のアドレスはカンマ(,)で区切ります。例:
harbor***.pre.com,192.168.XX.XX。イメージリポジトリアドレスにポート番号が含まれている場合は、アドレスをポート番号とともに指定する必要があります。たとえば、イメージリポジトリアドレスが
192.168.XX.XX:5000/nginx:latestの場合は、パラメータを192.168.XX.XX:5000に設定します。
詳細については、以下を参照してください。