我打算构建一个本地Kubernetes集群,在我的家庭实验室中托管服务,并与家人和朋友共享这些服务。如果我已经计划将Argo部署为一个GitOps解决方案,并且它已经为我的所有服务设置了一个协调循环,那么对这些相同的服务也使用操作符是否过分呢?例如通过Argo部署GitLab操作符。这是两个工具在做同样的事情,还是我弄错了操作符的概念?
发布于 2023-02-02 15:36:31
我只在过去使用过Fluxcd,所以我没有107%的信心它将在Argos中以完全相同的方式工作,但是我需要做的是分阶段部署这些部署。在第一阶段,我部署了一个运算符应用程序本身,以及它的CRD。在您的情况下,其中一个CRD是IstioOperator或GitLab。
在将该阶段部署到集群后(特别是在应用了CRD之后),将根据第一个阶段的情况进行下一个阶段的部署,即部署一个清单文件,例如:
apiVersion: apps.gitlab.com/v1beta1
kind: GitLab
metadata:
name: gitlab
spec:
chart:
version: "X.Y.Z" # https://gitlab.com/gitlab-org/cloud-native/gitlab-operator/-/blob/0.8.1/CHART_VERSIONS
values:
global:
hosts:
domain: example.com # use a real domain here
ingress:
configureCertmanager: true
certmanager-issuer:
email: youremail@example.com # use your real email address here如您所见,清单是由操作员应用程序监视的一个简单的“食谱”,它将根据上面的清单部署所有必需的GitLab资源。
根据我的经验,第一阶段负责保持操作员应用程序的安装并在其适当的版本发行版上运行等;第二阶段是保持“食谱”文件的同步并协调其内容,以防有人(例如,在Kubernetes集群中直接更改其值)。另一方面,操作员代理将根据“配方”清单来维护部署的资源。
一般来说,我认为Argos需要以类似的方式运行,因为在创建CRD定义它之前,您不能应用GitLab清单等等。
https://devops.stackexchange.com/questions/17341
复制相似问题