5.9. 在基础架构节点上运行 GitOps control plane 工作负载
您可以使用基础架构节点防止额外的账单成本。
您可以使用 OpenShift Container Platform 在 Red Hat OpenShift GitOps Operator 安装的基础架构节点上运行特定的工作负载。默认情况下,它由 Red Hat OpenShift GitOps Operator 安装的工作负载包括在 openshift-gitops
命名空间中,包括该命名空间中的默认 Argo CD 实例。
任何安装到用户命名空间的其他 Argo CD 实例都无权在 Infrastructure 节点上运行。
5.9.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
流程
运行以下命令,将现有节点标记为基础架构:
$ oc label node <node-name> node-role.kubernetes.io/infra=
编辑
GitOpsService
自定义资源(CR)以添加基础架构节点选择器:$ oc edit gitopsservice -n openshift-gitops
在
GitOpsService
CR 文件中,将runOnInfra
字段添加到spec
部分,并将其设置为true
。此字段将openshift-gitops
命名空间中的工作负载移到基础架构节点:apiVersion: pipelines.openshift.io/v1alpha1 kind: GitopsService metadata: name: cluster spec: runOnInfra: true
可选:在基础架构节点上应用污点并隔离工作负载,并防止其他工作负载调度到这些节点上。
$ oc adm taint nodes -l node-role.kubernetes.io/infra infra=reserved:NoSchedule infra=reserved:NoExecute
可选: 如果您将污点应用到节点,您可以在
GitOpsService
CR 中添加容限:spec: runOnInfra: true tolerations: - effect: NoSchedule key: infra value: reserved - effect: NoExecute key: infra value: reserved
要验证工作负载是否已调度到 Red Hat OpenShift GitOps 命名空间中的基础架构节点上,请点击任何 pod 名称,并确保已添加了 Node selector 和 Tolerations。
在默认 Argo CD CR 中手动添加节点选择器和 Tolerations 都会被 GitOpsService
CR 中的切换和容限覆盖。