入門
目的
了解如何將使用 .NET 和 Docker 組建的微服務部署至 Microsoft Azure。
必要條件
必要: 本教學課程會使用在 [您的第一個微服務] 教學課程中建立的應用程式。
必要: Docker Hub 帳戶。
完成時間
15-20 分鐘
情節
使用 DockerHub 和 Azure Kubernetes Service (AKS) 將先前建立的微服務部署到 Azure。
推送到 Docker Hub
Docker Hub 是上傳 Docker 映射的中央位置。許多產品 (包括 Microsoft Azure) 可根據 Docker Hub 中的映射建立容器。
登入 Docker Hub
Command prompt
docker login
使用在上一個教學課程中下載 Docker 時所建立的使用者名稱和密碼。如有需要,您可以瀏覽 Docker Hub 網站重設密碼。
將影像上傳至 Docker Hub
在您的使用者名稱下重新標記 (重新命名) 您的 Docker 影像,並使用下列命令將其推送到 Docker Hub:
Command prompt
docker tag mymicroservice [YOUR DOCKER USERNAME]/mymicroservice
docker push [YOUR DOCKER USERNAME]/mymicroservice
推送命令會將您的映像上傳到 Docker Hub,這可能需要一些時間。
建立 Azure 資源
建立資源群組
資源群組會用來整理與單一應用程式相關的資源集。
執行下列命令,在美國西部區域建立資源群組:
Command prompt
az group create --name MyMicroserviceResources --location westus
如果您想要在上一個命令上使用不同的位置,您可以執行下列命令,查看您的帳戶中可使用的區域,然後挑選一個較靠近您的區域:
Command prompt
az account list-locations -o table
如果您想要為工作階段使用不同的訂用帳戶,您可以執行下列命令取得所有訂用帳戶的清單:
Command prompt
az account list --all
然後您可以執行下列命令,為該工作階段設定特定的月租方案:
Command prompt
az account set -s NAME_OR_ID
建立 AKS 叢集
執行下列命令以在資源群組中建立 AKS 叢集:
這個命令通常需要幾分鐘的時間才能完成。
Command prompt
az aks create --resource-group MyMicroserviceResources --name MyMicroserviceCluster --node-count 1 --enable-addons http_application_routing --generate-ssh-keys
執行下列命令以下載認證並部署到您的 AKS 叢集:
Command prompt
az aks get-credentials --resource-group MyMicroserviceResources --name MyMicroserviceCluster
部署到 Azure
返回應用程式目錄
因為您在上一步中開啟了新的命令提示字元,所以需要返回您建立服務的目錄。
因為您在上一步中開啟了新的終端,所以需要回到您在其中建立服務的目錄。
Command prompt
cd MyMicroservice
建立部署檔案
AKS 工具使用 .yaml
檔案來定義如何部署您的容器。
使用此命令建立名為 deploy.yaml
的檔案:
Command prompt
touch deploy.yaml
Command prompt
fsutil file createnew deploy.yaml 0
然後,您可以在喜愛的文字編輯器中手動開啟它,或使用此命令:
Command prompt
open deploy.yaml
Command prompt
start deploy.yaml
在文字編輯器中將 deploy.yaml
的內容取代為下列內容,請確定將 [您的 DOCKER 識別碼] 取代為您實際的 Docker 識別碼。
deploy.yaml
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mymicroservice
spec:
replicas: 1
template:
metadata:
labels:
app: mymicroservice
spec:
containers:
- name: mymicroservice
image: [YOUR DOCKER ID]/mymicroservice:latest
ports:
- containerPort: 80
env:
- name: ASPNETCORE_URLS
value: http://*:80
selector:
matchLabels:
app: mymicroservice
---
apiVersion: v1
kind: Service
metadata:
name: mymicroservice
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: mymicroservice
執行部署
執行下列命令,根據 deploy.yaml
中的設定部署微服務:
Command prompt
kubectl apply -f deploy.yaml
測試部署的服務
執行下列命令以查看已部署服務的詳細資訊:
Command prompt
kubectl get service mymicroservice --watch
此外,上一個命令會顯示您的服務可在 (外部-IP) 上使用的外部 IP 位址。
使用外部 IP 位址,開啟新的瀏覽器視窗並瀏覽至 http://[YOUR EXTERNAL IP ADDRESS]/weatherforecast
如果 EXTERNAL-IP 標示為 <pending>
,則配置外部 IP 後,會自動顯示新行。
在命令提示字元上按 CTRL+C,以結束 kubectl get service
命令。
在終端上按 CTRL+C,以結束 kubectl get service
命令。
恭喜! 您已將微服務部署到 Azure。
調整您的服務
使用 Kubernetes 的優點在於,您可以輕鬆地將部署擴大到多個執行個體,以處理額外的負載。目前只有單一執行個體,因此讓我們調整為兩個執行個體。
執行下列命令,將您的服務擴大到最多兩個執行個體:
Command prompt
kubectl scale --replicas=2 deployment/mymicroservice
清理資源
完成微服務的測試之後,您可以刪除使用下列命令建立的所有資源:
Command prompt
az group delete -n MyMicroserviceResources
後續步驟
下列資源可協助您繼續使用 .NET 探索微服務。
適用於初學者的微服務
讓 Nish 帶您了解微服務概念以及如何在 .NET 中建置您的第一個微服務端點:
您可能也會想了解...