This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.第 4 章 GitOps
4.1. Red Hat OpenShift GitOps 发行注记 复制链接链接已复制到粘贴板!
Red Hat OpenShift GitOps 是为云原生应用程序实施持续部署的一种声明方法。当应用程序部署到不同环境中的不同集群时,Red Hat OpenShift GitOps 可确保应用程序的一致性,如开发、临时和生产环境。Red Hat OpenShift GitOps 可帮助您自动执行以下任务:
- 确保集群具有类似的配置、监控和存储状态
- 从已知状态恢复或重新创建集群
- 对多个 OpenShift Container Platform 集群应用或恢复配置更改
- 将模板配置与不同环境关联
- 在集群间(从调试到生产阶段)推广应用程序。
如需了解 Red Hat OpenShift GitOps 的概述,请参阅了解 OpenShift GitOps。
4.1.1. 使开源包含更多 复制链接链接已复制到粘贴板!
红帽承诺替换我们的代码、文档和网页属性中存在问题的语言。我们从这四个术语开始: master、slave、blacklist 和 whitelist。这些更改将在即将发行的几个发行本中逐渐实施。详情请查看 Red Hat CTO Chris Wright 信息。
4.1.2. Red Hat OpenShift GitOps 1.2.1 发行注记 复制链接链接已复制到粘贴板!
Red Hat OpenShift GitOps 1.2.1 现在包括在 OpenShift Container Platform 4.7 和 4.8 中。
4.1.2.1. 支持列表 复制链接链接已复制到粘贴板!
这个版本中的一些功能当前还处于技术预览状态。它们并不适用于在生产环境中使用。
在下表中,功能被标记为以下状态:
- TP: 技术预览
- GA: 正式发行
请参阅红帽门户网站中关于对技术预览功能支持范围的信息:
功能 | Red Hat OpenShift GitOps 1.2.1 |
---|---|
Argo CD | GA |
Argo CD ApplicationSet | TP |
Red Hat OpenShift GitOps Application Manager (kam) | TP |
4.1.2.2. 修复的问题 复制链接链接已复制到粘贴板!
在当前发行版本中解决了以下问题:
-
在以前的版本中,应用程序控制器启动时会在应用程序控制器中观察到大量内存高峰。现在,应用程序控制器的
--kubectl-parallelism-limit
标志默认设置为 10,但可以通过在 Argo CD CR 规格中为.spec.controller.kubeParallelismLimit
指定数字来覆盖这个值。GITOPS-1255 -
最新的 Triggers API 会导致在使用
kam bootstrap
命令时因为 kustomization.yaml 中的重复条目导致 Kubernetes 构建失败。Pipelines 和 Tekton 会在 v0.24.2 和 v0.14.2 中分别更新来解决这个问题。GITOPS-1273 - 现在,当从源命名空间中删除 Argo CD 实例时,持久化 RBAC 角色和绑定会自动从目标命名空间中移除。GITOPS-1228
- 在以前的版本中,当将 Argo CD 实例部署到命名空间中时,Argo CD 实例会将"managed-by"标签更改为自己的命名空间。在这个版本中,命名空间会取消标记,同时确保为命名空间创建和删除所需的 RBAC 角色和绑定。GITOPS-1247
- 在以前的版本中,Argo CD 工作负载中的默认资源请求限制(特别是 repo-server 和应用程序控制器)被发现非常严格的限制。现有资源配额现已被删除,在仓库服务器中默认内存限值已增加到 1024M。请注意,这个更改只会影响新的安装;现有的 Argo CD 实例工作负载不会受到影响。GITOPS-1274
4.1.3. Red Hat OpenShift GitOps 1.2 发行注记 复制链接链接已复制到粘贴板!
Red Hat OpenShift GitOps 1.2 现在包括在 OpenShift Container Platform 4.7 和 4.8 中。
4.1.3.1. 支持列表 复制链接链接已复制到粘贴板!
这个版本中的一些功能当前还处于技术预览状态。它们并不适用于在生产环境中使用。
在下表中,功能被标记为以下状态:
- TP: 技术预览
- GA: 正式发行
请参阅红帽门户网站中关于对技术预览功能支持范围的信息:
功能 | Red Hat OpenShift GitOps 1.2 |
---|---|
Argo CD | GA |
Argo CD ApplicationSet | TP |
Red Hat OpenShift GitOps Application Manager (kam) | TP |
4.1.3.2. 新功能 复制链接链接已复制到粘贴板!
除了包括修复和稳定性改进的信息外,以下小节突出介绍了 Red Hat OpenShift GitOps 1.2 中的新内容。
-
如果您没有对 openshift-gitops 命名空间的读写访问权限,现在可以使用 GitOps Operator 中的
DISABLE_DEFAULT_ARGOCD_INSTANCE
环境变量,并将值设置为TRUE
以防止默认的 Argo CD 实例从openshift-gitops
命名空间启动。 -
现在,在 Argo CD 工作负载中配置了资源请求和限制。在
openshift-gitops
命名空间中启用资源配额。因此,手动在 openshift-gitops 命名空间中部署的带外工作负载必须使用资源请求和限制进行配置,并且可能需要增加资源配额。 Argo CD 身份验证现已与红帽 SSO 集成,并在集群中自动配置 OpenShift 4 身份提供商。此功能默认为禁用。要启用红帽 SSO,请在
ArgoCD
CR 中添加 SSO 配置,如下所示。目前,keycloak
是唯一受支持的提供程序。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 现在,您可以使用路由标签定义主机名来支持路由器分片。现在,支持在
server
(argocd server)、grafana
和prometheus
路由上设置标签。要在路由上设置标签,请在ArgoCD
CR 中的服务器的路由配置下添加标签
。在 argocd 服务器上设置标签的
ArgoCD
CR YAML 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
GitOps Operator 现在会自动向 Argo CD 实例授予权限,以通过应用标签来管理目标命名空间中的资源。用户可以使用标签
argocd.argoproj.io/managed-by: <source-namespace>
标记目标命名空间,其中source-namespace
是部署 argocd 实例的命名空间。
4.1.3.3. 修复的问题 复制链接链接已复制到粘贴板!
在当前发行版本中解决了以下问题:
-
在以前的版本中,如果用户在 openshift-gitops 命名空间中创建了由默认集群实例管理的 Argo CD 实例,则负责新 Argo CD 实例的应用程序会停留在
OutOfSync
状态。现在,通过添加对集群 secret 的所有者引用解决了这个问题。GITOPS-1025
4.1.3.4. 已知问题 复制链接链接已复制到粘贴板!
Red Hat OpenShift GitOps 1.2 中已知的问题。
-
当从源命名空间中删除 Argo CD 实例时,目标命名空间中的
argocd.argoproj.io/managed-by
标签不会被删除。GITOPS-1228 Red Hat OpenShift GitOps 1.2 中的 openshift-gitops 命名空间中启用了资源配额。这会影响手动部署的带外工作负载,以及
openshift-gitops
命名空间中默认 Argo CD 实例部署的工作负载。当您从 Red Hat OpenShift GitOpsv1.1.2
升级到v1.2
时,此类工作负载必须使用资源请求和限制来配置。如果存在额外的工作负载,则必须增加 openshift-gitops 命名空间中的资源配额。openshift-gitops
命名空间的当前资源配额。Expand 资源 Requests Limits CPU
6688m
13750m
内存
4544Mi
9070Mi
您可以使用以下命令来更新 CPU 限值。
oc patch resourcequota openshift-gitops-compute-resources -n openshift-gitops --type='json' -p='[{"op": "replace", "path": "/spec/hard/limits.cpu", "value":"9000m"}]'
$ oc patch resourcequota openshift-gitops-compute-resources -n openshift-gitops --type='json' -p='[{"op": "replace", "path": "/spec/hard/limits.cpu", "value":"9000m"}]'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以使用以下命令来更新 CPU 请求。
oc patch resourcequota openshift-gitops-compute-resources -n openshift-gitops --type='json' -p='[{"op": "replace", "path": "/spec/hard/cpu", "value":"7000m"}]
$ oc patch resourcequota openshift-gitops-compute-resources -n openshift-gitops --type='json' -p='[{"op": "replace", "path": "/spec/hard/cpu", "value":"7000m"}]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以替换以上命令中的路径从
cpu
到memory
来更新内存。
4.1.4. Red Hat OpenShift GitOps 1.1 发行注记 复制链接链接已复制到粘贴板!
Red Hat OpenShift GitOps 1.1 现在包括在 OpenShift Container Platform 4.7 中。
4.1.4.1. 支持列表 复制链接链接已复制到粘贴板!
这个版本中的一些功能当前还处于技术预览状态。它们并不适用于在生产环境中使用。
在下表中,功能被标记为以下状态:
- TP: 技术预览
- GA: 正式发行
请参阅红帽门户网站中关于对技术预览功能支持范围的信息:
功能 | Red Hat OpenShift GitOps 1.1 |
---|---|
Argo CD | GA |
Argo CD ApplicationSet | TP |
Red Hat OpenShift GitOps Application Manager (kam) | TP |
4.1.4.2. 新功能 复制链接链接已复制到粘贴板!
除了包括修复和稳定性改进的信息外,以下小节突出介绍了 Red Hat OpenShift GitOps 1.1 中的新内容:
-
现在添加了
ApplicationSet
功能(技术预览)。ApplicationSet
功能可在大量集群和 monorepos 中管理 Argo CD 应用程序时实现自动化和更大的灵活性。它还可在多租户 Kubernetes 集群中实现自助服务。 - Argo CD 现在与集群日志记录堆栈以及 OpenShift Container Platform Monitoring 和 Alerting 功能集成。
- Argo CD auth 现在与 OpenShift Container Platform 集成。
- Argo CD 应用程序控制器现在支持横向扩展。
- Argo CD Redis 服务器现在支持高可用性(HA)。
4.1.4.3. 修复的问题 复制链接链接已复制到粘贴板!
在当前发行版本中解决了以下问题:
- 在以前的版本中,Red Hat OpenShift GitOps 在带有活跃全局代理设置的代理服务器设置中无法正常工作。这个问题已被解决。现在,Red Hat OpenShift GitOps Operator 会使用 pod 的完全限定域名(FQDN)配置 Argo CD,以启用组件间的通信。GITOPS-703
-
Red Hat OpenShift GitOps 后端依赖于 Red Hat OpenShift GitOps URL 中的
?ref=
查询参数来发出 API 调用。在以前的版本中,这个参数没有从 URL 中读取,从而导致后端始终考虑默认引用。这个问题已被解决。Red Hat OpenShift GitOps 后端现在从 Red Hat OpenShift GitOps URL 提取引用查询参数,且仅在未提供输入引用时使用默认引用。GITOPS-817 -
在以前的版本中,Red Hat OpenShift GitOps 后端无法找到有效的 GitLab 存储库。这是因为 Red Hat OpenShift GitOps 后端检查
main
作为分支引用,而不是 GitLab 存储库中的master
。这个问题现已解决。GITOPS-768 -
OpenShift Container Platform Web 控制台的 Developer 视角中的 Environments 页面现在显示应用程序列表和环境数量。本页还显示 Argo CD 链接,它将您定向到列出所有应用程序的 Argo CD Applications 页面。Argo CD Applications 页面带有 LABELS (如
app.kubernetes.io/name=appName
),它只帮助您过滤您选择的应用程序。GITOPS-544
4.1.4.4. 已知问题 复制链接链接已复制到粘贴板!
Red Hat OpenShift GitOps 1.1 中已知的问题:
- Red Hat OpenShift GitOps 不支持 Helm v2 和 ksonnet。
- 在断开连接的集群中不支持 Red Hat SSO(RH SSO)Operator。因此,断开连接的集群中不支持 Red Hat OpenShift GitOps Operator 和 RH SSO 集成。
- 当您从 OpenShift Container Platform web 控制台删除 Argo CD 应用程序时,Argo CD 应用程序会从用户界面中删除,但部署仍存在于集群中。作为临时解决方案,请从 Argo CD 控制台删除 Argo CD 应用程序。GITOPS-830
4.1.4.5. 有问题的更改 复制链接链接已复制到粘贴板!
4.1.4.5.1. 从 Red Hat OpenShift GitOps v1.0.1 升级 复制链接链接已复制到粘贴板!
当您从 Red Hat OpenShift GitOps v1.0.1
升级到 v1.1
时,Red Hat OpenShift GitOps Operator 会将 openshift-gitops
命名空间中创建的默认 Argo CD 实例从 argocd-cluster
重命名到 openshift-gitops
。
这是一个有问题的变化,需要在升级前手动执行以下步骤:
进入 OpenShift Container Platform web 控制台,将
openshift-gitops
命名空间中的argocd-cm.yml
配置映射文件的内容复制到本地文件中。内容可能类似以下示例:argocd 配置映射 YAML 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
删除默认的
argocd-cluster
实例。 -
编辑新的
argocd-cm.yml
配置映射文件,手动恢复整个data
部分。 将配置映射条目中的 URL 值替换为新实例名称
openshift-gitops
。例如,在上例中将 URL 值替换为以下 URL 值:url: >- https://openshift-gitops-server-openshift-gitops.apps.dev-svc-4.7-041614.devcluster.openshift.com
url: >- https://openshift-gitops-server-openshift-gitops.apps.dev-svc-4.7-041614.devcluster.openshift.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 登录到 Argo CD 集群,验证之前的配置是否存在。