Argocd/Argocd Rolloouts/Argocd-cli/kubectl argo rollouts插件部署

时间:2022-12-21 14:56:51

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/Argocd Rolloouts/Argocd-cli/kubectl argo rollouts插件部署

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

Argocd/Argocd Rolloouts/Argocd-cli/kubectl argo rollouts插件部署

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