在Kubernetes中部署应用程序可能会很复杂,特别是对于新手来说。输入Argo CD,这是一个基于GitOps的声明性工具,旨在自动化Kubernetes应用程序部署。在这个研讨会中,您将学习如何设置和使用Argo CD来无缝部署应用程序,包括为完全新手设计的逐步操作。
您将学到什么
- 安装和配置Argo CD。
- 使用GitOps原则部署应用程序。
- 监控部署和故障排除。
- 回滚和管理应用程序版本。
- 为生产环境使用Argo CD提供安全性。
为什么选择Argo CD?
Argo CD通过持续将您的集群与Git存储库中定义的清单同步,简化了在Kubernetes中的应用程序管理。其优点包括:
- 声明性管理:在Git中定义期望的集群状态。
- 持续交付:通过实时同步自动化部署。
- 版本控制:轻松回滚到先前的版本。
先决条件
在开始之前,请确保您具备以下条件:
- 一个Kubernetes集群(可以使用Minikube、Kind,或像GKE、EKS、AKS这样的托管服务)。
- 已安装并配置连接到您的集群的
kubectl
。 - 拥有GitHub或GitLab账户用于托管您的Kubernetes清单文件。
- 对YAML语法有基本了解(如果您是新手,本研讨会会涵盖这部分内容)。
逐步指南
1. 设置Kubernetes集群
步骤1:安装Minikube
如果您没有集群,使用Minikube:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube-linux-amd64
sudo mv minikube-linux-amd64 /usr/local/bin/minikube
步骤2:启动Minikube
在系统上安装Minikube后运行命令minikube start
:
minikube start
步骤3:验证集群
确认集群正在运行:
kubectl cluster-info
kubectl get nodes
2. 安装Argo CD
步骤1:创建命名空间
Argo CD在自己的命名空间中运行以实现隔离:
kubectl create namespace argocd
步骤2:安装Argo CD
应用官方清单以安装Argo CD:
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
步骤3:验证安装
检查Argo CD的Pod:
kubectl get pods -n argocd
3. 访问Argo CD用户界面
步骤1:暴露Argo CD
将argocd-server
暴露到您的本地机器:
kubectl port-forward svc/argocd-server -n argocd 8080:443
步骤 2:检索管理员凭据
获取默认管理员密码:
kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" | base64 -d
步骤 3:登录到用户界面
- 在浏览器中打开https://localhost:8080。
- 使用以下信息登录:
- 用户名:admin
- 密码:在上一步中检索到。
4. 将 Argo CD 连接到您的 Git 仓库
步骤 1:准备一个 Git 仓库
- 创建一个 Git 仓库(例如,在 GitHub 上)。
- 将您的 Kubernetes 清单添加到仓库中。使用此示例
deployment.yaml
:
apiVersion apps/v1
kind Deployment
metadata
name nginx-deployment
labels
app nginx
spec
replicas2
selector
matchLabels
app nginx
template
metadata
labels
app nginx
spec
containers
name nginx
image nginx1.19
ports
containerPort80
步骤 2:将仓库添加到 Argo CD
从用户界面:
- 导航到设置 > 仓库。
- 添加您的 Git 仓库 URL 和认证详细信息(SSH 或 HTTPS)。
或者,使用 CLI:
argocd repo add <REPO_URL> --username <USERNAME> --password <PASSWORD>
5. 部署您的第一个应用程序
步骤 1:创建一个应用程序
在 Argo CD 用户界面中:
- 点击新应用。
-
- 应用名称: nginx-app
- 项目: 默认
- 仓库网址: 您的 Git 仓库网址
- 路径: 到
deployment.yaml
的路径 - 集群网址:
https://kubernetes.default.svc
- 命名空间: 默认
步骤 2: 同步应用
创建应用后:
- 在 Argo CD UI 中点击同步
- 观察应用部署到您的 Kubernetes 集群
6. 自动化部署
步骤 1: 启用自动同步
启用持续同步:
argocd app set nginx-app --sync-policy automated
步骤 2: 测试更改
- 修改 Git 中的
deployment.yaml
- 推送更改到仓库
- Argo CD 将检测更改并自动同步到集群
7. 监控和故障排除
步骤 1: 监控应用健康状况
在 UI 中检查:
- 健康: 表示应用程序是否按预期运行。
- 同步状态: 确保集群状态与 Git 匹配。
步骤 2:查看日志
如果出现问题:
kubectl logs -n argocd <POD_NAME>
步骤 3:回滚更改
回滚到之前的状态:
argocd app rollback nginx-app <REVISION>
8. 确保 Argo CD 安全
步骤 1:更改默认管理员密码
使用命令 argocd account update-password
更改默认管理员密码:
argocd account update-password
步骤 2:集成 SSO
对于生产环境,集成 GitHub 或 LDAP 等单点登录 (SSO) 解决方案。
GitOps 最佳实践
- 分支策略: 为开发、预发布和生产使用单独的分支。
- 代码审查: 强制对清单更改进行同行审查。
- 审计日志: 定期审查 Argo CD 日志以确保合规性和调试。
结论
Argo CD 提供了一种适合初学者但功能强大的方式来使用 GitOps 原则管理 Kubernetes 部署。这个研讨会让您掌握有效部署、监控和管理应用程序的技能。通过遵循这些最佳实践,您将朝着精通 Kubernetes 持续交付的目标迈出坚实的一步。
Source:
https://dzone.com/articles/deploying-applications-in-kubernetes-with-argo-cd