iT邦幫忙

2024 iThome 鐵人賽

DAY 13
0
DevOps

DevOps菜鳥的30天實踐挑戰:從 CI/CD Pipeline 到雲端佈署系列 第 13

Day13 - [實作] 在 Azure Kubernetes Service (AKS)中佈署容器:使用 kubectl

  • 分享至 

  • xImage
  •  

在昨天的文章中,我們已經完成了在本機使用 Docker Desktop Kubernetes 進行容器的佈署。今天,我們將繼續深入,探索如何將應用程式佈署到 Azure Kubernetes Service (AKS) 上!


什麼是 Azure Kubernetes Service (AKS)

Azure Kubernetes Service (AKS) 是一個完全託管的 Kubernetes 叢集,提供了一個簡單易用的方式在雲端管理容器化應用程式。AKS 幫助開發者簡化了 Kubernetes 叢集的管理和操作,同時提供了強大的自動擴展和安全功能,讓我們的應用能夠更快、更高效地運行。

AKS 的主要優勢包括:

  1. 完全託管:Azure 負責叢集的管理和維護,我們可以專注於應用程式的佈署和運行。
  2. 自動擴展:根據負載自動擴展節點和容器,確保應用程式在高流量下仍然能夠平穩運行。
  3. 整合 Azure 服務:與 Azure Monitor、Azure Active Directory 等 Azure 服務深度整合,便於監控、安全性和日常管理。

準備工具

  1. Azure CLI:用來與 Azure 互動的命令行工具。
  2. kubectl:Kubernetes 的命令行工具,用來與 AKS 叢集進行互動。
  3. Docker:用來構建 Docker 映像。

安裝和配置 Azure CLI

首先,我們需要安裝 Azure CLI 並登入 Azure 帳號。

  1. 安裝 Azure CLI

    • Windows 用戶可以參考官方文件進行安裝。
    • 安裝完成後,輸入以下指令來登入 Azure 帳號:
    az login
    
  2. 選擇我們要佈署的訂閱

    az account set --subscription "我們的 Azure 訂閱 ID"
    

建立 AKS 叢集

  1. 建立資源群組

    • 資源群組是存放 Azure 解決方案相關資源的容器。 該資源群組可包含解決方案的所有資源,或是只包含我們想以群組方式管理的資源,以便我們輕鬆地以群組的形式佈署、更新和刪除資源。
    az group create --name myResourceGroup --location eastus
    
  2. 建立 AKS 叢集

    • 建立 AKS 叢集,指定節點數量和 Kubernetes 版本。
    az aks create \
      --resource-group myResourceGroup \
      --name myAKSCluster \
      --node-count 2 \
      --enable-addons monitoring \
      --generate-ssh-keys
    
  3. 設定 kubectl 使用 AKS 叢集

    • 當叢集建立完成後,使用以下命令將 kubectl 連接到 AKS 叢集:
    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    

    這樣 kubectl 命令就會與我們剛剛創建的 AKS 叢集進行連線。


準備 Docker 映像

我們將重用昨天的應用程式,並將它佈署到 AKS 上。首先,我們需要將 Docker 映像推送到 Azure 容器註冊庫 (Azure Container Registry, ACR)

  1. 建立 ACR

    az acr create --resource-group myResourceGroup --name myContainerRegistry --sku Basic
    
  2. 登入 ACR

    az acr login --name myContainerRegistry
    
  3. 標記並推送 Docker 映像至 ACR

    • 構建並標記我們的 Docker 映像:

      docker build -t myContainerRegistry.azurecr.io/myapp:v1 .
      
    • 推送映像至 ACR:

      docker push myContainerRegistry.azurecr.io/myapp:v1
      

佈署應用到 AKS

現在我們將把容器映像佈署到 AKS。

  1. 編寫 Kubernetes 佈署 YAML 文件
    deployment.yaml

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: myapp-deployment
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: myapp
      template:
        metadata:
          labels:
            app: myapp
        spec:
          containers:
          - name: myapp
            image: myContainerRegistry.azurecr.io/myapp:v1
            ports:
            - containerPort: 5000
    
  2. 應用佈署檔案至 AKS
    使用 kubectl apply 將應用佈署到 AKS 叢集:

    kubectl apply -f deployment.yaml
    
  3. 確認佈署狀態
    查看佈署狀態,確保應用成功啟動:

    kubectl get pods
    
  4. 暴露服務
    讓應用程式能夠從外部訪問:

    kubectl expose deployment myapp-deployment --type=LoadBalancer --port=80 --target-port=5000
    

結語&預告

今天我們學習了如何使用 Azure Kubernetes Service (AKS) 進行容器化應用的佈署。AKS 是一個功能強大的 Kubernetes 平台,能讓我們在雲端簡單地運行和管理容器應用程式。在未來的文章中,我們將繼續探討如何監控和管理 AKS 上的應用程式,並深入了解 Kubernetes 的其他高階功能~


參考文件


上一篇
Day12 - [實作] 在 Kubernetes 中佈署應用:使用 Docker Desktop
下一篇
Day14 - Kubernetes Networking 與 Service 基礎概念
系列文
DevOps菜鳥的30天實踐挑戰:從 CI/CD Pipeline 到雲端佈署30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言