随笔分类 - CI/CD / Argo
摘要:环境说明 使用Argo Rollouts部署nginx应用: 1. 使用Rollout部署nginx 2. 采用canary部署策略 3. 结合Analysis进行渐进式交付 4. 结合Istio VirtualService进行自动化流量分割和流量迁移 5. 部署清单放在git repo中 使用A
阅读全文
摘要:ArgoCD notifications Triggers Triggers 定义应发送通知的条件。定义包括名称、条件 和通知模板参考。条件是一个谓词表达式,如果通知则返回 true 应该发送。 Triggers 列表 1. on-created # Application 创建 2. on-del
阅读全文
摘要:HTTPS 方式访问私有仓库 Argo CD CLI 添加私有仓库 # argocd repo add https://github.com/argoproj/argocd-example-apps --username <username> --password <password> dashbo
阅读全文
摘要:Argo Rollouts notifications cm 模板 argo-rollouts-notification-configmap的configmap需要部署在argo-rollouts名称空间下。 apiVersion: v1 kind: ConfigMap metadata: name
阅读全文
摘要:Argo Rollouts TrafficRouting概述 流量治理技术实现如下: 1. 按百分比进行流量管理(即 5% 的流量应流向新版本,其余流量流向稳定版本) 2. 基于标头的路由(即将带有特定标头的请求发送到新版本) 3. 镜像流量,其中所有流量都被复制并并行发送到新版本(但响应被忽略)
阅读全文
摘要:环境说明 用argo rollouts 金丝雀发布策略更新nginx服务。 发布过程结合Isito和analysis。 创建 ns argo-demo # kubectl create ns argo-demo namespace/argo-demo created 启用Istio自动注入功能 #
阅读全文
摘要:AnalysisTemplate CRD apiVersion: argoproj.io/v1alpha1 kind: AnalysisTemplate metadata: name: success-rate spec: args: # 模板参数,模板内部引用的格式为“{{args.NAME}}”
阅读全文
摘要:Argo Rollouts Canary 概述 金丝雀部署是一种部署策略,将一小部分生产流量发布到新版本的应用程序。 Argo Rollouts Canary 完整配置 apiVersion: argoproj.io/v1alpha1 kind: Rollout metadata: name: ex
阅读全文
摘要:Argo Rollouts BlueGreen 更新过程 1. 从稳定状态开始,activeService 和 PreviewService 都指向revision 1 的ReplicaSet。 2. 用户通过修改 Pod 模板(spec.template.spec)来发起更新。 3. 创建的Rep
阅读全文
摘要:Argo Rollouts CRD apiVersion: argoproj.io/v1alpha1 kind: Rollout metadata: name: example-rollout-canary spec: # 运行的Pod实例数量,默认为1. # Defaults to 1. repl
阅读全文
摘要:Argo Rollouts 概述 Argo Rollouts 是一个 Kubernetes 控制器和一组 CRD,为 Kubernetes 提供高级部署功能,例如蓝绿、金丝雀、金丝雀分析、experimentation和渐进式交付功能。 Argo Rollouts(可选)与Ingress Contr
阅读全文
摘要:ApplicationSet 概述 ApplicationSet controller是一个 Kubernetes controller,添加了对 ApplicationSet CustomResourceDefinition (CRD) 的支持。该controller/CRD 实现了跨大量集群和
阅读全文
摘要:Project 概述 Projects负责为Application提供逻辑分组,它主要实现如下功能: 1. 限制可以部署的内容(指定受信任的Git Source仓库) 2. 限制Application可以部署到的目标位置(指定目标Cluster和Namespace) 3. 限制能够及不能够部署的对象
阅读全文
摘要:Application CRD apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: guestbook # You'll usually want to add your resources to the argocd
阅读全文
摘要:自动同步策略 当 Argo CD 检测到 Git 中所需的清单与集群中的实时状态之间的差异时,它能够自动同步应用程序。自动同步的好处是 CI/CD 管道不再需要直接访问 Argo CD API 服务器来执行部署。相反,管道会提交并推送到 Git 存储库,并对跟踪 Git 存储库中的清单进行更改。 P
阅读全文
摘要:Argoproj 概述 用于 Kubernetes 运行工作流程、管理集群和正确执行 GitOps 的开源工具。 Argoproj 组成 Argo Workflows 基于Kubernetes平台的原生工作流引擎,支持 DAG和step-based工作流。 Argo Events Kubernete
阅读全文
摘要:创建 ns argo-rollouts # kubectl create namespace argo-rollouts namespace/argo-rollouts created 安装 argo-rollouts # kubectl apply -n argo-rollouts -f http
阅读全文
摘要:创建 ns argocd # kubectl create namespace argocd namespace/argocd created 安装 argocd # kubectl apply -n argocd -f https://raw.githubusercontent.com/argop
阅读全文