共用方式為


快速入門:使用 Azure CLI 部署適用於 AKS 的 Azure Linux 容器主機叢集

使用 Azure CLI 為 AKS 叢集部署 Azure Linux 容器主機,以開始使用 Azure Linux 容器主機。 安裝必要條件之後,請建立資源群組、建立 AKS 叢集、連線至叢集,然後在叢集中執行範例多容器應用程式。

必要條件

建立資源群組

Azure 資源群組是部署及管理 Azure 資源所在的邏輯群組。 建立資源群組時,必須指定位置。 此位置為:

  • 資源群組中繼資料的儲存位置。
  • 如果您未在資源建立時指定另一個區域,則是您會在 Azure 中執行資源的位置。

若要在 eastus 區域中建立名為 testAzureLinuxResourceGroup 的資源群組,請遵循此步驟:

使用 az group create 命令建立資源群組。

az group create --name testAzureLinuxReourceGroup --location eastus

下列輸出類似於已成功建立您的資源群組:

{
  "id": "/subscriptions/<guid>/resourceGroups/testAzureLinuxResourceGroup",
  "location": "eastus",
  "managedBy": null,
  "name": "testAzureLinuxResourceGroup",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

注意

上述範例使用 eastus,但 Azure Linux 容器主機叢集在所有區域中均可使用。

建立 Azure Linux 容器主機叢集

使用 az aks create 命令搭配 --os-sku 參數建立 AKS 叢集,以使用 Azure Linux 映像佈建 AKS 叢集。 下列範例會建立名為 testAzureLinuxCluster、且包含一個節點的 Azure Linux 叢集:

az aks create --name testAzureLinuxCluster --resource-group testAzureLinuxResourceGroup --os-sku AzureLinux

幾分鐘後,命令會完成並傳回關於叢集的 JSON 格式資訊。

連線至叢集

若要管理 Kubernetes 叢集,請使用 Kubernetes 命令列用戶端 kubectl

  1. 使用 az aks get-credentials 命令,設定 kubectl 連線到 Kubernetes 叢集。
az aks get-credentials --resource-group testAzureLinuxResourceGroup --name testAzureLinuxCluster
  1. 使用 kubectl get nodes 命令來確認與叢集的連線。 命令會傳回 Pod 的清單。
  kubectl get pods --all-namespaces

部署應用程式

Kubernetes 資訊清單檔會定義叢集所需的狀態,例如要執行哪些容器映像。

在本快速入門中,您可以使用資訊清單來建立執行 Azure Vote 應用程式所需的所有物件。 此資訊清單包含兩個 Kubernetes 部署:

  • 範例 Azure Vote Python 應用程式。
  • Redis 執行個體。

也會建立兩個 Kubernetes Services

  • Redis 執行個體的內部服務。
  • 從網際網路存取 Azure Vote 應用程式的外部服務。
  1. 建立名為 azure-vote.yaml 的檔案,然後將下列資訊清單複製進來。

    • 如果您使用 Azure Cloud Shell,可以使用 codevinano 建立這個檔案,猶如使用虛擬或實體系統。
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: azure-vote-back
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: azure-vote-back
      template:
        metadata:
          labels:
            app: azure-vote-back
        spec:
          nodeSelector:
            "kubernetes.io/os": linux
          containers:
          - name: azure-vote-back
            image: mcr.microsoft.com/oss/bitnami/redis:6.0.8
            env:
            - name: ALLOW_EMPTY_PASSWORD
              value: "yes"
            resources:
              requests:
                cpu: 100m
                memory: 128Mi
              limits:
                cpu: 250m
                memory: 256Mi
            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/v1
    kind: Deployment
    metadata:
      name: azure-vote-front
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: azure-vote-front
      template:
        metadata:
          labels:
            app: azure-vote-front
        spec:
          nodeSelector:
            "kubernetes.io/os": linux
          containers:
          - name: azure-vote-front
            image: mcr.microsoft.com/azuredocs/azure-vote-front:v1
            resources:
              requests:
                cpu: 100m
                memory: 128Mi
              limits:
                cpu: 250m
                memory: 256Mi
            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
    

    如需 YAML 資訊清單檔案的詳細資訊,請參閱部署和 YAML 資訊清單

  2. 使用 kubectl apply 命令來部署應用程式並指定 YAML 資訊清單的名稱:

    kubectl apply -f azure-vote.yaml
    

    下列範例類似於輸出,顯示已成功建立部署和服務:

    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 輸出一開始會顯示為擱置

NAME               TYPE           CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
azure-vote-front   LoadBalancer   10.0.37.27   <pending>     80:30572/TCP   6s

當 EXTERNAL-IP 位址從暫止變成實際的公用 IP 位址時,請使用 CTRL-C 停止 kubectl 監看式流程。 下列範例輸出顯示指派給服務的有效公用 IP 位址:

azure-vote-front   LoadBalancer   10.0.37.27   52.179.23.131   80:30572/TCP   2m

若要查看作用中的 Azure 投票應用程式,請開啟網頁瀏覽器連至服務的外部 IP 位址。

流覽至 Azure 投票範例應用程式的螢幕快照。

選取叢集

如果您不打算繼續執行下列教學課程,為避免 Azure 費用,請清除任何不必要的資源。 使用 az group delete 命令,以移除資源群組和所有相關資源。

az group delete --name testAzureLinuxCluster --yes --no-wait

下一步

在本快速入門中,您已部署 Azure Linux 容器主機叢集。 若要深入了解 Azure Linux 容器主機,並逐步了解完整的叢集部署和管理範例,請繼續進行 Azure Linux 容器主機教學課程。