Linux中國

在 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中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國