Argo CD使用

一、安装ArgoCD

1、非高可用安装

通过kubectl的方式安装,测试环境使用

kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

2、高可用安装

建议生产环境使用高可用安装

kubectl create namespace argocd
kubectl apply -n argocd -k https://github.com/argoproj/argo-cd/blob/master/manifests/ha/install.yaml

3、Core安装

core安装主要用于无头模式下部署ArgoCD。适用于不需要多租户功能的集群。此方法安装包含的组件更少更容易设置。此安装不包含UI、SSO。

kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/core-install.yaml

还可以通过helm、kustomize等方式进行安装,详细信息参考官方文档:

https://argo-cd.readthedocs.io/en/stable/operator-manual/core/

4、kubernetes支持的版本

Argo CD versionKubernetes versions
2.10v1.28, v1.27, v1.26, v1.25
2.9v1.28, v1.27, v1.26, v1.25
2.8v1.27, v1.26, v1.25, v1.24

5、下载Argo CD CLI

从https://github.com/argoproj/argo-cd/releases/latest下载在新的版本

6、访问ArgoCD API服务器

将argocd-server service的服务类型修改为LoadBalancer:

kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "LoadBalancer"}}'

然后可以通过https://localhost:8080 访问 API 服务器的UI

二、web UI配置

1、查看默认的密码

账户的初始密码是自动生成的,并且以明文的形式存储在 ArgoCD命名空间中的secrets 中的argocd-initial-admin-secret

可以使用以下命令查看初始密码

argocd admin initial-password -n argocd

命令行登陆

#查看service
[root@iZbp1igh8gtzjj9sgk4cykZ jms_ops_all]# kubectl get service -n argocd
NAME                                      TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
argocd-server                             LoadBalancer   10.68.183.105   <pending>     80:23531/TCP,443:30000/TCP   12d
#登陆
[root@iZbp1igh8gtzjj9sgk4cykZ jms_ops_all]# argocd login 10.68.183.105:80
WARNING: server certificate had error: tls: failed to verify certificate: x509: cannot validate certificate for 10.68.183.105 because it doesn't contain any IP SANs. Proceed insecurely (y/n)? yes
Username: admin
Password: 
'admin:login' logged in successfully
Context '10.68.183.105:80' updated

命令行的方式修改密码

[root@iZbp1igh8gtzjj9sgk4cykZ jms_ops_all]# argocd account update-password
*** Enter password of currently logged in user (admin): 
*** Enter new password for user admin: 
*** Confirm new password for user admin: 
Password updated
Context '10.68.183.105:80' updated

2、登陆WEB UI

打开浏览器访问 Argo CD 外部 UI,通过在浏览器中访问 IP/主机名进行登录,并使用上一步中设置的密码。

三、配置一个应用程序

1、project

项目提供了应用程序的逻辑分组,这在多个团队时非常有用。项目提供以下的功能:

  • 限制可以部署的内容(受信任的git仓库)
  • 限制应用程序可以部署的位置(目标集群和名称空间)
  • 限制可以部署或不可部署的的对象类型(例如RBAC、CRD、Daemonset、NetworkPolicy等)
  • 定义项目角色,以提供应用程序的RBAC

因为项目暂时不涉及到,所以不做就分析。具体操作参考官方文档:https://argo-cd.readthedocs.io/en/stable/user-guide/projects/

2、Repository

git仓库作为argoCD的唯一可信源。

ArgoCD CLI配置凭证

argocd repo add https://github.com/argoproj/argocd-example-apps --username <username> --password <password>

web UI配置

1.导航Settings/Repositories
在这里插入图片描述

2.单击Connect Repo using SSH按钮,输入 URL 并粘贴 SSH 私钥

在这里插入图片描述

还可以通过tonken的方式

3.通过ssh的方式配置验证时会遇到known_hosts的错误,需要将known_hosts文件导入 SSH 已知主机密钥

通过web 页面进行配置
在这里插入图片描述

3、 Application

1.通过UI创建一个应用

登录后,点击**+新应用**按钮,如下图:

在这里插入图片描述

为您的应用程序命名guestbook,使用项目default,并将同步策略保留为Manual

在这里插入图片描述

通过将存储库 url 设置为 github 存储库 url,将https://github.com/argoproj/argocd-example-apps.git存储库连接到 Argo CD,将修订保留为HEAD,并将路径设置为guestbook

在这里插入图片描述

对于Destination,将集群 URL 设置为https://kubernetes.default.svc(或in-cluster集群名称),将命名空间设置为default

在这里插入图片描述

填写完以上信息后,点击UI顶部的Createguestbook即可创建应用程序:

在这里插入图片描述

2.自动同步策略

自动同步策略允许ArgoCD在检测到GitRepo与实际状态之间存在差异的时候,自动启动同步操作的

  • ​ Prune Resource(自动修剪):集群上某个资源在GitRepo上找不到对应的配置时,自动删除集群上的该资源。
  • ​ Self Hesl(自愈):因为各种原因(如手动修改集群中的资源)集群上的资源的实时状态与GitRepo不匹配时,将自动与实际状态和GitRepo的期望状态同步。

注:

  1. 自动同步只发生在应用处于OutOfSync状态,ArgoCD并不会对处于Synced或者Error状态的Application进行同步
  2. 对于GitRepo上的一次提交,自动同步仅会执行一次,除非同时启用了Self-Heal机制
  3. 启用了自动同步的Application不支持RollBack

3.同步选项

在这里插入图片描述

同步选项,用于禁用或者启用同步过程中的某些特性

ApplyOutOfSyncOnly:仅对那些处于OutOfSync状态的资源进行同步操作

PruneProPagationPolicy:资源修剪传播策略,默认为foreground策略,主要用于有依赖的应用程序

PrunLast:在同步操作的最后在执行修剪操作,即为等资源都部署并且为健康状态后再进行修剪

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

FaliOnSharedResource:默认的同步操作不会认为GitRepo中定义的资源被其他应用所使用,将该选项配置为true,意味着在发现该资源已经被其他application所使用时,则将同步状态设置为fail

RespectIgnoreDifference:在同步阶段忽略的期望的字段,即不进行变更的字段

Validation:是否执行资源规范格式的检验,相当于kubctl apply --validation={true|false},默认为true

  • 25
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值