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中國

    Linux中國

    捐贈 Let&apos;s Encrypt,共建安全的互聯網

    隨著 Mozilla、蘋果和谷歌對沃通和 StartCom 這兩家 CA 公司處罰落定,很多使用這兩家 CA 所簽發證書的網站紛紛尋求新的證書籤發商。有一個非盈利組織可以為大家提供了免費、可靠和安全的 SSL 證書服務,這就是 Let's Encrypt 項目。現在,它需要您的幫助
    Linux中國

    關於Linux防火牆iptables的面試問答

    Nishita Agarwal是Tecmint的用戶,她將分享關於她剛剛經歷的一家公司(印度的一家私人公司Pune)的面試經驗。在面試中她被問及許多不同的問題,但她是iptables方面的專家,因此她想分享這些關於iptables的問題和相應的答案給那些以後可能會進行相關面試的人。 所有的問題和相應的答案都基於Nishita Agarwal的記憶並經過了重寫。 嗨,朋友!我叫Nishita Agarwal。我已經取得了理學學士學位,我的專業集中在UNIX和它的變種(BSD,Linux)。它們一直深深的吸引著我。我在存儲方面有1年多的經驗。我正在尋求職業上的變化,並將供職於印度的P
    Linux中國

    Lets Encrypt 已被所有主流瀏覽器所信任

    旨在讓每個網站都能使用 HTTPS 加密的非贏利組織 Lets Encrypt 已經得了 IdenTrust的交叉簽名,這意味著其證書現在已經可以被所有主流的瀏覽器所信任。從這個裡程碑事件開始,訪問者訪問使用了Lets Encrypt 證書的網站不再需要特別配置就可以得到 HTTPS 安全保護了。 Lets Encrypt 的兩個中級證書 ...