argocd部署
官网
https://argo-cd.readthedocs.io/en/stable/getting_started/
部署地址参考
https://argo-cd.readthedocs.io/en/stable/getting_started/
https://github.com/argoproj/argo-cd/releases/tag/v2.5.5
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.5.5/manifests/ha/install.yaml
查询部署
kubectl get pods -n argocd
获取登陆密码
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo
终端登陆和修改密码
kubectl edit svc argocd-server -n argocd # 修改svc为nodeport
kubectl get svc -n argocd | grep -w argocd-server # 查询登陆IP
argocd login 10.108.167.44 # ip为argocd service的ip
argocd account update-password # 更新密码
访问页面
argocd cli部署
# 下载页面,拉到最下
https://github.com/argoproj/argo-cd/releases/tag/v2.5.5
# 下载链接
https://github.com/argoproj/argo-cd/releases/download/v2.5.5/argocd-linux-amd64
mv argocd-linux-amd64 /usr/bin/argocd
chmod +x /usr/bin/argocd
argocd cli管理application
argocd app 子命令
子命令
基础命令: create/delete/edit/get/list
日常管理类命令:diff/logs/sync/rollback/history/terminate-op
基它管理命令:manifests/delete-resource/patch/patch-resource/unset/wait
创建application
argocd app create appname [flages]
常用的flags
--repo string: git仓库url
--path string: git 仓库中含有配置文件的子目录路径
--directory-recure:对目录进行递归
--revision string: 要使用的Revision,通常是指源码库上的branch、tag、commit或Helm chart版本
-f, --file string:部署Application用到的配置文件路径或URL,优先级高于“--repo”和“--path”选项
--release-name string:配置为Helm Charts时,为其指定release的名称
--project string:隶属的Project,默认为default
--dest-server string:目标Kubernetes集群的URL(API Server的URL);
--dest-namespace string:目标名称空间
argocd cli使用示例
创建
argocd app create guestbook --repo https://gitee.com/mageedu/argocd-example-apps.git --path guestbook --dest-namespace
default --dest-server https://kubernetes.default.svc --directory-recurse
列出
argocd app list
查看guestbook示例的详细信息
argocd app get guestbook
手动执行sync
argocd app sync guestbook
启用自动同步
argocd app set <APPNAME> --sync-pold$d$icy automated
启动自动修剪
argocd app set <APPNAME> --auto-prune
自动自我修复
argocd app set <APPNAME> --self-heal
禁止修剪特定的资源
metadata:
annotations:
argocd.argoproj.io/sync-options: Prune=false
禁用kubectl验证
metadata:
annotations:
argocd.argoproj.io/sync-options: Validate=false
有选择地执行同步(两种途径之一)
◆ 命令:argocd app set <APPNAME> --sync-option ApplyOutOfSyncOnly={true|false}
配置:
apiVersion: argoproj.io/v1alpha1
kind: Application
spec:
syncPolicy:
syncOptions:
- ApplyOutOfSyncOnly=true
资源修剪传播策略
◆ 命令: argocd app set <APPNAME> --sync-option PrunePropagatinotallow={foreground|background|orphan}
是否同步完成后再进行修剪
◆ 命令: argocd app set <APPNAME> --sync-option PruneLast={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}
管理gti 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的类型
其它命令
◼ get
◼ list
◼ rm
管理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
Argocd Rollout部署
安装地址
https://github.com/argoproj/argo-rollouts/releases/tag/v1.3.2
kubectl create namespace argo-rollouts
kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/download/v1.3.2/install.yaml
kubectl get pods -n argo-rollouts
kubectl get svc -n argo-rollouts
# 修改svc type为NodePort
kubectl edit svc argo-rollouts-dashboard -n argo-rollouts
访问Argocd Rollout dashboard
kubectl argo rollouts插件部署
argo rollouts专用的kubectl插件为可选组件,但安装该组件将能够非常便捷地使用Argo Rollouts
下载页面地址
https://github.com/argoproj/argo-rollouts/releases/tag/v1.3.2
下载
wget -c https://github.com/argoproj/argo-rollouts/releases/download/v1.3.2/kubectl-argo-rollouts-linux-amd64
mv kubectl-argo-rollouts-linux-amd64 /usr/bin/kubectl-argo
chmod +x /usr/bin/kubectl-argo
命令执行示例
kubectl argo rollouts