作者:阳明 2023-10-08 07:59:25
云计算
云原生 Weave GitOps 改善了开发人员体验,简化了在 Kubernetes 上部署和管理云原生应用程序的复杂性和认知负担,使团队可以更快地开展工作,它是 Flux 的一个强大扩展。
创新互联公司主营牧野网站建设的网络公司,主营网站建设方案,重庆APP开发公司,牧野h5小程序定制开发搭建,牧野网站营销推广欢迎牧野等地区企业咨询
Flux 项目原本提供了一个 Web UI 来管理 Flux 集群,但该项目已经存档,FluxCD 组织不再开发,所以我们这里不再介绍了,如果你想使用 Web UI 来管理 Flux 集群,可以使用 Weaveworks 提供的 weave-gitops(https://github.com/weaveworks/weave-gitops
) 项目,该下面为 Flux 提供了一个免费的开源 GUI。
Weave GitOps 改善了开发人员体验,简化了在 Kubernetes 上部署和管理云原生应用程序的复杂性和认知负担,使团队可以更快地开展工作,它是 Flux 的一个强大扩展。
Weave GitOps 可以帮助应用程序运维人员轻松发现和解决问题 - 简化和扩展 GitOps 和持续交付的采用。UI 提供了引导式体验,可帮助用户轻松发现 Flux 对象之间的关系并加深理解,同时提供对应用程序部署的见解。
Weave GitOps 初了提供了一个开源的版本之外,还有一个企业版本,其 OSS 版本是一个简单的开源开发者平台,适合那些没有 Kubernetes 专业知识但想要云原生应用程序的人。它包括 UI 和许多其他功能,使团队超越简单的 CI/CD 系统。体验启用 GitOps 并在集群中运行应用程序是多么容易。我们这里当然是使用开源版本了。
Weave GitOps 提供了一个命令行界面,可帮助用户创建和管理资源。gitops CLI 目前在 Mac(x86 和 Arm)和 Linux 上受支持,包括 Windows Subsystem for Linux (WSL)。
有多种方法可以安装 gitops CLI:
$ curl --silent --location "https://github.com/weaveworks/weave-gitops/releases/download/v0.32.0/gitops-$(uname)-$(uname -m).tar.gz" | tar xz -C /tmp
$ sudo mv /tmp/gitops /usr/local/bin
$ gitops version
Current Version: 0.32.0
GitCommit: 49a4249d8c205f14f0777c921cd69c04951e208f
BuildTime: 2023-09-13T17:23:13Z
Branch: releases/v0.32.0
当然如果是 Mac 用户可以使用 Homebrew 进行一键安装:
brew tap weaveworks/tap
brew install weaveworks/tap/gitops
CLI 工具安装完成后,接下来就可以来部署 Weave GitOps 了,我们将:
前面我们安装 Flux 的基础设施代码仓库为 http://gitlab.k8s.local/cnych/flux,现在我们 Clone 这个仓库到本地:
$ git clone http://gitlab.k8s.local/cnych/flux
$ cd flux
然后运行以下命令创建 HelmRepository 和 HelmRelease 来部署 Weave GitOps:
PASSWORD="gitops321" # 设置登录密码
gitops create dashboard ww-gitops \
--password=$PASSWORD \
--export > ./clusters/my-cluster/weave-gitops-dashboard.yaml
该命令会存储密码的哈希值,这在演示和测试的时候相对安全,但我们强烈建议在生产系统中使用更安全的密钥存储方法(如 Flux 的 SOPS 集成)。
然后提交 weave-gitops-dashboard.yaml 并将其推送到 flux 基础存储库中去:
git add -A && git commit -m "Add Weave GitOps Dashboard"
git push
然后隔一会儿可以去检测下是否已经部署成功了:
$ kubectl get pods -n flux-system
如果想要定制 Weave GitOps 的部署,可以通过配置 Helm Chart 的 Values 来实现,可配置的参数可以参考文档:https://docs.gitops.weave.works/docs/references/helm-reference/。
现在我们想要访问 Weave GitOps 的 Web UI,可以通过 kubectl port-forward 命令来实现:
kubectl port-forward svc/ww-gitops-weave-gitops -n flux-system 9001:9001
然后我们就可以通过浏览器访问 http://localhost:9001 来访问 Weave GitOps 的 Web UI 了,输入用户名为 admin,密码为前面配置的 PASSWORD 的值,即可登录:
weave gitops
登录后,可以将进入 APPLICATIONS 视图,该视图可以快速了解部署的状态并显示来自 Kustomization 和 HelmRelease 对象的摘要信息。我们还可以使用右上角的切换开关应用深色模式。
APPLICATIONS
让我们来探索下 flux-system 这个基础设施 Kustomization 对象,返回到应用程序视图,并点击 flux-system 对象。
flux-system detail
可能需要一些时间来加载数据。一旦加载完成,应该会得到一个类似上面截图的结果。在这里,可以找到有关资源定义的关键信息。
在 UI 的左侧菜单中,单击 SOURCES 视图,这将向你显示 Flux 从何处提取其应用程序定义(例如 Git 存储库)以及该同步的当前状态。Sources 显示来自 GitRepository、HelmRepository、HelmChart 和 Bucket 对象的摘要信息。
源列表
Sources 表视图显示有关状态的信息,以便可以查看 Flux 是否能够从给定源成功拉取,以及最后检测到哪个特定提交。它向你显示诸如 INTERVAL 之类的关键信息,即 Flux 在指定源位置检查更新的频率。你还可以查看该来源是否经过验证。
除此之外还有其他的一些功能,比如 IMAGE AUTOMATION 页面、POLICIES 也没、NOTIFICATIONS 页面等等。但是可以发现这个 UI 主要是用于展示的,我们并不能通过页面去创建资源对象,所以我们还是推荐使用命令行来管理 Flux 集群。
Flamingo 是 Argo 的 Flux 子系统(FSA),Flamingo 的容器镜像可以作为等效的 ArgoCD 版本的插件扩展,与 Argo CD 一起可视化和管理 Flux 工作负载。
Loopback Reconciliation 是 Flamingo 的一项功能,有助于同步使用 GitOps 方法部署的应用程序。当 Argo CD 用户界面中启用 FluxSubsystem 功能时,它会被激活。其工作原理如下:
Loopback Reconciliation 通过使应用程序的状态与 Flux 对象中定义的所需状态保持同步,有助于确保基于 GitOps 的部署的可靠性和一致性。
how to work
要安装 Flamingo 比较简单,我们可以通过 Flux 的 Kustomization 对象来部署,创建如下所示的资源对象:
# flamingo.yaml
apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: OCIRepository
metadata:
name: fsa-demo
namespace: flux-system
spec:
interval: 30s
url: oci://ghcr.io/flux-subsystem-argo/flamingo/manifests
ref:
tag: latest
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: fsa-demo
namespace: flux-system
spec:
prune: true
interval: 2m
path: "./demo"
sourceRef:
kind: OCIRepository
name: fsa-demo
timeout: 3m
然后直接应用该资源对象即可:
$ kubectl apply -f flamingo.yaml
$ kubectl get ocirepository fsa-demo -n flux-system
NAME URL READY STATUS AGE
fsa-demo oci://ghcr.io/flux-subsystem-argo/flamingo/manifests True stored artifact for digest 'latest@sha256:e9df1250e9e9ae2931a6121b11f30f989cb20aaa4326659fd8ee5b6dd8ddec94' 72s
$ kubectl get kustomization fsa-demo -n flux-system
NAME AGE READY STATUS
fsa-demo 82s True Applied revision: latest@sha256:e9df1250e9e9ae2931a6121b11f30f989cb20aaa4326659fd8ee5b6dd8ddec94
上面的资源对象会创建一个 argocd 的命名空间,并会部署 Argo CD 的所有组件:
$ kubectl get pods -n argocd
NAME READY STATUS RESTARTS AGE
argocd-application-controller-0 1/1 Running 0 2m16s
argocd-applicationset-controller-c9b9899d6-t4gh6 1/1 Running 0 2m16s
argocd-dex-server-798cc6585d-dtc4k 1/1 Running 0 2m16s
argocd-notifications-controller-5b77dc9659-7t9cw 1/1 Running 0 2m16s
argocd-redis-b5d6bf5f5-6kdgc 1/1 Running 0 2m16s
argocd-repo-server-785445967d-xxrq7 1/1 Running 0 2m16s
argocd-server-758f648df4-8zhc5 1/1 Running 0 2m16s
argocd 部署完成后,我们可以通过 kubectl port-forward 命令来访问 Argo CD 的 Web UI:
$ kubectl -n argocd port-forward svc/argocd-server 8003:443
然后我们就可以通过浏览器访问 https://localhost:8003 来访问 Argo CD 的 Web UI 了。
argocd
默认情况下会有 2 个 FSA 应用,每个应用程序由 1 个 Flux 的 Kustomization 和 1 个 Flux 的 GitRepository 组成。
argocd app
如果你现有集群中已经安装了 Argo CD,那么我们可以使用下面的命令来升级现有的 Argo CD。如果已经安装了 Argo CD,可以使用来自 FSA 的镜像替换现有安装的镜像。
kustomize build https://github.com/flux-subsystem-argo/flamingo//release?ref=${FSA_VERSION} \
| yq e '. | select(.kind=="Deployment" or .kind=="StatefulSet")' - \
| kubectl -n argocd apply -f -
如果想要将现有的 Flux 应用转换成 FSA 应用,可以使用 flamingo 的 CLI 命令来实现,所以首先需要安装 flamingo 命令行工具,前往 Flamingo CLI Release 页面下载对应的版本即可,然后解压后将二进制文件移动到 /usr/local/bin 目录下即可:
$ flamingo --version
flamingo version 0.3.1
CLI 工具安装完成后,接下来我们就可以将现有的 Flux 应用转换成 FSA 应用了,比如现在我们创建一个如下所示的 Flux Kustomization 对象:
cat << EOF | kubectl apply -f -
---
apiVersion: v1
kind: Namespace
metadata:
name: podinfo-kustomize
---
apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: OCIRepository
metadata:
name: podinfo
namespace: podinfo-kustomize
spec:
interval: 10m
url: oci://ghcr.io/stefanprodan/manifests/podinfo
ref:
tag: latest
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: podinfo
namespace: podinfo-kustomize
spec:
interval: 10m
targetNamespace: podinfo-kustomize
prune: true
sourceRef:
kind: OCIRepository
name: podinfo
path: ./
EOF
创建后我们可以使用下面的命令来生成一个 FSA 应用:
flamingo generate-app \
--app-name=podinfo-ks \
-n podinfo-kustomize ks/podinfo
创建完成后我们再去访问 Argo CD 的 Web UI,可以看到已经生成了一个 FSA 应用:
argocd ui
这样我们就可以通过 Argo CD 的 Web UI 界面来管理 Flux 的应用了。
新闻名称:使用ArgoCD的UI界面可视化管理Flux应用?
网站路径:http://www.mswzjz.com/qtweb/news8/194208.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联