本完整範例說明如何透過使用容器最佳化映像檔的虛擬機器建立部署作業。如要進一步瞭解如何使用容器搭配 Compute Engine,請參閱容器最佳化的 Compute Engine 映像檔。
這份逐步導覽會說明如何:
- 建立簡易的容器資訊清單。
- 建立使用容器映像檔的設定和範本。
- 部署資源並且確認已成功完成部署作業。
建立容器資訊清單
如要使用容器,您必須定義容器資訊清單。資訊清單會說明容器映像檔、要啟動的容器、開機時要執行的指令,以及要啟用的通訊埠等屬性。
建立名為 container_manifest.yaml
的檔案,並在當中加入下列內容:
這份資訊清單會建立名為 simple-echo 的容器。這個容器會使用 Hello 應用程式容器映像檔,並啟動 Echo 伺服器來監聽通訊埠 8080。
建立範本和設定
接下來,建立透過容器最佳化映像檔啟動虛擬機器執行個體的範本。建立名為 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
後續步驟
如要進一步瞭解 Deployment Manager,請參閱完整的使用手冊或透過 API 瞭解詳情。
試試看一些其他的教學課程: