プライベート Docker レジストリの構成

このページでは、GKE On-Prem 用に既存の Docker レジストリを構成する方法について説明します。

概要

GKE On-Prem は、セキュリティで保護されていない Docker レジストリをサポートしていません。Docker レジストリを起動する際、証明書と鍵を提供する必要があります。証明書は、パブリック認証局(CA)によって署名されることも、自己署名されることもあります。

Docker レジストリの作成

Docker レジストリの作成方法については、外部からアクセス可能なレジストリを実行するをご覧ください。

レジストリの構成

管理ワークステーション VM は、証明書に署名した CA を信頼する必要があります。この信頼を確立するには、管理ワークステーション VM で次の操作を行います。

  1. 証明書を格納するディレクトリを作成します。

    sudo mkdir -p /etc/docker/certs.d/[REGISTRY_SERVER]

    [REGISTRY_SERVER] は、Docker レジストリを実行する VM の IP アドレスまたはホスト名です。

  2. 証明書ファイルを /etc/docker/certs.d/[REGISTRY_SERVER]/ca.crt にコピーします。もともと別の名前であった場合でも、ファイル名を ca.crt にする必要があります。

  3. Docker サービスを再起動します。

    sudo service docker restart
  4. Docker にログインできることを確認します。

    docker login -u [USERNAME] -p [PASSWORD] [REGISTRY_SERVER]

    [USERNAME][PASSWORD] は、Docker レジストリにログインするための認証情報です。

    想定されるエラーと解決策

    • Get https://[REGISTRY_SERVER]/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers). Docker レジストリを実行する VM の IP アドレスが正しいことを確認します。

    • login attempt to https://[REGISTRY_SERVER]/v2/ failed with status: 401 Unauthorized。ユーザー名とパスワードが正しいことを確認します。

    • Get https://[REGISTRY_SERVER]/v1/users/: x509: certificate signed by unknown authority。管理ワークステーション VM が証明書を信頼していません。

インストール中に gkectl prepare を実行すると、インストールに必要なイメージが Docker レジストリに push されます。

トラブルシューティング

詳しくは、トラブルシューティングを参照してください。