このページでは、GKE On-Prem 用に既存の Docker レジストリを構成する方法について説明します。
概要
GKE On-Prem は、セキュリティで保護されていない Docker レジストリをサポートしていません。Docker レジストリを起動する際、証明書と鍵を提供する必要があります。証明書は、パブリック認証局(CA)によって署名されることも、自己署名されることもあります。
Docker レジストリの作成
Docker レジストリの作成方法については、外部からアクセス可能なレジストリを実行するをご覧ください。
レジストリの構成
管理ワークステーション VM は、証明書に署名した CA を信頼する必要があります。この信頼を確立するには、管理ワークステーション VM で次の操作を行います。
証明書を格納するディレクトリを作成します。
sudo mkdir -p /etc/docker/certs.d/[REGISTRY_SERVER]
[REGISTRY_SERVER] は、Docker レジストリを実行する VM の IP アドレスまたはホスト名です。
証明書ファイルを
/etc/docker/certs.d/[REGISTRY_SERVER]/ca.crt
にコピーします。もともと別の名前であった場合でも、ファイル名をca.crt
にする必要があります。Docker サービスを再起動します。
sudo service docker restart
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 されます。
トラブルシューティング
詳しくは、トラブルシューティングを参照してください。