使用 Argo CD 在 Kubernetes 上部署應用程式的初學者指南

部署應用程序在 Kubernetes 中可能會很複雜,特別是對於新手來說。輸入Argo CD,一個由 GitOps 驅動的聲明性工具,旨在自動化 Kubernetes 應用程序部署。在這個工作坊中,您將學習如何設置和使用 Argo CD 來無縫部署應用程序,並為完全新手打造了逐步指南。

您將學到什麼

  • 安裝和配置 Argo CD。
  • 使用GitOps 原則部署應用程序。
  • 監控部署和疑難排解。
  • 回滾和管理應用程序版本。
  • 為生產使用安全 Argo CD。

為什麼選擇 Argo CD?

Argo CD通過不斷將您的集群與在Git 存儲庫中定義的清單同步,簡化了在Kubernetes中的應用程序管理。好處包括:

  • 聲明性管理:在 Git 中定義所需的集群狀態。
  • 持續交付:實時同步自動部署。
  • 版本控制:輕鬆回滾到以前的版本。

先决条件

在开始之前,请确保您已经具备以下条件:

  1. 一个Kubernetes集群(可以使用Minikube、Kind或托管服务,如GKE、EKS、AKS)。
  2. 已安装并配置好以连接到您的集群的kubectl
  3. 一个GitHub或GitLab帐户来托管您的Kubernetes清单文件。
  4. 对YAML语法有基本的了解(如果您是新手,则在本讲习班中涵盖)。

逐步指南

1. 设置Kubernetes集群

步骤1:安装Minikube

如果您没有集群,请使用Minikube

Shell

 

步骤2:启动Minikube

在系统上安装Minikube后运行命令minikube start

Shell

 

步骤3:验证集群

确认集群正在运行:

Shell

 

2. 安装Argo CD

步骤1:创建命名空间

Argo CD在其自己的命名空间中运行以实现隔离:

Shell

 

步骤2:安装Argo CD

应用官方清单以安装Argo CD:

Shell

 

步骤3:验证安装

检查Argo CD的Pod:

Shell

 

3. 访问Argo CD界面

步骤1:暴露Argo CD

argocd-server暴露给您的本地机器:

Shell

 

步驟 2:檢索管理員憑據

獲取默認管理員密碼:

Shell

 

步驟 3:登錄到 UI

  1. 在瀏覽器中打開 https://localhost:8080
  2. 使用以下資訊登錄:
    • 用戶名:admin
    • 密碼:在上一步驟中檢索。

4. 將 Argo CD 連接到您的 Git 存儲庫

步驟 1:準備一個 Git 存儲庫

  1. 創建一個 Git 存儲庫(例如,在 GitHub 上)。
  2. 將您的 Kubernetes 清單添加到存儲庫。使用此示例 deployment.yaml
YAML

 

步驟 2:將存儲庫添加到 Argo CD

從 UI:

  1. 前往 設置 > 存儲庫
  2. 添加您的 Git 存儲庫 URL 和身份驗證詳細信息(SSH 或 HTTPS)。

或者,使用 CLI:

Shell

 

5. 部署您的第一個應用程序

步驟 1:創建應用程序

在 Argo CD UI 中:

  1. 點擊 新應用
    • 應用程式名稱: nginx-app
    • 專案: 預設
    • 倉庫 URL: 您的 Git 倉庫 URL
    • 路徑: 到 deployment.yaml 的路徑
    • 叢集 URL: https://kubernetes.default.svc
    • 命名空間: 預設

步驟 2: 同步應用程式

建立應用程式後:

  1. 在 Argo CD 使用者介面中點擊 同步
  2. 觀看應用程式部署至您的 Kubernetes 叢集

6. 自動化部署

步驟 1: 啟用自動同步

啟用持續同步:

Shell

 

步驟 2: 測試更改

  1. 修改 Git 中的 deployment.yaml
  2. 將更改推送至倉庫
  3. Argo CD 將偵測更改並自動將其同步至叢集

7. 監控與疑難排解

步驟 1: 監控應用程式健康狀態

在使用者介面中檢查:

  • 健康:指示應用程式是否按預期運行。
  • 同步狀態:確保叢集狀態與 Git 相符。

步驟 2:檢視日誌

如果出現問題:

Shell

 

步驟 3:回滾更改

回滾至先前的狀態:

Shell

 

8. 保護 Argo CD

步驟 1:更改預設管理員密碼

使用命令 argocd account update-password 更改預設管理員密碼:

Shell

 

步驟 2:整合 SSO

對於生產環境,與單一登入 (SSO) 解決方案(如 GitHub 或 LDAP)進行整合。

GitOps 最佳實踐

  1. 分支策略:為開發、演練和生產使用單獨的分支。
  2. 程式碼審查:強制進行對清單更改的同儕審查。
  3. 審核日誌:定期審查 Argo CD 日誌以確保合規性和進行除錯。

結論

Argo CD 提供了一種適合初學者但功能強大的方式來使用 GitOps 原則管理 Kubernetes 部署。此工作坊將使您具備部署、監控和管理應用程式的技能。遵循這些實踐,您將能夠熟練掌握 Kubernetes 的持續交付。

Source:
https://dzone.com/articles/deploying-applications-in-kubernetes-with-argo-cd