在 Azure 中部署 Kubernetes 容器叢集

Neilpeterson,mmacy發表於2022-11-27

在 Azure 中部署 Kubernetes 容器叢集

在這個快速入門教程中,我們使用 Azure CLI 建立一個 Kubernetes 叢集,然後在叢集上部署執行由 Web 前端和 Redis 例項組成的多容器應用程式。一旦部署完成,應用程式可以透過網際網路訪問。

示例應用截圖

這個快速入門教程假設你已經基本瞭解了 Kubernetes 的概念,有關 Kubernetes 的詳細資訊,請參閱 Kubernetes 文件

如果您沒有 Azure 賬號,請在開始之前建立一個免費帳戶

登入 Azure 雲控制檯

Azure 雲控制檯是一個免費的 Bash shell,你可以直接在 Azure 網站上執行。它已經在你的賬戶中預先配置好了, 單擊 Azure 門戶右上角選單上的 “Cloud Shell” 按鈕;

Cloud Shell

該按鈕會啟動一個互動式 shell,您可以使用它來執行本教程中的所有操作步驟。

 Cloud Shell 截圖

此快速入門教程所用的 Azure CLI 的版本最低要求為 2.0.4。如果您選擇在本地安裝和使用 CLI 工具,請執行 az --version 來檢查已安裝的版本。 如果您需要安裝或升級請參閱安裝 Azure CLI 2.0

建立一個資源組

使用 az group create 命令建立一個資源組,一個 Azure 資源組是指 Azure 資源部署和管理的邏輯組。

以下示例在 eastus 區域中建立名為 myResourceGroup 的資源組。

az group create --name myResourceGroup --location eastus

輸出:

{
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup",
  "location": "eastus",
  "managedBy": null,
  "name": "myResourceGroup",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

建立一個 Kubernetes 叢集

使用 az acs create 命令在 Azure 容器服務中建立 Kubernetes 叢集。 以下示例使用一個 Linux 主節點和三個 Linux 代理節點建立一個名為 myK8sCluster 的叢集。

az acs create --orchestrator-type=kubernetes --resource-group myResourceGroup --name=myK8sCluster --generate-ssh-keys 

幾分鐘後,命令將完成並返回有關該叢集的 json 格式的資訊。

連線到 Kubernetes 叢集

要管理 Kubernetes 群集,可以使用 Kubernetes 命令列工具 kubectl

如果您使用 Azure CloudShell ,則已經安裝了 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.yaml ,將下面的內容複製到 YAML 中。

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:redis-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.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 顯示為 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 Vote 這個應用了。

瀏覽 Azure Vote 應用截圖

刪除叢集

當不再需要叢集時,可以使用 az group delete 命令刪除資源組,容器服務和所有相關資源。

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

獲取示例程式碼

在這個快速入門教程中,預先建立的容器映象已被用於部署 Kubernetes 。相關應用程式程式碼 Dockerfile 和 Kubernetes 清單檔案可在 GitHub 中獲得。Github 倉庫地址是 https://github.com/Azure-Samples/azure-voting-app-redis

下一步

在這個快速入門教程中,您部署了一個 Kubernetes 叢集,並部署了一個多容器應用程式。

要了解有關 Azure 容器服務的更多資訊,走完一個完整的從程式碼到部署的全流程,請繼續閱讀 Kubernetes 叢集教程。


via: https://docs.microsoft.com/en-us/azure/container-service/kubernetes/container-service-kubernetes-walkthrough

作者:neilpetersonmmacy 譯者:rieonke 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關文章