该完整示例描述了使用容器优化映像的虚拟机如何创建部署。如需详细了解如何通过 Compute Engine 使用容器,请参阅容器优化的 Compute Engine 映像。
本演示介绍以下各项的方法:
- 创建简单的容器清单。
- 创建使用容器映像的配置和模板。
- 部署资源并验证部署是否成功。
创建容器清单
要使用容器,您必须定义容器清单。清单描述的属性包括容器映像、要启动的容器,启动时执行的命令以及要启用的端口等。
创建名为 container_manifest.yaml
且包含以下内容的文件:
此清单创建名为 simple-echo 的容器,该容器使用 Hello 应用容器映像并启动监听端口 8080 的 echo 服务器。
创建模板和配置
接下来,创建一个模板,启动具有容器优化型映像的虚拟机实例。创建名为 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
:
添加 Compute Engine 防火墙规则,以允许您通过端口 8080 查询虚拟机上的流量:
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
后续步骤
阅读完整用户指南或通过 API 详细了解 Deployment Manager。
试用一些其他教程: