Tekton实战系列之ArgoCD

116次阅读

共计 1694 个字符,预计需要花费 5 分钟才能阅读完成。

在实际的工作中,Tekton可以完成CICD的所有工作,并没有强制的将它划分为CI工具或者CD工具。在今天的文章中,我们就会将CI和CD进行分开,让Tekton专注于CI,CD则交给 Argocd。

什么是 ArgoCD

Argo CD 是以 Kubernetes 作为基础设施,遵循声明式 GitOps 理念的持续交付(continuous delivery, CD)工具,支持多种配置管理工具,包括 ksonnet/jsonnet、kustomize 和 Helm 等。它的配置和使用非常简单,并且自带一个简单易用的可视化界面。

按照官方定义,Argo CD 被实现为一个 Kubernetes 控制器,它会持续监控正在运行的应用,并将当前的实际状态与 Git 仓库中声明的期望状态进行比较,如果实际状态不符合期望状态,就会更新应用的实际状态以匹配期望状态。

安装

ArgoCD

$ kubectl create ns argocd
$ kubectl apply -f https://raw.githubusercontent.com/honest1y/kubernetes_yaml/master/devops/argo/install.yaml -n argocd

Ingress

$ kubectl apply -f  https://raw.githubusercontent.com/honest1y/kubernetes_yaml/master/devops/argo/ingress.yaml -n argocd
$ k get po -n argocd
NAME                                                READY   STATUS    RESTARTS   AGE
argocd-application-controller-0                     1/1     Running   0          3d14h
argocd-applicationset-controller-759cdcbb4d-vmc6q   1/1     Running   0          3d14h
argocd-dex-server-7b6b54c4df-2fhh9                  1/1     Running   0          3d14h
argocd-notifications-controller-65b6fcf97f-gj65z    1/1     Running   0          3d14h
argocd-redis-7f7fbb5748-qrhb5                       1/1     Running   0          3d14h
argocd-repo-server-f8797cbd-z42n5                   1/1     Running   0          3d14h
argocd-server-6fd554954-tfh5l                       1/1     Running   0          3d14h

登录密码获取:

$ kubectl get secret argocd-initial-admin-secret -o yaml -n argocd

创建Secret

apiVersion: v1
kind: Secret
metadata:
  name: argocd-auth
type: Opaque
stringData:
  username: "admin"
  password: "7v7lL3iYuOS1sz6m"

Tekton实战系列之ArgoCD

Tekton + ArgoCD

要使用 Tekton + Argocd 模式,只需要把我们之前 deploy的task变成由Argocd完成即可。而原先的 deploy 的 task 改成更改镜像信息的 helm Charts 并推送到Gitlab。

所以整体步骤变成如下:

  • 拉代码
  • 编译构建,构建镜像并推送
  • 更改helm chart的value.yaml中的镜像信息,推送到仓库
  • argocd监控到chart仓库变化,更新应用

将 Helm Chart 保存到 Gitlab

$ git:(master) ls -l
total 16
-rw-r--r--   1 mervinwang  staff   1.1K  2  3 10:58 Chart.yaml
drwxr-xr-x   2 mervinwang  staff    64B  2  3 10:58 charts
drwxr-xr-x  10 mervinwang  staff   320B  2  3 10:58 templates
-rw-r--r--   1 mervinwang  staff   717B  2  6 12:05 values.yaml

Tekton实战系列之ArgoCD

在Argocd上部署应用

新建项目

Tekton实战系列之ArgoCD

添加仓库

Tekton实战系列之ArgoCD

部署应用

Tekton实战系列之ArgoCD

Tekton实战系列之ArgoCD

触发流水线部署

Tekton实战系列之ArgoCD

然后在Tekton Dashboard上看到运行完成,如下:

Tekton实战系列之ArgoCD

Tekton实战系列之ArgoCD

正文完
 
mervinwang
版权声明:本站原创文章,由 mervinwang 2023-02-06发表,共计1694字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
文章搜索