ArgoCD
Contents
ArgoCD
ArgoCD 是一个基于 GitOps 的持续交付(CD)工具,专门用于 Kubernetes 环境。它通过使用 Git 仓库作为应用程序的 “源代码真相”,自动化应用的部署和管理。 以下是 ArgoCD 的一些关键特性: GitOps 模型:ArgoCD 遵循 GitOps 原则,将基础设施和应用程序的期望状态存储在 Git 仓库中。任何对 Git 仓库的变更都会自动触发部署。 声明式配置:ArgoCD 支持通过 Helm Charts、Kustomize 文件或直接的 YAML 清单定义 Kubernetes 应用程序。它会持续监控 Git 仓库和 Kubernetes 集群中的运行应用,确保两者状态一致。 同步与回滚:ArgoCD 会同步 Kubernetes 集群中的应用状态与 Git 仓库中的期望状态。如果发生不一致,它可以自动或手动进行修复,并支持快速回滚到以前的版本。 多集群管理:可以同时管理多个 Kubernetes 集群的应用部署,使得跨集群的应用管理更加简便。 自定义健康检查与自动部署:根据定义的健康检查标准自动检测应用是否正常运行,并进行自动部署和更新。 ArgoCD 是 GitOps 和 Kubernetes 环境中常用的自动化工具,适合用于 DevOps 团队来提高交付效率。
基于Docker Desktop 安装
helm upgrade --install argocd argo/argo-cd --namespace argocd --create-namespace
helm upgrade --install ingress-nginx ingress-nginx/ingress-nginx --namespace ingress-nginx --create-namespace
ingress
cat <<EOF | kubectl apply -f -
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: argocd-server-ingress
namespace: argocd
annotations:
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
ingressClassName: nginx
rules:
- host: argocd.local
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: argocd-server
port:
number: 443
tls:
- hosts:
- argocd.local
secretName: argocd-secret
EOF
改本地的hosts
127.0.0.1 argocd.local
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d