19.云原生CICD之ArgoCD入门CD过程实战

news2024/12/28 18:26:35

云原生专栏大纲

文章目录

  • ArgoCD
    • ArgoCD 简介
    • GitOps介绍
    • Argo CD 的工作流程
    • argocd和jinkens对比
    • kustomize介绍
    • ArgoCD和kustomize关系
  • 安装argocd
  • argocd控制台介绍
    • 首页
    • 应用创建表单
      • SYNC OPTIONS(同步选项)
      • SYNC POLICY(同步策略)
    • 应用功能面板
      • 历史记录和回滚
      • 应用详情
        • SUMMARY(概要)
        • PARAMETERS(参数)
  • argocd CD过程实战

ArgoCD

ArgoCD 简介

总结ArgoCD是基于 kubernetes 的声明式 Gitops 持续部署工具

  1. 应用定义,配置和环境变量管理等等,都是声明式基于云原生的。
  2. 所有声明清单都存储在代码仓库中,受版本管理
  3. 应用发布和生命周期管理都是自动化的,可审计的。

Argo CD 是一个基于 GitOps 的持续交付工具,用于管理和部署应用程序到 Kubernetes 集群。它通过将声明性配置文件与实际状态进行比较,并自动调整实际状态以保持一致,实现了基于 GitOps 的持续交付和应用程序管理。
以下是 Argo CD 的一些主要特点和功能:

  1. 声明性配置: Argo CD 使用 Kubernetes 的声明性配置文件(如 YAML 文件)来描述应用程序的期望状态。这些配置文件存储在 Git 存储库中,使其易于版本控制和跟踪。一般使用Kustomize。
  2. 自动同步: Argo CD 监听 Git 存储库中的配置文件变更,并自动将应用程序的实际状态与配置文件进行比较和同步。这样,您只需将更改推送到 Git 存储库,Argo CD 将负责将应用程序部署到集群中。
  3. 多环境支持: Argo CD 支持多个环境(例如开发、测试、生产)的管理。您可以使用相同的配置文件和工作流程来部署和管理不同环境中的应用程序。
  4. 应用程序生命周期管理: Argo CD 提供应用程序的全生命周期管理,包括部署、更新、回滚和删除。它可以跟踪应用程序的版本历史,并支持回滚到先前的版本。
  5. 同步策略和选项: Argo CD 允许您配置同步策略和选项,以定义应用程序的自动同步行为。您可以控制何时触发同步、是否进行修剪操作以及其他同步行为的细节。
  6. 应用程序比较: Argo CD 使用 Kubernetes API 与集群进行通信,获取当前部署的应用程序的实际状态。然后,它将实际状态与声明性配置文件中定义的期望状态进行比较。
  7. 状态同步: 如果实际状态与期望状态不一致,Argo CD 将自动采取必要的操作来调整实际状态,使其与期望状态保持一致。这可能涉及创建、更新或删除 Kubernetes 资源。
  8. 应用程序健康检查: Argo CD 监测应用程序的健康状态,以确保部署成功。它可以通过检查容器的就绪状态、服务的可用性和自定义的健康检查指标来确定应用程序是否正常运行。
  9. 持续交付和自动化: 通过与 CI/CD 工具集成,Argo CD 可以实现持续交付流程。它可以自动部署新的代码版本,通过自动化流水线进行构建、测试和部署,并在部署完成后更新应用程序的状态。
  10. 可视化界面和监控: Argo CD 提供了一个直观的 Web 界面,用于查看和管理应用程序的状态。它显示了应用程序的拓扑图、部署历史、健康状态和同步状态。此外,Argo CD 还提供了监控和警报功能,以帮助用户监测应用程序的性能和可用性。

Argo CD 是一个强大的工具,可以简化和自动化 Kubernetes 应用程序的部署和管理过程。它遵循 GitOps 的最佳实践,提供了可靠、可扩展和可观察的持续交付解决方案。无论是单个应用程序还是大规模的多环境部署,Argo CD 都可以帮助您实现一致性和可控性。

GitOps介绍

GitOps 是一种基于 Git 的运维方法论,它将应用程序的配置和部署状态存储在版本控制系统中,通常是 Git。通过使用 GitOps,团队可以实现基础设施即代码(Infrastructure as Code)和持续交付(Continuous Delivery),以实现更高效、可靠和可重复的应用程序部署和管理。

GitOps 的核心思想是将应用程序的期望状态(Desired State)以声明性的方式定义并存储在版本控制系统中。这包括应用程序的配置、部署规范、服务拓扑和环境变量等。团队成员可以通过提交代码到版本控制系统来更新应用程序的期望状态。

GitOps 的工作流程如下:

  1. 应用程序的期望状态以声明性的方式定义在版本控制系统中,例如 Git 存储库。
  2. 运维工具(例如 Argo CD)会监测版本控制系统中的变更,并将期望状态与实际状态进行比较。
  3. 如果实际状态与期望状态不一致,运维工具会自动采取必要的操作来调整实际状态,使其与期望状态保持一致。
  4. 运维工具会定期轮询版本控制系统,以确保实际状态与期望状态保持同步。

通过使用 GitOps,团队可以实现以下优势:

  1. 基础设施即代码:通过将应用程序的配置和部署规范存储在版本控制系统中,团队可以将基础设施视为代码,并应用软件开发中的最佳实践,例如版本控制、代码审查和自动化测试。
  2. 可重复性和可审计性:由于应用程序的期望状态存储在版本控制系统中,团队可以轻松地重现和审计每个部署的过程,确保一致性和可靠性。
  3. 自动化和持续交付:通过自动化工具监测版本控制系统并自动调整实际状态,团队可以实现持续交付,并快速、可靠地部署应用程序。
  4. 多环境管理:GitOps 支持多环境部署,团队可以轻松地在不同的环境中部署和管理应用程序,例如开发、测试和生产环境。

总而言之,GitOps 提供了一种强大的方式来管理和部署应用程序,通过将应用程序的期望状态存储在版本控制系统中,并通过自动化工具实现状态的自动调整,使团队能够实现持续交付、可靠性和可审计性。

Argo CD 的工作流程

image.png
Argo CD 的工作流程如下:

  1. 创建应用程序: 用户通过 Argo CD 的命令行界面或 Web 界面创建应用程序。在创建应用程序时,用户需要指定应用程序的名称、Git 存储库的 URL、分支或标签以及路径等信息。
  2. GitOps 同步: Argo CD 定期轮询配置的 Git 存储库,检测应用程序配置文件的变更。一旦发现变更,它会触发同步过程。
  3. 应用程序同步: Argo CD 从 Git 存储库中获取应用程序的声明性配置文件(例如 YAML 文件),并将其与当前的实际状态进行比较。
  4. 状态比较: Argo CD 使用 Kubernetes API 与集群进行通信,获取当前部署的应用程序的实际状态。然后,它将实际状态与声明性配置文件中定义的期望状态进行比较。
  5. 状态同步: 如果实际状态与期望状态不一致,Argo CD 将自动采取必要的操作来调整实际状态,使其与期望状态保持一致。这可能涉及创建、更新或删除 Kubernetes 资源。
  6. 应用程序健康检查: Argo CD 监测应用程序的健康状态,以确保部署成功。它可以通过检查容器的就绪状态、服务的可用性和自定义的健康检查指标来确定应用程序是否正常运行。
  7. 持续同步: Argo CD 会定期轮询 Git 存储库,以确保应用程序的状态与声明性配置文件保持同步。如果发现配置文件有更新,它将触发新一轮的同步过程,以将实际状态调整为期望状态。
  8. 可视化界面和监控: Argo CD 提供了一个直观的 Web 界面,用于查看和管理应用程序的状态。用户可以在界面上查看应用程序的拓扑图、部署历史、健康状态和同步状态。此外,Argo CD 还提供了监控和警报功能,以帮助用户监测应用程序的性能和可用性。

通过以上工作流程,Argo CD 实现了基于 GitOps 的持续交付和应用程序管理。它简化了应用程序的部署和更新过程,并提供了可视化界面和监控功能,使用户能够轻松地管理和监控 Kubernetes 环境中的应用程序。

argocd和jinkens对比

下面是对 Argo CD 和 Jenkins 进行比较的扩展表格:

特点Argo CDJenkins
功能定位应用程序部署和持续交付自动化构建、测试和部署
架构和工作原理基于 Kubernetes 架构,使用 GitOps 方法独立的自动化服务器,可在不同操作系统上运行
CI/CD 功能应用程序版本控制、回滚、自动化部署和健康检查广泛的构建、测试和部署功能
社区和生态系统活跃的社区,与其他云原生工具有良好的集成庞大的用户社区和丰富的插件生态系统
可扩展性支持多集群部署,可与其他工具和平台集成丰富的插件生态系统,可定制和扩展功能
可视化界面提供直观的 Web 界面和应用程序拓扑图提供 Web 界面和流水线可视化编辑器
配置管理使用声明性配置文件进行应用程序管理支持流水线脚本和可视化编辑器进行配置
持续交付流程基于 GitOps 方法实现自动化部署和更新可以定义复杂的流水线来处理构建和部署流程
可观测性提供应用程序状态监控和事件通知支持构建和部署日志记录和报告
安全性支持 RBAC 权限控制和敏感数据管理提供安全性插件和功能来保护构建和部署过程

Argo CD 和 Jenkins 是两个在持续集成和持续交付 (CI/CD) 领域常用的工具,它们有一些共同的目标,但在功能和使用方式上有一些区别。下面是对 Argo CD 和 Jenkins 进行对比的一些关键点:

  1. 功能定位:
    • Argo CD:Argo CD 是一个专注于应用程序部署和持续交付的工具,它使用 GitOps 方法来自动化应用程序的部署和更新。它主要关注于将应用程序与 Git 存储库中的声明性配置文件进行同步,并确保应用程序始终处于所需的状态。
    • Jenkins:Jenkins 是一个功能强大的自动化服务器,它提供了广泛的插件生态系统,用于构建、测试和部署软件。Jenkins 可以处理复杂的构建流程、集成测试和部署任务,并支持多种编程语言和工具。
  2. 架构和工作原理:
    • Argo CD:Argo CD 基于 Kubernetes 架构,通过自定义资源 (Custom Resource) 和控制器来管理应用程序的部署和更新。它使用 Git 存储库中的声明性配置文件来定义应用程序的期望状态,并通过与 Kubernetes API 交互来实现状态的同步。
    • Jenkins:Jenkins 是一个独立的自动化服务器,它可以在不同的操作系统上运行。Jenkins 使用插件来扩展其功能,并提供了一个 Web 界面和流水线脚本 (Pipeline Script) 来定义和执行构建和部署流程。
  3. CI/CD 功能:
    • Argo CD:Argo CD 提供了应用程序的持续交付功能,它可以自动检测 Git 存储库中的变更,并将应用程序部署到 Kubernetes 集群中。它支持应用程序的版本控制、回滚、自动化部署和健康检查等功能。
    • Jenkins:Jenkins 是一个通用的 CI/CD 工具,它提供了广泛的插件来支持不同的构建、测试和部署场景。Jenkins 可以根据代码的提交、定时触发或其他触发条件来执行构建和部署任务,并支持复杂的流水线定义和集成测试。
  4. 社区和生态系统:
    • Argo CD:Argo CD 是一个相对较新的项目,但已经得到了广泛的关注和采用。它有一个活跃的社区,并且与其他云原生工具和项目(如 Kubernetes、Helm 等)有良好的集成。
    • Jenkins:Jenkins 是一个成熟的项目,拥有庞大的用户社区和丰富的插件生态系统。它已经被广泛应用于各种软件开发和交付流程中,并有大量的文档和教程可供参考。

综上所述,Argo CD 和 Jenkins 在功能和使用方式上有一些区别。Argo CD 更专注于应用程序的部署和持续交付,使用 GitOps 方法来实现自动化。Jenkins 则是一个通用的自动化服务器,提供了广泛的插件和流水线功能,适用于各种构建、测试和部署场景。选择使用哪个工具取决于具体的需求和使用情景。

kustomize介绍

Kustomize 是一个用于 Kubernetes 应用程序配置管理的开源工具。它允许您对 Kubernetes 配置进行自定义和重用,以便根据不同的环境、部署目标或团队需求生成不同的配置。

以下是 Kustomize 的一些主要特点和功能:

  1. 声明式配置: Kustomize 使用声明性配置文件来描述应用程序的期望状态。您可以定义资源对象(如部署、服务、配置映射等)以及它们的属性和关联关系,而无需编写复杂的模板。
  2. 配置重用: Kustomize 提供了一种配置重用机制,称为“基础”。您可以定义一组通用的基础配置,并在不同的环境或部署目标中引用它们。这样,您可以避免重复编写相似的配置,并轻松管理和更新共享的配置片段。
  3. 覆盖和合并: Kustomize 允许您使用覆盖和合并的方式来修改基础配置。您可以定义“覆盖”文件,其中包含对基础配置的修改,以满足特定环境或需求。Kustomize 将自动合并基础配置和覆盖文件,生成最终的配置。
  4. 资源生成: Kustomize 提供了一些资源生成选项,用于自动生成一些常见的资源配置,如命名空间、标签选择器和服务账户等。这样,您可以简化配置的编写,并确保生成的配置符合最佳实践和约定。
  5. 可插拔: Kustomize 是一个可插拔的工具,可以与其他工具和流程集成。它可以与持续集成/持续交付 (CI/CD) 系统、GitOps 工具和其他 Kubernetes 工具链中的组件进行配合使用。

Kustomize 的设计理念是提供一种简单而灵活的方式来管理 Kubernetes 应用程序的配置。它强调声明性配置和可重用性,使得配置管理变得更加可维护和可扩展。无论是单个应用程序还是复杂的多环境部署,Kustomize 都可以帮助您轻松管理和定制 Kubernetes 配置。

ArgoCD和kustomize关系

Argo CD 和 Kustomize 是两个独立但可以互补的工具,它们在 Kubernetes 应用程序的部署和管理过程中可以一起使用。

在实际应用中,您可以使用 Kustomize 来管理和定制应用程序的配置,将其组织为可重用的基础配置和环境特定的覆盖文件。然后,您可以将这些配置文件存储在 Git 存储库中,并使用 Argo CD 来监视和部署这些配置文件。Argo CD 可以与 Kustomize 集成,自动识别和应用 Kustomize 配置,以确保应用程序的部署和同步符合预期。

因此,Argo CD 和 Kustomize 可以一起使用,以实现基于 GitOps 的持续交付和灵活的配置管理。您可以使用 Kustomize 来生成和管理应用程序的配置,然后使用 Argo CD 来自动化部署和管理这些配置。这种组合可以提供更高效、可重复和可控的应用程序交付和配置管理流程。

安装argocd

kubekey | k9s
介绍两种安装方式,方式1:在kubesphere3.3中开启devops组件也会安装argocd;方式2:在k8s中部署如下:

  1. 部署argocd
# kubectl create namespace argocd
# kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install .yaml
  1. 暴露argocd控制台

image.png

  1. argocd控制台admin账号密码获取
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
  1. 登录argocd控制验证部署

image.png

argocd控制台介绍

首页

首页展示引用列表,以及左上方有应用创建的入口
image.png

应用创建表单

在 Argo CD 中创建应用时,您需要提供一些配置信息来定义应用的源代码、目标环境和部署方式。这些配置信息在 Argo CD 中分为四个主要部分:General(常规)、Source(源代码)、Destination(目标环境)和Directory(目录)。

  1. General(常规): 在常规配置中,您需要提供应用的名称、命名空间和项目名称。应用名称是在 Argo CD 中唯一标识应用的名称,命名空间是应用将被部署到的 Kubernetes 命名空间,项目名称用于将应用组织到逻辑项目中。
  2. Source(源代码): 在源代码配置中,您需要指定应用的源代码存储库和路径。您可以选择使用 Git 存储库或 Helm 存储库作为源代码存储库。对于 Git 存储库,您需要提供存储库 URL、分支或标签以及路径。对于 Helm 存储库,您需要提供存储库名称、存储库 URL 和 Helm 配置文件路径。
  3. Destination(目标环境): 在目标环境配置中,您需要指定应用程序将要部署到的 Kubernetes 环境。您可以选择将应用程序部署到单个 Kubernetes 集群或多个集群中。对于单个集群,您需要提供集群的名称和命名空间。对于多个集群,您需要提供一个目标服务器定义(Target Server Definition),其中包含每个集群的名称、服务器 URL、证书和其他连接详细信息。
  4. Directory(目录): 在目录配置中,您可以选择性地指定应用程序的根目录和配置文件路径。如果您的应用程序是使用 Kustomize 进行管理的,您可以指定 Kustomize 根目录,并选择要应用的 Kustomize overlays。如果您的应用程序使用其他配置文件,请指定配置文件的路径。

通过提供这些配置信息,您可以在 Argo CD 中创建一个应用程序,并将其与源代码存储库关联起来,指定目标环境以及配置文件的位置。Argo CD 将使用这些信息来自动部署和同步应用程序的状态,确保它与配置文件的期望状态保持一致。

image.png
image.png
image.png

SYNC OPTIONS(同步选项)

image.png
在 Argo CD 的 SYNC OPTIONS 中,还有一些其他选项可以用于更精细地控制应用程序的同步行为。以下是这些选项的介绍:

  1. SKIP SCHEMA VALIDATION (跳过模式验证): 默认情况下,Argo CD 会对应用程序的声明性配置文件进行模式验证,以确保其符合 Kubernetes 资源的模式。但有时可能需要跳过模式验证,特别是当使用自定义的资源模式时。通过设置 SKIP SCHEMA VALIDATION 为 true,可以跳过模式验证。
  2. AUTO-CREATE NAMESPACE (自动创建命名空间): 如果应用程序的声明性配置文件中指定了不存在的命名空间,Argo CD 默认会拒绝同步操作。但有时可能希望自动创建不存在的命名空间。通过设置 AUTO-CREATE NAMESPACE 为 true,可以自动创建命名空间。
  3. PRUNE LAST (最后修剪): 在同步操作中,Argo CD 默认会先创建或更新资源,然后再删除不再需要的资源。但有时可能希望先删除不再需要的资源,然后再创建或更新资源。通过设置 PRUNE LAST 为 true,可以将删除操作放在同步操作的最后。
  4. APPLY OUT OF SYNC ONLY (仅应用不同步的资源): 默认情况下,Argo CD 会应用所有资源的变更,无论它们是否与声明性配置文件中的定义一致。但有时可能只希望应用与声明性配置文件不一致的资源变更。通过设置 APPLY OUT OF SYNC ONLY 为 true,可以仅应用不同步的资源变更。
  5. RESPECT IGNORE DIFFERENCES (遵守忽略的差异): 在同步操作中,Argo CD 默认会忽略声明性配置文件中标记为忽略的差异。但有时可能希望遵守忽略的差异,即使它们与实际状态不一致。通过设置 RESPECT IGNORE DIFFERENCES 为 true,可以遵守忽略的差异。

这些 SYNC OPTIONS 可以根据具体需求进行配置,以实现更精确的同步行为。通过灵活使用这些选项,可以满足特定场景下的同步需求,并确保应用程序的状态与预期保持一致。

SYNC POLICY(同步策略)

image.png
在 Argo CD 中,SYNC POLICY(同步策略)用于定义应用程序的自动同步行为。它允许您配置何时以及如何触发应用程序的同步操作。以下是 Argo CD 中的一些常见 SYNC POLICY 选项:

  1. Automated Sync (自动同步): 这是 Argo CD 的默认同步策略。当应用程序的声明性配置文件发生变化时,自动触发同步操作。这意味着 Argo CD 会自动检测并应用配置文件的更改,以确保应用程序与声明性配置文件保持一致。
  2. Manual Sync (手动同步): 在手动同步策略下,应用程序的同步操作不会自动触发。您需要手动执行同步操作,以将应用程序的实际状态与声明性配置文件同步。这种策略适用于需要手动控制同步时机的情况。
  3. Prune (修剪): 在修剪策略下,Argo CD 会自动删除不再需要的资源。当声明性配置文件中不再包含某个资源定义时,Argo CD 会自动将其删除。这可以确保应用程序的实际状态与声明性配置文件保持一致,避免遗留的无效资源。
  4. Sync Wave (同步波): 同步波是一种分批同步的策略,用于控制应用程序的同步速率。通过将应用程序分为多个同步波,可以逐步同步应用程序的不同部分,以减轻集群的负载和避免突发的大规模同步操作。
  5. Sync Options (同步选项): SYNC POLICY 还可以与 SYNC OPTIONS 结合使用,以进一步细化同步行为。SYNC OPTIONS 允许您配置诸如跳过模式验证、自动创建命名空间、最后修剪、仅应用不同步的资源等选项,以满足特定的同步需求。

通过合理配置 SYNC POLICY,您可以根据应用程序的特性和需求,定义适合的同步策略,确保应用程序在 Kubernetes 环境中始终保持最新和一致的状态。

应用功能面板

功能如下,可手动同步、删除、回滚等。
image.png

历史记录和回滚

点击历史记录和回滚,可查看部署历史记录及回滚到历史版本
image.png

应用详情

在 Argo CD 的应用详情中,您会看到以下几个部分的信息:SUMMARY(概要)、PARAMETERS(参数)、MANIFEST(清单)和EVENTS(事件)。下面是对每个部分的介绍:

  1. SUMMARY(概要): SUMMARY 部分提供了有关应用的基本信息的总览。它包括应用的名称、命名空间、项目名称、源代码存储库和目标环境等。还显示了应用的当前状态和最新的同步状态,以及最后一次同步的时间戳。
  2. PARAMETERS(参数): PARAMETERS 部分列出了应用的参数列表。参数是在部署过程中用于配置应用的可配置项。在 PARAMETERS 部分,您可以查看每个参数的名称、值和描述。如果允许,您可以在此处修改参数的值,以便在下一次同步时应用新的配置。
  3. MANIFEST(清单): MANIFEST 部分显示了应用的配置文件清单。它列出了应用的所有配置文件,包括 YAML 或 JSON 文件。您可以查看每个配置文件的内容,以了解应用的详细配置信息。通过 MANIFEST 部分,您可以检查应用的配置文件是否正确,并对需要进行修改的配置文件进行编辑。
  4. EVENTS(事件): EVENTS 部分显示了与应用相关的事件日志。这些事件包括同步事件、资源创建和更新事件等。您可以查看每个事件的详细信息,包括事件类型、资源名称、时间戳和事件描述。EVENTS 部分提供了一个历史记录,帮助您了解应用的状态变化和操作记录。
SUMMARY(概要)

image.png

PARAMETERS(参数)

在 Argo CD 的应用参数(PARAMETERS)部分,有几个参数:VERSION、NAME PREFIX 和 NAME SUFFIX。下面是对每个参数的介绍:

  1. VERSION: VERSION 参数用于指定应用的版本。它可以是一个字符串或数字,用于标识应用的不同版本。通过在应用的配置文件中使用 VERSION 参数,您可以轻松地管理和跟踪不同版本的应用。
  2. NAME PREFIX: NAME PREFIX 参数用于为应用的资源名称添加前缀。资源名称是 Kubernetes 中的对象标识符,用于唯一标识每个资源。通过使用 NAME PREFIX 参数,您可以为应用的资源名称添加一个统一的前缀,以便更好地组织和识别应用的资源。
  3. NAME SUFFIX: NAME SUFFIX 参数用于为应用的资源名称添加后缀。与 NAME PREFIX 类似,NAME SUFFIX 允许您为应用的资源名称添加一个统一的后缀,以便更好地组织和识别应用的资源。通过使用 NAME SUFFIX 参数,您可以在资源名称的末尾添加一个标识符或描述性的后缀。

这些参数提供了一种在部署应用时进行自定义配置的方式。通过设置 VERSION 参数,您可以管理不同版本的应用。而使用 NAME PREFIX 和 NAME SUFFIX 参数,可以为应用的资源名称添加统一的前缀和后缀,以便更好地组织和识别资源。这些参数可以根据您的需求进行自定义,并根据应用的特定要求进行配置。
image.png

argocd CD过程实战

参考官网文档第6小节 ,使用 GitOps 实现应用持续部署

  1. 将argocd测试项目迁移至gitlab,项目目录介绍如下:
ApplicationDescription
guestbook作为普通 YAML 的 hello word 留言簿应用程序
ksonnet-guestbook作为 ksonnet 应用
helm-guestbook作为 Helm 图表的留言板应用
jsonnet-guestbook作为原始 jsonnet 的留言板应用
jsonnet-guestbook-tla作为原始 jsonnet,支持顶级参数
kustomize-guestbookKustomize应用程序,部署项目用到的k8s资源清单。和helm类似封装到了一起
pre-post-sync演示 Argo CD PreSync 和 PostSync 钩子
sync-waves演示带有钩子的 Argo CD 同步
helm-dependency演示如何从上游存储库自定义 OTS(现成的)helm 图表
sock-shop微服务演示应用 (https://microservices-demo.github.io))
plugins演示配置管理插件用法的应用

修改argocd-example-apps\kustomize-guestbook\guestbook-ui-deployment.yaml下镜像,使用《6.云原生之DevOps和CICD》章节CICD制作上传到harbor的镜像。

  1. 创建应用

image.png

  1. GENERAL常规配置

image.png

  1. SOURCE配置

image.png

  1. DESTINATION目的地配置

image.png

  1. 点击CREATE创建应用

image.pngimage.png

  1. 点击进入详情面板,手动同步

image.png

  1. 查看同步情况

image.png

  1. 登录kubesphere查看部署情况,验证完成

image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1407331.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【LeetCode: 36. 有效的数独 + 模拟】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

2024年应用数学研究与测量测绘国际会议(AMRSMIC 2024)

2024年应用数学研究与测量测绘国际会议(AMRSMIC 2024) 2024 International Conference on Applied Mathematics Research and Surveying and Mapping(AMRSMIC 2024) 数据库:EI,CPCI,CNKI,Google Scholar等检索 一、【会议简介】 2024年图像处理与大数据信息应用国际…

《2023 亚信安慧AntDB数据库年度报告》请查收

关于亚信安慧AntDB数据库 AntDB数据库始于2008年,在运营商的核心系统上,服务国内24个省市自治区的数亿用户,具备高性能、弹性扩展、高可靠等产品特性,峰值每秒可处理百万笔通信核心交易,保障系统持续稳定运行超十年&a…

Qt5编译qextserialport(Qt5.14.2+VS2017)

1、qextserialport库下载 (1)github GitHub - qextserialport/qextserialport: Automatically exported from code.google.com/p/qextserialport (2) code.google https://code.google.com/archive/p/qextserialport/downloads 我下载的是最新版qextserialport-1.2rc.zip ​…

佛像三维扫描文物抄数建模服务雕塑等比例仿制/制作逆向设计造型

文物三维扫描等比例仿制/制作是一项利用先进技术手段对珍贵文物进行复制或仿制的过程。这种技术可以准确地测量文物的三维尺寸和形状,并且利用高精度3D打印技术或精密加工工艺制作出与原文物完全一致的复制品或仿制品。 CASAIM中科广电专业提供文物三维扫描等比例仿…

鸿蒙开发系列教程(九)--ArkTS语言:ForEach循环渲染

ForEach:循环渲染 官方:ForEach接口基于数组类型数据来进行循环渲染,需要与容器组件配合使用,且接口返回的组件应当是允许包含在ForEach父容器组件中的子组件。 语法: ForEach( arr: Array, itemGenerator: (item…

1030 完美数列 (20)(测试点4,5)

给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列。 现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。 输入格式&#x…

项目解决方案:商务大楼(大厦)网络高清视频监控建设方案

目 录 第1章、前言 第2章、高清监控系统概述 第3章、设计原则 第4章、设计规范和依据 第5章、 系统总体设计 5.1 系统逻辑图 5.2 系统技术架构图 5.3 系统网络拓扑图 5.4 系统工作原理 5.4.1 前端监控资源采集 5.4.2前端监控资源采集 5.4.3 终端平台系统…

【Redis】网络模型

前言 Redis(Remote Dictionary Server)是一个开源的高性能键值对存储系统,广泛用于各种网络应用中作为数据库、缓存和消息代理。Redis的网络模型是其高性能的关键因素之一,它涉及到多个方面,包括内存管理、事件处理、…

LeetCode 14.最长公共前缀(python版)

需求 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例 1: 输入:strs [“flower”,“flow”,“flight”] 输出:“fl” 示例 2: 输入:strs [“dog”,“race…

Python使用pip命令安装外部库-项目内安装外部库-全局安装外部库

一、前言 在进行Python项目开发时需要安装一些外部库来扩展项目功能,因此需要了解pip命令的详细使用。 二、基本语法 1.安装库 pip install 包名 2.安装特定版本 pip install 包名版本号 3.升级库 pip install --upgrade 包名 4.卸载库 pip uninstall 包名 5.查看已…

智能调光芯片 PWM调光 模拟调光36V 48V 60V 72V-H5119SL

智能调光芯片是一种用于控制光照系统的集成电路,其主要功能是根据环境条件和用户需求智能调整光照强度。以下是智能调光芯片的基本工作原理: 传感器输入:智能调光芯片通常集成光感应传感器,用于检测周围环境的光照强度。传感器会…

2023 工业 AR 关键词:纵深和开拓

2023 年,以虚实融合、工业元宇宙为代表的“新数字化”升级在工业制造领域达成共识。 ▲五部委联合印发元宇宙行动计划 通过发展元宇宙赋能新型工业化 而相对过去几年的行业渗透广、落地场景多样的 AR 业务拓展与合作,#纵深和#开拓,成为 2023…

Pandas.DataFrame.idxmin() 最小值索引 详解 含代码 含测试数据集 随Pandas版本持续更新

关于Pandas版本: 本文基于 pandas2.2.0 编写。 关于本文内容更新: 随着pandas的stable版本更迭,本文持续更新,不断完善补充。 传送门: Pandas API参考目录 传送门: Pandas 版本更新及新特性 传送门&…

C#用DateTime.Now静态属性返回日期的星期信息

目录 一、使用的方法 1.Now属性 2.ToString方法 二、示例 使用DateTime结构的Now静态属性,可以方便地获取系统日期信息。调用时间对象的ToString方法,在该方法的参数中添加适当的格式化字符串,将返回日期的星期信息。 一、使用的方法 1…

网络电视盒子哪个好?博主分享超高性价比网络电视盒子推荐

电视盒子是我们使用最多的数码产品,年货节很多朋友在纠结网络电视盒子哪个好,我这次的测评产品就是电视盒子,按照18款电视盒子的深度测评结果整理了网络电视盒子推荐,想知道网络电视盒子哪个好可以看看下面这五款电视盒子。 一&am…

【数学建模】插值与拟合

文章目录 插值插值方法用Python解决插值问题 拟合最小二乘拟合数据拟合的Python实现 适用情况 处理由试验、测量得到的大量数据或一些过于复杂而不便于计算的函数表达式时,构造一个简单函数作为要考察数据或复杂函数的近似 定义 给定一组数据,需要确定满…

ArcEngine添加点要素、线要素、面要素及学习总结

基于C#的ArcEngine二次开发教程(13):点、线、面要素的绘制_arcengine onmousedown-CSDN博客 https://www.cnblogs.com/cannel/p/11074343.html ArcEngine绘制点、线、多边形、矩形、圆形、椭圆的代码_arcengine 开发 生成矩形-CSDN博客 https…

keil5 查看stm32 寄存器的值

1 查看芯片内部寄存器的值,首先是在仿真状态下,首先仿真,程序运行。 2 点击菜单栏的 View -> System viewer ,右侧便会出现芯片的所有寄存器(如果没有,需要添加),点击要查看的寄存器,便会出…

【手撕C语言 第八集】函数栈帧的创建与销毁

文章目录 一、什么是函数栈帧?二、函数栈帧能解决什么问题呢?(1)局部变量是如何创建的?(2)为什么局部变量不初始化内容是随机的?(3)函数调用时参数是如何传递…