(已淘汰)部署適用於Linux容器的 Kubernetes 叢集
提示
如需本快速入門使用 Azure Kubernetes Service 的更新版本,請參閱 快速入門:部署 Azure Kubernetes Service (AKS) 叢集。
警告
Azure Container Service (ACS) 即將淘汰。 ACS 中不會新增任何新功能。 所有 API、入口網站體驗、CLI 命令和文件都會標示為已被取代。
自 2017 年引進 Azure Kubernetes Service (AKS) 起,即將其用於簡化 Kubernetes 的管理、部署及作業。 若您使用 Kubernetes 協調器,請於 2020 年 1 月 31 日前,移轉至 AKS。 若要開始使用,請參閱 遷移至 Azure Kubernetes Service。
如需詳細資訊,請參閱 Azure.com 上的 Azure Container Service 淘汰公告。
在本快速入門中,會使用 Azure CLI 部署 Kubernetes 叢集。 由 Web 前端和 Redis 實例組成的多容器應用程式接著會在叢集上部署並執行。 完成後,應用程式即可透過因特網存取。
本檔中使用的範例應用程式是以 Python 撰寫。 這裏詳述的概念和步驟可用來將任何容器映像部署到 Kubernetes 叢集。 GitHub 上提供與此項目相關的程式代碼、Dockerfile 和預先建立的 Kubernetes 指令清單檔。
本快速入門假設對 Kubernetes 概念有基本瞭解,如需 Kubernetes 的詳細資訊,請參閱 Kubernetes 檔。
如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶。
Azure Cloud Shell
Azure Cloud Shell 是裝載於 Azure 中的互動式殼層環境,可在瀏覽器中使用。 您可以使用 Bash 或 PowerShell 搭配 Cloud Shell,與 Azure 服務共同使用。 您可以使用 Cloud Shell 預先安裝的命令,執行本文提到的程式碼,而不必在本機環境上安裝任何工具。
要啟動 Azure Cloud Shell:
選項 | 範例/連結 |
---|---|
選取程式碼或命令區塊右上角的 [試試看]。 選取 [試試看] 並不會自動將程式碼或命令複製到 Cloud Shell 中。 | |
請前往 https://shell.azure.com,或選取 [啟動 Cloud Shell] 按鈕,在瀏覽器中開啟 Cloud Shell。 | |
選取 Azure 入口網站右上方功能表列上的 [Cloud Shell] 按鈕。 |
若要使用 Azure Cloud Shell:
啟動 Cloud Shell。
選取程式碼區塊 (或命令區塊) 上的 [複製] 按鈕以複製程式碼或命令。
透過在 Windows 和 Linux 上選取 Ctrl+Shift+V;或在 macOS 上選取 Cmd+Shift+V,將程式碼或命令貼到 Cloud Shell 工作階段中。
選取 Enter 鍵執行程式碼或命令。
如果您選擇在本機安裝和使用 CLI,本快速入門會要求您執行 Azure CLI 2.0.4 版或更新版本。 執行 az --version
以尋找版本。 如果您需要安裝或升級,請參閱安裝 Azure CLI 模組。
建立資源群組
使用 az group create 命令來建立資源群組。 Azure 資源群組是部署及管理 Azure 資源所在的邏輯群組。
下列範例會在 westeurope 位置建立名為 myResourceGroup 的資源群組。
az group create --name myResourceGroup --location westeurope
輸出:
{
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup",
"location": "westeurope",
"managedBy": null,
"name": "myResourceGroup",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null
}
建立 Kubernetes 叢集
使用 az acs create 命令在 Azure Container Service 中建立 Kubernetes 叢集。 下列範例會建立名為 myK8sCluster 的叢集,其中包含一個 Linux 主要節點和三個 Linux 代理程序節點。
az acs create --orchestrator-type kubernetes --resource-group myResourceGroup --name myK8sCluster --generate-ssh-keys
在某些情況下,例如使用有限的試用版,Azure 訂用帳戶對 Azure 資源的存取權有限。 如果部署因可用核心有限而失敗,請新增 --agent-count 1
至 az acs create 命令來減少預設代理程式計數。
幾分鐘后,命令會完成並傳回有關叢集的 json 格式資訊。
連線至叢集
若要管理 Kubernetes 叢集,請使用 Kubernetes 命令列用戶端:kubectl。
如果您使用 Azure Cloud Shell,則已安裝 kubectl。 如果您想要在本機安裝,您可以使用 az acs kubernetes install-cli 命令。
若要設定 kubectl 以連線到 Kubernetes 叢集,請執行 az acs kubernetes get-credentials 命令。 此步驟會下載憑證並設定 Kubernetes CLI 以供使用。
az acs kubernetes get-credentials --resource-group=myResourceGroup --name=myK8sCluster
若要驗證針對您叢集的連線,請使用 kubectl get 命令來傳回叢集節點的清單。
kubectl get nodes
輸出:
NAME STATUS AGE VERSION
k8s-agent-14ad53a1-0 Ready 10m v1.6.6
k8s-agent-14ad53a1-1 Ready 10m v1.6.6
k8s-agent-14ad53a1-2 Ready 10m v1.6.6
k8s-master-14ad53a1-0 Ready,SchedulingDisabled 10m v1.6.6
執行應用程式
Kubernetes 指令清單檔會定義叢集所需的狀態,包括應該執行的容器映像。 在此範例中,會使用指令清單來建立執行 Azure Vote 應用程式所需的所有物件。
建立名為 azure-vote.yml
的檔案,並將其複製到下列 YAML 中。 如果您在 Azure Cloud Shell 中工作,可以使用 vi 或 Nano 建立此檔案,就像在虛擬或實體系統上運作一樣。
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: azure-vote-back
spec:
replicas: 1
template:
metadata:
labels:
app: azure-vote-back
spec:
containers:
- name: azure-vote-back
image: redis
ports:
- containerPort: 6379
name: redis
---
apiVersion: v1
kind: Service
metadata:
name: azure-vote-back
spec:
ports:
- port: 6379
selector:
app: azure-vote-back
---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: azure-vote-front
spec:
replicas: 1
template:
metadata:
labels:
app: azure-vote-front
spec:
containers:
- name: azure-vote-front
image: microsoft/azure-vote-front:v1
ports:
- containerPort: 80
env:
- name: REDIS
value: "azure-vote-back"
---
apiVersion: v1
kind: Service
metadata:
name: azure-vote-front
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: azure-vote-front
使用 kubectl create 命令來執行應用程式。
kubectl create -f azure-vote.yml
輸出:
deployment "azure-vote-back" created
service "azure-vote-back" created
deployment "azure-vote-front" created
service "azure-vote-front" created
測試應用程式
執行應用程式時, 會建立 Kubernetes 服務 ,以將應用程式前端公開至因特網。 此程序可能需要幾分鐘才能完成。
若要監視進度,請使用 kubectl get service 命令搭配 --watch
引數。
kubectl get service azure-vote-front --watch
一開始,azure-vote-front 服務的 EXTERNAL-IP 會顯示為擱置中。 當 EXTERNAL-IP 位址從 擱置 變更為 IP 地址之後,請使用 CTRL-C
來停止 kubectl 監看程式。
azure-vote-front 10.0.34.242 <pending> 80:30676/TCP 7s
azure-vote-front 10.0.34.242 52.179.23.131 80:30676/TCP 2m
您現在可以瀏覽至外部 IP 位址,以查看 Azure 投票應用程式。
刪除叢集
不再需要叢集時,您可以使用 az group delete 命令來移除資源群組、容器服務和所有相關資源。
az group delete --name myResourceGroup --yes --no-wait
取得程式碼
在本快速入門中,預先建立的容器映射已用來建立 Kubernetes 部署。 GitHub 上提供相關的應用程式程式代碼、Dockerfile 和 Kubernetes 指令清單檔案。
https://github.com/Azure-Samples/azure-voting-app-redis
下一步
在本快速入門中,您已部署 Kubernetes 叢集,並將多容器應用程式部署至該叢集。
若要深入瞭解 Azure Container Service,並逐步解說部署範例的完整程式代碼,請繼續進行 Kubernetes 叢集教學課程。