この例では、コンテナ用に最適化されたイメージを使用する仮想マシンを含むデプロイの作成方法を説明します。Compute Engine でのコンテナの使用について、詳しくはコンテナ用に最適化された Compute Engine イメージをご覧ください。
このチュートリアルでは、以下の手順について説明します。
- 単純なコンテナのマニフェストを作成します。
- コンテナ イメージを使用する設定とテンプレートを作成します。
- リソースをデプロイし、デプロイが成功したことを確認します。
コンテナのマニフェストを作成する
コンテナを使用するには、コンテナのマニフェストを定義する必要があります。マニフェストは、コンテナ イメージ、起動するコンテナ、ブート時に実行するコマンド、有効にするポートなどのプロパティを定義します。
次の内容のファイルを container_manifest.yaml
という名前で作成します。
このマニフェストは hello アプリケーション コンテナ イメージを使用する simple-echo という名前のコンテナを作成し、8080 でリッスンする netcat サーバーを起動します。
テンプレートと構成を作成する
次に、コンテナに最適化されたイメージを使用して仮想マシン インスタンスを起動するテンプレートを作成します。次の内容のファイルを container_vm.[jinja|py]
という名前で作成します。
Jinja
Python
対応するスキーマ ファイルを作成します。これにより、テンプレートの構造を適用します。
Jinja
Python
このテンプレートで定義される多数のパラメータには、次のようなものが含まれることに注意してください。
deployment
、name
、project
環境変数。Deployment Manager が自動的に変数に値を設定します。何も操作を行う必要はありません。zone
、containerImage
、containerManifest
プロパティ。これらのプロパティは構成に定義します。
次のような構成ファイルを container_vm.yaml
という名前で作成します。
Jinja
Python
必ず ZONE_TO_RUN
を仮想マシンに設定するゾーンで置き換えてください。このファイルは、使用するコンテナ イメージと先に作成したコンテナ マニフェストも定義していることに注意してください。
仮想マシン インスタンスをデプロイする
最後に、Google Cloud CLI を使用して、仮想マシン インスタンスをデプロイします。
gcloud deployment-manager deployments create my-container-deployment \
--config container_vm.yaml
デプロイが作成されると、その詳細を見ることができます。次に例を示します。
$ gcloud deployment-manager deployments describe my-container-deployment
creationTimestamp: '2015-04-02T12:24:31.645-07:00'
fingerprint: ''
id: '8602410885927938432'
manifest: https://www.googleapis.com/deploymentmanager/v2/projects/myproject/global/deployments/my-container-deployment/manifests/manifest-1428002671645
name: my-container-deployment
state: DEPLOYED
resources:
NAME TYPE ID UPDATE_STATE ERRORS
my-container-deployment-my-container-vm compute.v1.instance 3775082612632070557 COMPLETED -
インスタンスの稼働を確認する
コンテナ インスタンスが起動したことを確認するため、ブラウザで仮想マシンの外部 IP アドレスにアクセスすると hello world
と表示されます。
ポート 8080 を介して仮想マシン上のトラフィックを照会できるように、Compute Engine のファイアウォール ルールを追加します。
gcloud compute firewall-rules create allow-8080 --allow tcp:8080
インスタンスの外部 IP アドレスを取得します。
$ gcloud compute instances describe my-container-deployment-my-container-vm ... name: my-container-vm-my-container-deployment networkInterfaces: - accessConfigs: - kind: compute#accessConfig name: external-nat natIP: 104.197.8.138 type: ONE_TO_ONE_NAT name: nic0 network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default networkIP: 10.240.97.220 scheduling: automaticRestart: true onHostMaintenance: MIGRATE selfLink: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/my-container-deployment-my-container-vm status: RUNNING tags: fingerprint: 42WmSpB8rSM= zone: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a ...
この場合の外部 IP アドレスは
104.197.8.138
です。ブラウザ ウィンドウで、ブラウザバーに外部 IP アドレスとポート 8080 を入力します。例:
104.197.8.138:8080
正常な場合、
hello world
というメッセージが表示されます。
(省略可)デプロイを削除する
作成したデプロイの必要がなくなり、費用を節約したい場合は、デプロイを削除します。
gcloud deployment-manager deployments delete my-container-deployment
次のステップ
Deployment Manager の詳細について、Complete ユーザーガイドまたは API で確認する。
他のチュートリアルを試してみます。