(已淘汰) 部署適用於 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 服務共同使用。 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 投票應用程式所需的所有物件。
建立名為 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 會顯示為 pending。 當 EXTERNAL-IP 位址從 pending 變成一個 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 部署。 相關的應用程式程式碼、Dockerfile 和 Kubernetes 資訊清單檔案,都可以在 GitHub 上取得。
https://github.com/Azure-Samples/azure-voting-app-redis
後續步驟
在本快速入門中,您已部署 Kubernetes 叢集,並將多容器應用程式部署到此叢集。
若要深入了解 Azure Container Service,並逐步完成部署範例的完整程式碼,請繼續 Kubernetes 叢集教學課程。