5.12. 在基础架构节点上运行 GitOps control plane 工作负载

您可以使用基础架构节点防止额外的账单成本。

您可以使用 OpenShift Container Platform 在 Red Hat OpenShift GitOps Operator 安装的基础架构节点上运行特定的工作负载。默认情况下,它由 Red Hat OpenShift GitOps Operator 安装的工作负载包括在 openshift-gitops 命名空间中,包括该命名空间中的默认 Argo CD 实例。

注意

任何安装到用户命名空间的其他 Argo CD 实例都无权在 Infrastructure 节点上运行。

5.12.1. 将 GitOps 工作负载移到基础架构节点

您可以将 Red Hat OpenShift GitOps 安装的默认工作负载移到基础架构节点。可移动的工作负载有:

  • kam deployment
  • 集群部署(后端服务)
  • openshift-gitops-applicationset-controller 部署
  • openshift-gitops-dex-server deployment
  • openshift-gitops-redis 部署
  • openshift-gitops-redis-ha-haproxy 部署
  • openshift-gitops-repo-sever 部署
  • openshift-gitops-server 部署
  • openshift-gitops-application-controller statefulset
  • openshift-gitops-redis-server statefulset

流程

  1. 运行以下命令,将现有节点标记为基础架构:

    $ oc label node <node-name> node-role.kubernetes.io/infra=
  2. 编辑 GitOpsService 自定义资源(CR)以添加基础架构节点选择器:

    $ oc edit gitopsservice -n openshift-gitops
  3. GitOpsService CR 文件中,将 runOnInfra 字段添加到 spec 部分,并将其设置为 true。此字段将 openshift-gitops 命名空间中的工作负载移到基础架构节点:

    apiVersion: pipelines.openshift.io/v1alpha1
    kind: GitopsService
    metadata:
      name: cluster
    spec:
      runOnInfra: true
  4. 可选:在基础架构节点上应用污点并隔离工作负载,并防止其他工作负载调度到这些节点上。

    $ oc adm taint nodes -l node-role.kubernetes.io/infra
    infra=reserved:NoSchedule infra=reserved:NoExecute
  5. 可选: 如果您将污点应用到节点,您可以在 GitOpsService CR 中添加容限:

    spec:
      runOnInfra: true
      tolerations:
      - effect: NoSchedule
        key: infra
        value: reserved
      - effect: NoExecute
        key: infra
        value: reserved

要验证工作负载是否已调度到 Red Hat OpenShift GitOps 命名空间中的基础架构节点上,请点击任何 pod 名称,并确保已添加了 Node selectorTolerations

注意

在默认 Argo CD CR 中手动添加节点选择器Tolerations 都会被 GitOpsService CR 中的切换和容限覆盖。