环境说明 使用Argo Rollouts部署nginx应用: 1. 使用Rollout部署nginx 2. 采用canary部署策略 3. 结合Analysis进行渐进式交付 4. 结合Istio VirtualService进行自动化流量分割和流量迁移 5. 部署清单放在git repo中 使用A
AnalysisTemplate CRD apiVersion: argoproj.io/v1alpha1 kind: AnalysisTemplate metadata: name: success-rate spec: args: # 模板参数,模板内部引用的格式为“{{args.NAME}}”
环境说明 用argo rollouts 金丝雀发布策略更新nginx服务。 发布过程结合Isito和analysis。 创建 ns argo-demo # kubectl create ns argo-demo namespace/argo-demo created 启用Istio自动注入功能 #
Argo Rollouts notifications cm 模板 argo-rollouts-notification-configmap的configmap需要部署在argo-rollouts名称空间下。 apiVersion: v1 kind: ConfigMap metadata: name
Argo Rollouts TrafficRouting概述 流量治理技术实现如下: 1. 按百分比进行流量管理(即 5% 的流量应流向新版本,其余流量流向稳定版本) 2. 基于标头的路由(即将带有特定标头的请求发送到新版本) 3. 镜像流量,其中所有流量都被复制并并行发送到新版本(但响应被忽略)
HTTPS 方式访问私有仓库 Argo CD CLI 添加私有仓库 # argocd repo add https://github.com/argoproj/argocd-example-apps --username <username> --password <password> dashbo
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
创建 ns argocd # kubectl create namespace argocd namespace/argocd created 安装 argocd # kubectl apply -n argocd -f https://raw.githubusercontent.com/argop
创建 ns argo-rollouts # kubectl create namespace argo-rollouts namespace/argo-rollouts created 安装 argo-rollouts # kubectl apply -n argo-rollouts -f http
自动同步策略 当 Argo CD 检测到 Git 中所需的清单与集群中的实时状态之间的差异时,它能够自动同步应用程序。自动同步的好处是 CI/CD 管道不再需要直接访问
Application 示例 apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: guestbook # You'll usually want to add your resources t
Project 概述 Projects负责为Application提供逻辑分组,它主要实现如下功能: 1. 限制可以部署的内容(指定受信任的Git Sou
Argo Rollouts BlueGreen 更新过程 1. 从稳定状态开始,activeService 和 PreviewService 都指向revision 1 的ReplicaSet。 2. 用户通过修改 Pod 模板(spec.template.spec)来发起更新。 3. 创建的Rep
ApplicationSet 概述 ApplicationSet controller是一个 Kubernetes controller,添加了对 ApplicationSet CustomResourceDefinition (CRD)
Argo Rollouts 概述 Argo Rollouts 是一个 Kubernetes 控制器和一组 CRD,为 Kubernetes 提供高级部署功能,例如蓝绿、金丝雀、金丝雀分析、experimentation
Argo Rollouts Canary 概述 金丝雀部署是一种部署策略,将一小部分生产流量发布到新版本的应用程序。 Argo Rollouts Canary 完整配
Argo Rollouts CRD apiVersion: argoproj.io/v1alpha1 kind: Rollout metadata: name: example-rollout-canary spec: # 运行的Pod实例数量,默认为1. # Defaults to 1. repl
Argoproj 概述 用于 Kubernetes 运行工作流程、管理集群和正确执行 GitOps 的开源工具。 Argoproj 组成 Argo Workflows 基于Kubernetes平台的原生
TriggerBindings 概述 TriggerBinding的功能主要用于将Event中特定属性的值传递给TriggerTemplate上的参数从而完成其resourcetemplates中模板资源的实例化。 注意:Trigger使用参数名称将 TriggerBinding 参数与 Trigg
Interceptors 概述 Interceptor是针对特定平台的的事件处理器,在 TriggerBinding 之前运行。它允许您执行有效负载过滤、验证(使用秘密)、转换、定义和测试触发条件,以及实现其他有用的处理。一旦事件数据通过Interceptor,它就会在将有效负载数据传递到 Trig
Tasks 概述 Task是一系列Step的组合,每个Step主要负责运行特定的构建或交付工具从而完成相关的一次特定事项;Task以Kubernetes集群上Pod运行。Task是名称空间级别的资源。 Tasks 组成 Parameters:是使得Task及Pipeline资源定义出的“模板”更加具
TaskRun 概述 TaskRun允许您在集群上实例化和执行Task。任务指定执行容器映像的一个或多个Steps,每个容器映像执行特定的构建工作。TaskRun按照指定的顺序执行任务中的Steps,直到所有Steps执行成功或失败。 TaskRun 配置清单 apiVersion: tekton.
Pipelines 概述 Pipeline是Tasks的集合,作为持续集成流的一部分,您可以定义并按照特定的执行顺序排列这些Tasks。Pipeline中的每个Tasks在Kubernetes集群上作为Pod执行。您可以配置各种执行条件来满足您的业务需求。 Pipeline使用When表达式 whe
Tekton 概述 Tekton 是用于构建 CI/CD 系统的云原生解决方案。它由 Tekton Pipelines(提供构建块)和支持组件(例如 Tekton CLI 和 Tekton Catalog)组成,使 Tekton 成为一个完整的生态系统。Tekton 是Linux 基金会项目 CD
pipelineruns 概述 PipelineRun允许你在集群上实例化和执行Pipeline。一个Pipeline指定一个或多个Tasks,按照期望的执行顺序执行。PipelineRun按照指定的顺序执行Pipeline中的Tasks,直到所有Tasks都成功执行或失败。 PipelineRun
EventListener 概述 EventListener 是一个 Kubernetes 对象,用于侦听 Kubernetes 集群上指定端口上的事件。它公开了一个可寻址接收器,用于接收传入事件并指定一个或多个Triggers。sink是一个 Kubernetes 服务,在专用 Pod 内运行si
Tenton 支持Secret 类型 Git Docker kubernetes.io/basic-authkubernetes.io/ssh-auth kubernetes.io/basic-authkubernetes.io/dockercfgkubernetes.io/dockerconfig
Tekton Trigger 概述 Tekton Triggers是一个Tekton组件,它允许您从各种来源的事件中检测和提取信息,并基于该信息确定地实例化和执行TaskRuns和PipelineRuns。Tekton触发器还可以将从事件中提取的信息直接传递给TaskRuns和pipelinerun
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号