跳至主要内容

Rancher Agents

在 Rancher 管理的叢集上部署了兩種不同的 agent 資源:

有關 Rancher 伺服器如何佈建叢集並與其通訊的概念概述,請參閱架構。

cattle-cluster-agent​

cattle-cluster-agent 用於連接到 Rancher 啟動的 Kubernetes 叢集的 Kubernetes API。cattle-cluster-agent 使用 Deployment 資源部署。

cattle-node-agent​

cattle-node-agent 用於在執行叢集操作時與 Rancher 啟動的 Kubernetes 叢集中的節點進行互動。叢集操作的範例包括升級 Kubernetes 版本和建立/還原 etcd 快照。cattle-node-agent 使用 DaemonSet 資源部署,以確保它在每個節點上執行。當 cattle-cluster-agent 不可用時,cattle-node-agent 用作連接到 Rancher 啟動的 Kubernetes 叢集的 Kubernetes API 的後備選項。

請求​

cattle-cluster-agent pod 不會定義預設的 CPU 和記憶體請求值。作為基準,我們建議將 CPU 請求設定為 50m,記憶體請求設定為 100Mi。但是,重要的是你要適當評估你的使用案例,並為你的需求為叢集分配正確的資源。

要透過 UI 配置請求值:

  1. 當你建立或編輯現有叢集時,前往 Cluster Options 部分。
  2. 展開 Cluster Configuration 子部分。
  3. 根據需要使用 CPU Requests 和 Memory Requests 欄位配置你的請求值。

如果你更喜歡透過 YAML 配置,請將以下程式碼片段新增到你的配置檔案中:

cluster_agent_deployment_customization:
override_resource_requirements:
requests:
cpu: 50m
memory: 100Mi

調度規則​

cattle-cluster-agent 使用固定的容忍度集合,或基於套用於控制平面節點的污點動態新增的容忍度。此結構允許基於污點的驅逐對 cattle-cluster-agent 正常工作。

如果叢集中存在控制平面節點,預設容忍度將被與控制平面節點上的污點相匹配的容忍度替換。預設容忍度集合如下所述。

元件nodeAffinity nodeSelectorTermsnodeSelector容忍度
cattle-cluster-agentbeta.kubernetes.io/os:NotIn:windowsnone注意: 這些是預設容忍度,將被與套用於 controlplane 節點的污點相匹配的容忍度替換。

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-node-agentbeta.kubernetes.io/os:NotIn:windowsnoneoperator:Exists

cattle-cluster-agent Deployment 具有使用 preferredDuringSchedulingIgnoredDuringExecution 的首選調度規則,傾向於調度到具有 controlplane 節點的節點上。當叢集中沒有可見的 controlplane 節點時(這通常是使用來自託管 Kubernetes 提供者的叢集時的情況),你可以在節點上新增標籤 cattle.io/cluster-agent=true 以優先將 cattle-cluster-agent pod 調度到該節點。

請參閱 Kubernetes:將 Pod 分配給節點以了解有關調度規則的更多資訊。

preferredDuringSchedulingIgnoredDuringExecution 配置如下表所示:

權重表達式
100node-role.kubernetes.io/controlplane:In:"true"
100node-role.kubernetes.io/control-plane:In:"true"
100node-role.kubernetes.io/master:In:"true"
1cattle.io/cluster-agent:In:"true"