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 配置請求值:
- RKE
- RKE2/K3s
如果你更喜歡透過 YAML 配置,請將以下程式碼片段新增到你的配置檔案中:
- RKE
- RKE2/K3s
cluster_agent_deployment_customization:
override_resource_requirements:
requests:
cpu: 50m
memory: 100Mi
spec:
clusterAgentDeploymentCustomization:
overrideResourceRequirements:
requests:
cpu: 50m
memory: 100Mi
調度規則
cattle-cluster-agent 使用固定的容忍度集合,或基於套用於控制平面節點的污點動態新增的容忍度。此結構允許基於污點的驅逐對 cattle-cluster-agent 正常工作。
如果叢集中存在控制平面節點,預設容忍度將被與控制平面節點上的污點相匹配的容忍度替換。預設容忍度集合如下所述。
| 元件 | nodeAffinity nodeSelectorTerms | nodeSelector | 容忍度 |
|---|---|---|---|
cattle-cluster-agent | beta.kubernetes.io/os:NotIn:windows | none | 注意: 這些是預設容忍度,將被與套用於 controlplane 節點的污點相匹配的容忍度替換。effect:NoSchedulekey:node-role.kubernetes.io/controlplanevalue:trueeffect:NoSchedulekey:node-role.kubernetes.io/control-planeoperator:Existseffect:NoSchedulekey:node-role.kubernetes.io/masteroperator:Exists |
cattle-node-agent | beta.kubernetes.io/os:NotIn:windows | none | operator:Exists |
cattle-cluster-agent Deployment 具有使用 preferredDuringSchedulingIgnoredDuringExecution 的首選調度規則,傾向於調度到具有 controlplane 節點的節點上。當叢集中沒有可見的 controlplane 節點時(這通常是使用來自託管 Kubernetes 提供者的叢集時的情況),你可以在節點上新增標籤 cattle.io/cluster-agent=true 以優先將 cattle-cluster-agent pod 調度到該節點。
請參閱 Kubernetes:將 Pod 分配給節點以了解有關調度規則的更多資訊。
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" |