Google Container Engine でローカルに構築したDockerイメージを実行するにはどうすればよいですか?
画像を Google Container Registry にプッシュし、ポッドマニフェストから参照できます。
DOCKER_Host
が適切にセットアップされていると想定すると、GKEクラスタは、Kubernetesの最新バージョンを実行し、 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つのファイルに複数の定義を含めることができます。
ステップ1:作業する必要があるコンテナーを指定する
gcloud container clusters get-credentials [$cluster_name]
ステップ2:実行するDockerイメージにタグを付ける
docker tag nginx gcr.io/first-project/nginx
手順3:画像をプッシュする
gcloud docker Push gcr.io/first-project/nginx
ステップ4:yamlファイルを作成する(test.yaml)
apiVersion: v1
kind: Pod
containers:
- name : nginx1
image: gcr.io/first-project/nginx
ステップ5:ポッドを作成する
kubectl create –f test.yaml
私が使用するセットアップは 独自のDockerレジストリーをデプロイする とsshポート転送を組み合わせたものです。そのために、クラスターにsshサーバーをセットアップし、~/.ssh/config
レジストリに転送するポートを構成します。
また、jenkinsを使用して、クラウド内で画像を構築しています。
ポッドを起動する直前に、プライベートDockerレジストリのレジストリ認証キーを、ミニオンのルートディレクトリにある.dockercfgファイルにコピーできます。または、開始する前にミニオンでdocker loginを実行します。
docker login --username=<> --password=<> --email=<> <DockerServer>
ポッド構成でプライベートDockerイメージを参照すると、期待どおりに機能するはずです。