ArgoCD(四)--Application管理

news2024/11/27 20:31:33

1.3 Application管理

先导入一个测试的repo在本地gitlab(gitlab.icloud2native.com),方便测试。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NF4oNdFu-1686033859307)(images\image-20230117174515442.png)]

1.3.1 创建application

  • 通过argocd cli创建application

通过argocd 的命令行可以创建application

argocd app create guestbook --repo http://code.gitlab.svc.cluster.local/root/argocd-example-apps.git  --path guestbook --dest-server https://kubernetes.default.svc --dest-namespace default

从argocd WEB UI上查看是否创建成功:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fWA4GBCn-1686033859308)(images\image-20230117204700142.png)]

命令行同样可以看到:

argocd app list
  • 通过argocd web创建application

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jeUu8GNC-1686033859308)(images/image-20230117205030445.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fwuaReBw-1686033859308)(images\image-20230117205221820.png)]

点击创建

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bmmZwR7g-1686033859309)(images\image-20230117205529104.png)]

因为我们同步策略为auto,所以当修改配置文件,理论上会自动同步部署新版本,将image版本改为0.8.1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oVJhED4o-1686033859309)(images\image-20230117220213287.png)]

3.3.2 自动同步策略

  • 自动同步策略允许ArgoCD在检测到GitRepo与实际状态之间存在差异时自动启动同步策略操作
    • Prune Resource(自动修剪):集群上某个资源在GitRepo中找不到对应的的配置时,自动删除集群上的该资源;
    • Self Heal(自愈):因各种原因(如手动修改)集群上的实时状态而导致与GitRepo不匹配时,自动将实际状态与GitRepo的期望状态同步;
  • 注意事项
    • 自动同步仅发生在applicatin处于OutOfSync状态时,ArgoCD并不会对处于synced或Error状态的Application执行自动同步;
    • 对于GitRepo上的一次提交,自动同步仅会执行一次,除非同时启用Self Heal机制;
    • 启用了自动同步的application不支持rollbacck

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zNB0zzFR-1686033859309)(images\image-20230118154825135.png)]

3.3.3 同步选项

  • 同步选项(Sync Options)用于禁用或启用同步过程中的某些特性

    • ApplyOutSyncOnly

      仅对那些处于OutOfSync状态的资源执行同步操作;

    • PrunePropagationPolicy

      资源修剪传播策略,默认使用foreground策略,另外可选的策略还有backgroud和orphan

    • PruneLast

      在同步操作的最后在执行修剪操作,即其他资源已经部署且转为健康状态后,进行修剪

    • Replace

      对资源的修改以replace方式进行,而非默认的apply

    • FailOnSharedResource

      默认的同步策略操作不会考虑GitRepo中定义的资源是否已经被其他Application所使用,将该选项设置为true,意味在发现资源已经被其他Application所使用时,将同步状态设置为fail

    • RespectIgnoreDifferences

      在同步阶段忽略期望状态的某些字段

    • CreateNamespaces

      创建缺失的名称空间

    • Validation

      是否执行资源规范格式的校验,相当于"kubectl apply --validate={true|false}",默认为true

3.3.4 使用argocd CLI管理Application

  • 管理Application的命令为"argocd app"

  • 子命令

    • 基础命令:create、delete、edit、get、list
    • 日常管理命令:diff、logs、sync、rollback、history、terminate-op
    • 其他管理命令:manifests、delete-resource、patch、patch-resource、unset、wait
  • 向ArgoCD上添加Application

    • argocd app create APPNAME [flags]
    • 常用的flags
      1. –repo string: Git Repository URL
      2. –path string: Git Repository中含有配置文件的子目录路径
      3. –directory-recurse:对目录进行递归
      4. –revision srting :要使用的revision,通常指branch、tag、commit
      5. -f --file string:部署application用到的额配置文件,优先级高于–repo --path
      6. –release-name string: 部署为Helm Charts时,为其指定的release名称
      7. –project string:隶属的Project,默认为default
      8. –dest-server string : 目标kubernetes集群的URL(API Server的URL)
      9. –dest-namespace string: 目标名称空间
  • Application示例

    • 手动执行sync

      argocd app sync <appname>
      
    • 设定同步策略

      启用自动同步

      argocd app set <APPNAME> --sync-policy automated
      

      自动修剪

      argocd app set <APPname> --auto-prune
      

      启动自我修复:

      argocd app set <APPNAME> --self-heal
      
    • 设定同步选项

      禁止修剪特定的资源,可以子啊特定资源的yaml文件下面添加如下:

      metadata:
        annotations:
          argocd.argoproj.io/sync-options: Prune=false
      

      禁用kubectl验证,可以在特定的资源的yaml文件下面添加如下:

      metadata:
        annotations:
           argocd.argoproj.io/sync-options: Validate=false
      

      有选择性的执行同步(二选一):

      1、命令:

      argocd app set <APPNAME> --sync-option ApplyOutOfSyncOnly={true|false}
      

      2、配置文件定义:

      apiVersion: argoproj.io/v1alpha1
      kind: Application
      spec:
        syncPolicy:
          syncOptions: 
          - ApplyOutOfSyncOnly=true
      

      资源修剪传播策略

      命令:

      argocd app set <APPNAME> --sync-option PrunePropagationPolicy={foreground|background|orphan}
      

      是否同步完在进行修剪

      命令:

      argocd app set <APPNAME> --sync-option PruneLast={true|false}
      

      是否replace而非apply

      argocd app set <APPNAME> --sync-option Replace={true|false}
      

      若存在共享资源,是否将同步置为Fail

      argocd app set <APPNAME> --sync-option FailOnSharedResource={true|false} 
      

      是否忽略差异

      argocd app set <APPNAME> --sync-option RespectIgnoreDifferences={true|false} 
      

      是否自动创建名称空间

      argocd app set <APPNAME> --sync-option CreateNamespace={true|false}
      

3.3.5 管理Git Repo

  • 命令行添加repo

    • argocd repo add REPOURL [flags]

    • 常用选项

      ◆–name string:当前Repo的名称

      ◆–ssh-private-key-path string:用于访问Git Repo的SSH私钥文件路径

      ◆–insecure-ignore-host-key:不校验host key

      ◆–insecure-skip-server-verification:不校验host key和server certificate

      ◆–username string:用户名

      ◆–password string:密码

      ◆–project string:Repo所属的Project

      ◆–type string:Repo的类型

  • argocd web ui 添加

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jZIw11rG-1686033859310)(images\image-20230118165940179.png)]

3.3.6 管理Cluster

  • 添加cluster

  • argocd cluster add CONTEXT [flags]

  • 常用选项

​ ◆–name string:Cluster的标识

		◆--in-cluster:ArgoCD自身运行在的Kubernetes集群,访问地址为https://kubernetes.default.svc; 

​ ◆–kubeconfig string:使用指定的kubeconfig文件

​ ◆–namespace stringArray:目标名称空间

​ ◆–project string:所属的Project

​ ◆–service-account string:使用的ServiceAccount

  • 其它命令

  • get

  • list

  • rm

  • rotate-auth

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

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

相关文章

Spark大数据处理学习笔记1.2 Scala变量与数据类型

文章目录 一、变量声明&#xff08;一&#xff09;简单说明&#xff08;二&#xff09;利用val声明变量1、声明方式2、案例演示 &#xff08;三&#xff09;利用var声明变量1、声明方式2、案例演示 &#xff08;四&#xff09;同时声明多个变量 二、数据类型&#xff08;一&…

企业课(理论)

数据链路层 IP地址&#xff1a;32bit 十进制、二进制表示 Mac地址&#xff1a;48bit 十六进制 &#xff08;0-9&#xff0c;a-f&#xff09; Mac地址&#xff1a; 单播Mac地址&#xff1a;一对一 48bit第八bit为0 组播Mac地址&#xff1a;一对多 48bit第八b…

iOS app上架截屏尺寸 5.5英寸:1242x2208 6.5英寸:1242x2688

5.5英寸和6.5英寸的iphone的截屏必须上传 5.5英寸&#xff1a;1242x2208 6.5英寸&#xff1a;1242x2688

张量分析入门笔记 (Tensor For Beginner)

前言 学习的时候感觉要学一下张量&#xff0c;在B站看了一个视频&#xff0c;记录一下&#xff0c;参考的是B站视频【机翻】张量分析入门 (Tensor For Beginner) 前言1. 张量的定义 Tenson Definition2. 张量的前向和后向的转换 Forward and Backward Transformation3. 向量 Ve…

Java网络开发(servlet思考)——什么时候用转发,什么时候用重定向 请求request,响应response

目录 引出转发和重定向1.请求转发---request2.响应重定向----response 转发&#xff1f;重定向&#xff1f;1.登陆后重定向2.登陆后转发3.总结 案例&#xff1a;图书信息管理系统1.用户相关操作---注册&#xff0c;登陆&#xff0c;修改密码 / 昵称&#xff0c;退出登陆2.图书相…

努力有没有用?

努力有没有用&#xff1f; 都说站在风口浪尖&#xff0c;猪都能飞起来。 但时代的红利也是给有准备的人才能抓住。凭什么人家努力了那么久&#xff0c;做了那么多准备&#xff0c;在无人问津的小黑屋熬那么久&#xff0c;终于出人头地后被说成是吃了时代的红利。 努力&#xf…

vue封装组件发布到npm,支持unplugin-vue-components按需引入

目的&#xff1a;vue封装组件发布到npm,支持unplugin-vue-components按需引入 vue组件 https://gitee.com/jiangzhuqingfeng/plugin-vue-componets.git工具类 https://gitee.com/jiangzhuqingfeng/plugin-validate.gittaro组件 https://gitee.com/jiangzhuqingfeng/plugin-tar…

4年测试经验面试要20K,简单问了一下,连基础都不会,我也是醉了····

现在招个合适的人可真难呀&#xff0c;不是这不会就是那不会&#xff0c;没有一个让我满意的 公司前段时间缺人&#xff0c;面试了不少的测试&#xff0c;结果居然没有一个符合要求的。一开始瞄准的就是中级测试工程师的水准&#xff0c;也没指望来技术大牛&#xff0c;提供的薪…

谷歌二次验证 Google Authenticator

后台登录要搞令牌&#xff0c;类似于steam令牌、企鹅令牌等等 开启Google的登陆二步验证&#xff08;即Google Authenticator服务&#xff09;后用户登陆时需要输入额外由手机客户端生成的一次性密码。 实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责…

ChatGPT+Pandas 联手,打造智能数据分析助手PandasAI,数据分析师也要失业了?!

文章目录 前言一、ChatGPT的介绍二、Pandas的介绍三、使用Pandas处理文本数据四、使用ChatGPT生成文本总结 笔记、Python学习资料戳链接直达获取>> 前言 自然语言处理&#xff08;NLP&#xff09;是人工智能领域中的一个重要分支&#xff0c;它涉及到计算机对人类语言的…

Jedis使用教程详解

目录 一、前言二、基本使用三、Jedis连接池四、连接池参数五、哨兵模式六、集群模式七、Springboot当中使用Jedis八、Springboot源码分析 一、前言 Jedis是Redis的一款Java语言的开源客户端连接工具&#xff0c;什么是客户端&#xff1f;就是真正使用者&#xff0c;像我们安装…

【Web网站服务】Nginx优化

Nginx网页优化 一、配置Nginx网页缓存时间1.1设置方法 二、隐藏Nginx版本号2.1方法一&#xff1a;修改配置文件2.2方法二&#xff1a;修改源码文件&#xff0c;重新编译 三、修改用户与组四、日志切割五、连接超时六、更改进程数七、网页压缩八、配置防盗链九、Linux内核参数优…

音乐制作宿主软件有哪些,音乐制作宿主如何选择

音乐是我们抒发感情的一种方式&#xff0c;不同的音乐表达不同的情感。而正因为如此&#xff0c;很多人想创作表达自己情感的音乐。但创作音乐的难点在于普通人并不知道一些专业知识&#xff0c;也不知道专业的音乐编曲软件。那么今天我们就来说一说音乐制作宿主软件有哪些以及…

电力能耗监测系统是如何运作的

电力能耗监测系统数据的采集主要通过多功能仪表、通讯管理机、通讯协议实现能耗数据的采集&#xff0c;能耗数据上传后经大数据计算实现能耗数据的展示&#xff0c;满足用户对能耗监测的需求。下面对电力能耗监测系统的是怎么采集数据的展开介绍&#xff1a; 1.多功能仪表 对高…

【QQ聊天界面、拖拽界面、实现数据源方法 Objective-C语言】

一、那么,接下来,我们就先把控件给它拖一下, 1.打开Main.storyboard, 里面现在是不是有一个3.5英寸的控制器, 然后,看一下我们这个示例程序,上面整体是一个UITableView, 下面留出来,一条,44的高度,放一个UIView, 由两部分组成, 所以说,我们大体上,要放两个…

人事管理项目-员工资料导出

人事管理项目-员工资料导出 后端接口实现前端实现 将员工资料导出为Excel是一个非常常见的需求&#xff0c;后端提供导出接口&#xff0c;前端下载导出数据即可。 后端接口实现 后端实现主要是将查询到的员工数据集合转为可以下载的ResponseEntity<byte[]>&#xff0c;代…

Kali-linux破解操作系统用户密码

当忘记操作系统的密码或者攻击某台主机时&#xff0c;需要知道该系统中某个用户的用户名和密码。本节将分别介绍破解Windows和Linux用户密码。 8.6.1 破解Windows用户密码 Windows系统的用户名和密码保存在SAM&#xff08;安全账号管理器&#xff09;文件中。在基于NT内核的W…

使用Android Studio开发天气预报APP(使用sqlite数据库)

使用Android Studio开发天气预报APP 今天我来分享一下如何使用Android Studio开发一个天气预报APP。在文中&#xff0c;我们将使用第三方接口获取实时天气数据&#xff0c;并显示在APP界面上。 步骤一&#xff1a;创建新项目 首先&#xff0c;打开Android Studio并创建一个新…

c语言多线程间共享哪些数据

问题描述 一个进程中的多个线程调用了共享库中的函数&#xff0c;共享库中定义了静态变量&#xff0c;该静态变量共享吗&#xff1f; 首先我们需要明确三个问题&#xff1a; 一个进程加载了共享库后&#xff0c;共享库的代码放在哪里&#xff1f;一个进程的多线程之间会共享…

Appium + mitmProxy 实现APP接口稳定性测试

随着 App 用户量的不断增长&#xff0c;任何小的问题都可能放大成严重的线上事故&#xff0c;为了避免对App造成损害的任何可能性&#xff0c;我们必须从各个方面去思考 App 的稳定性建设&#xff0c;尽可能减少任何潜在的威胁。 1.背景介绍 为了保障 App 的稳定性&#xff0c…