本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

SUSE Rancher Prime 代理

在 Rancher 管理的集群中部署了两种不同的代理资源:

有关 Rancher 服务器如何配置集群及其与集群的通信的概念概述,请参阅 架构

cattle-cluster-agent

cattle-cluster-agent 用于连接到 link:[Rancher 启动的 Kubernetes] 集群的 Kubernetes API。cattle-cluster-agent 是使用部署资源部署的。

rancher-system-agent

rancher-system-agent 是一个守护程序,用于在执行集群生命周期操作时管理 Rancher 配置的 RKE2/K3s Kubernetes 集群中的节点。集群操作的示例包括升级 Kubernetes 版本和创建/恢复 etcd 快照。rancher-system-agent 旨在将计划应用于 Rancher 系统,并可以支持本地和远程计划。

请求

cattle-cluster-agent pod 不定义默认的处理器和内存请求值。作为基线,我们建议将处理器请求设置为 50m,内存请求设置为 100Mi。然而,重要的是您要适当地评估您的用例,并为您的集群分配正确的资源以满足您的需求。

要通过 UI 配置 RKE2/K3s 集群的请求值:

  1. 当您 创建 或编辑现有集群时,请转到 集群配置

  2. 选择 集群代理 子部分。

  3. 根据需要使用 处理器保留内存保留 字段配置您的请求值。

如果您更喜欢通过 YAML 配置,请将以下代码片段添加到您的 RKE2/K3s 配置文件中:

spec:
  clusterAgentDeploymentCustomization:
    overrideResourceRequirements:
      requests:
        cpu: 50m
        memory: 100Mi

调度规则

cattle-cluster-agent 使用固定的容忍设置,或根据应用于控制平面节点的污点动态添加的容忍。该结构允许 基于污点的驱逐 正常应用于 cattle-cluster-agent

如果集群中存在控制平面节点,默认的容忍将被与控制平面节点上的污点匹配的容忍替换。默认的容忍设置如下所述。

组件 节点亲和性节点选择器条件 nodeSelector 容忍

cattle-cluster-agent

beta.kubernetes.io/os:NotIn:windows

none

*注意:*这些是默认的容忍设置,将被与应用于控制平面节点的污点匹配的容忍设置替换。

effect:NoSchedule
key:node-role.kubernetes.io/controlplane
value:true

effect:NoSchedule
key:node-role.kubernetes.io/control-plane
operator:Exists

effect:NoSchedule
key:node-role.kubernetes.io/master
operator:Exists

cattle-cluster-agent 部署采用了 preferredDuringSchedulingIgnoredDuringExecution 的优先调度规则,倾向于调度到带有 controlplane 标签的节点上。当集群中没有可见的控制平面节点时(通常在使用 来自托管 Kubernetes 提供商的集群 时是这种情况),您可以在节点上添加标签 cattle.io/cluster-agent=true,以优先将 cattle-cluster-agent pod 调度到该节点。

请参见 Kubernetes: 将 Pods 分配到节点 以获取有关调度规则的更多信息。

preferredDuringSchedulingIgnoredDuringExecution 配置如下表所示:

权重 表达式:

100

node-role.kubernetes.io/controlplane:In:"true"

100

node-role.kubernetes.io/control-plane:In:"true"

100

node-role.kubernetes.io/master:In:"true"

1

cattle.io/cluster-agent:In:"true"