以前のバージョンの GKE On-Prem のドキュメントを表示しています。最新のドキュメントをご覧ください

プライベート 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 されます。

トラブルシューティング

詳細については、トラブルシューティングをご覧ください。