Google Container Engineでローカルにビルドした Docker イメージを実行するにはどうすればよいですか?
4 に答える
イメージをGoogle Container Registryにプッシュして、ポッド マニフェストから参照できます。
詳細な手順
適切にセットアップされていると仮定するとDOCKER_HOST
、最新バージョンの Kubernetes を実行する GKE クラスタとGoogle Cloud SDKがインストールされています。
いくつかの環境変数を設定します
gcloud components update kubectl gcloud config set project <your-project> gcloud config set compute/zone <your-cluster-zone> gcloud config set container/cluster <your-cluster-name> gcloud container clusters get-credentials <your-cluster-name>
画像にタグを付ける
docker tag <your-image> gcr.io/<your-project>/<your-image>
イメージをプッシュする
gcloud docker push gcr.io/<your-project>/<your-image>
コンテナーのポッド マニフェストを作成します。
my-pod.yaml
id: my-pod kind: Pod apiVersion: v1 desiredState: manifest: containers: - name: <container-name> image: gcr.io/<your-project>/<your-image> ...
このポッドをスケジュールする
kubectl create -f my-pod.yaml
実行するポッドごとに手順 (4) から繰り返します。
---
区切り文字としてを含む行を使用して、1 つのファイルに複数の定義を含めることができます。
私が使用するセットアップは、ssh ポート転送と組み合わせた独自の docker レジストリをデプロイすることです。その目的のために、クラスター内に ssh サーバーをセットアップし~/.ssh/config
、レジストリーへのポート転送を構成するために使用します。
また、jenkins を使用して、クラウド内でイメージを構築しています。
ポッドを開始する直前に、プライベート Docker レジストリのレジストリ認証キーを、ミニオンのルート ディレクトリにある .dockercfg ファイルにコピーできます。または、開始する前にミニオンで docker login を実行します。
docker login --username=<> --password=<> --email=<> <DockerServer>
ポッド構成でプライベート Docker イメージを参照すると、期待どおりに機能するはずです。