共用方式為


(已淘汰)部署適用於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 指令清單檔。

流覽至 Azure 投票的影像

本快速入門假設對 Kubernetes 概念有基本瞭解,如需 Kubernetes 的詳細資訊,請參閱 Kubernetes 檔

如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶

Azure Cloud Shell

Azure Cloud Shell 是裝載於 Azure 中的互動式殼層環境,可在瀏覽器中使用。 您可以使用 Bash 或 PowerShell 搭配 Cloud Shell,與 Azure 服務共同使用。 您可以使用 Cloud Shell 預先安裝的命令,執行本文提到的程式碼,而不必在本機環境上安裝任何工具。

要啟動 Azure Cloud Shell:

選項 範例/連結
選取程式碼或命令區塊右上角的 [試試看]。 選取 [試試看] 並不會自動將程式碼或命令複製到 Cloud Shell 中。 Azure Cloud Shell 的「試試看」範例螢幕擷取畫面。
請前往 https://shell.azure.com,或選取 [啟動 Cloud Shell] 按鈕,在瀏覽器中開啟 Cloud Shell。 啟動 Azure Cloud Shell 的按鈕。
選取 Azure 入口網站右上方功能表列上的 [Cloud Shell] 按鈕。 顯示 Azure 入口網站中 Cloud Shell 按鈕的螢幕擷取畫面

若要使用 Azure Cloud Shell:

  1. 啟動 Cloud Shell。

  2. 選取程式碼區塊 (或命令區塊) 上的 [複製] 按鈕以複製程式碼或命令。

  3. 透過在 Windows 和 Linux 上選取 Ctrl+Shift+V;或在 macOS 上選取 Cmd+Shift+V,將程式碼或命令貼到 Cloud Shell 工作階段中。

  4. 選取 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 1az 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 投票應用程式。

流覽至 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 叢集教學課程。