Azure AKS中Elastic Cloud Agent DaemonSet部署异常问题咨询
解决方案
方案一:强制将Elastic Cloud Agent部署到系统节点池
你当前的容忍度配置已覆盖CriticalAddonsOnly污点,但仍部署失败可从以下几点排查调整:
- 确认配置生效状态
修改Agent的YAML配置后,需执行kubectl apply -f <agent-config.yaml>应用变更,或通过kubectl rollout restart daemonset <agent-daemonset-name> -n <namespace>重启DaemonSet,确保新配置被加载。 - 添加系统节点池选择器
若要强制Agent仅在系统节点池运行,需给DaemonSpec添加nodeSelector,匹配AKS系统节点池默认标签node-role.kubernetes.io/system-node-pool:spec: template: spec: nodeSelector: node-role.kubernetes.io/system-node-pool: "" tolerations: - key: node-role.kubernetes.io/control-plane effect: NoSchedule - key: node-role.kubernetes.io/master effect: NoSchedule - key: CriticalAddonsOnly operator: "Exists" effect: NoSchedule - 检查节点其他污点
执行kubectl describe node <system-node-name>查看系统节点的完整污点列表,确保容忍度配置覆盖所有阻碍调度的污点。
方案二:排除Agent Pod在系统节点池部署
若无需Agent运行在系统节点池,可通过两种方式限制其仅部署到用户节点池:
- 节点选择器指定用户节点池
给DaemonSpec添加nodeSelector,匹配用户节点池的专属标签(假设用户节点池带有node-role.kubernetes.io/user-node-pool标签):spec: template: spec: nodeSelector: node-role.kubernetes.io/user-node-pool: "" - 节点反亲和性排除系统节点
通过nodeAffinity配置,拒绝调度到带有CriticalAddonsOnly污点的节点:spec: template: spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: CriticalAddonsOnly operator: DoesNotExist
内容的提问来源于stack exchange,提问作者Emanuele
相关产品推荐
相关产品推荐

