Contents

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