セルフマネージドイメージリポジトリからイメージをプルすると、異なるプロトコル、証明書の認証失敗、セルフマネージドDNSサーバーの使用など、さまざまな要因により、イメージのプルが失敗する可能性があります。このトピックでは、セルフマネージドイメージリポジトリがHTTPプロトコル、自己署名証明書、またはセルフマネージドDNSサーバーを使用している場合に、セルフマネージドイメージリポジトリからイメージをプルしてAlibaba Cloud Container Service for Kubernetes(ACK)ワークロードを作成する方法について説明します。
機能説明
セルフマネージドイメージリポジトリからイメージをプルすると、ErrImagePullという名前のアラートイベントがトリガーされ、イメージをプルできない場合があります。次の表では、ACKとイメージリポジトリ間のネットワークが接続されたままになっている必要があるという要件に基づいて、前述の問題の原因と解決策について説明します。
シナリオ | 原因 | 解決策 |
セルフマネージドイメージリポジトリはHTTPプロトコルを使用しています。 | デフォルトでは、ACKはHTTPS経由でイメージをプルします。異なるプロトコルを使用すると、イメージのプルに失敗します。 | イメージリポジトリと対話するためにHTTPプロトコルを使用するようにACKを設定します。 |
セルフマネージドイメージリポジトリはHTTPSプロトコルを使用していますが、自己署名証明書も使用しています。 | セルフマネージドイメージリポジトリは自己署名証明書を使用しています。これにより、リポジトリからイメージをプルするときに証明書の認証に失敗します。その結果、イメージをプルできません。 | 証明書の認証をスキップします。 |
セルフマネージドイメージリポジトリのドメイン名は、セルフマネージドDNSサーバーを使用しています。 | デフォルトでは、ACKはAlibaba Cloud DNS(100.100.2.136および100.100.2.138)を使用してイメージリポジトリを解決します。イメージリポジトリのドメイン名が自分で作成したDNSサーバーによって記録されている場合、イメージのプルは失敗します。 | 詳細については、ACKクラスタのPodのカスタムDNSサーバーの設定を参照してください。 |
構成の説明
セルフマネージドイメージリポジトリからイメージをプルするときに、セルフマネージドイメージリポジトリがHTTPプロトコルまたは自己署名証明書を使用している場合は、イメージのプル失敗を防ぐために、Podのアノテーションを設定する必要があります。
アノテーション | タイプ | 例 | 説明 |
| 文字列 |
| HTTPプロトコルを使用するセルフマネージドイメージリポジトリからイメージをプルする場合は、このパラメータを設定する必要があります。このようにして、ACKはHTTPプロトコルを使用してイメージをプルします。これにより、異なるプロトコルが原因でイメージのプルに失敗することを防ぎます。 |
| 文字列 |
| 自己署名証明書を使用するセルフマネージドイメージリポジトリからイメージをプルする場合は、証明書の認証をスキップするために、このパラメータを設定する必要があります。これにより、証明書の認証失敗が原因でイメージのプルに失敗することを防ぎます。 |
複数のコンテナイメージを異なるイメージリポジトリからプルする場合は、複数のイメージリポジトリアドレスを指定できます。複数のアドレスはコンマ(,)で区切ります。例:harbor***.pre.com,192.168.XX.XX。
次の例では、ステートレスアプリケーションを使用します。
ACKコンソールにログインします。左側のナビゲーションペインで、クラスタをクリックします。
クラスタページで、管理するクラスタを見つけて、そのIDをクリックします。クラスタの詳細ページの左側のナビゲーションペインで、を選択します。
デプロイメントタブで、イメージから作成をクリックします。
基本情報タブのパラメータを設定した後、次へをクリックします。
コンテナタブのパラメータを設定した後、次へをクリックします。
詳細設定タブで、上記のセッティングとビジネス要件に基づいてPodアノテーションパラメータを設定します。たとえば、Nameパラメータを
registry.alibabacloud.com/plain-http-registryおよびregistry.alibabacloud.com/insecure-registryに設定する場合は、次の図に基づいてValueパラメータを設定できます。次に、作成をクリックします。