【问题标题】:How can I ensure I annotate each Kubernetes node before Pods are scheduled to it on EKS?如何确保在 EKS 上安排 Pod 之前对每个 Kubernetes 节点进行注释?
【发布时间】:2019-08-18 04:16:26
【问题描述】:

我正在尝试使用CNI Custom Networking on EKS 来确保 Pod IP 是从备用子集中分配的(以防止我的集群节点正在运行的子网中的 IP 匮乏)。为此,我需要创建一些 ENIConfigs 并注释每个节点。

如何确保在为每个节点安排任何 Pod 之前对其进行注释,以确保没有从我的节点运行的子网中分配 Pod IP?

编辑:到目前为止我能想到的唯一解决方案是:

  • 默认为所有节点添加 NoSchedule 污点
  • 部署一个可以容忍污点的自定义控制器
  • 让控制器根据需要注释所有节点并移除污点

但是,如果上述方法是托管服务需要大量工作的唯一解决方法

【问题讨论】:

    标签: kubernetes amazon-eks cni


    【解决方案1】:

    怎么样:

    • 默认为所有节点添加ENIConfigComplete: false taint
    • 部署容忍ENIConfigComplete: false的DaemonSet
    • DaemonSet 在每个新节点上创建一个 pod
    • 在节点上创建一些 ENIConfigs(bash 脚本??)
    • ENIConfigComplete: true注释每个节点
    • DaemonSet 不再容忍节点,所以
    • Pod 已从节点中移除。

    DaemonSet 将确保正确设置每个新节点。

    Salesforce 谈到了在他们的新节点上配置磁盘的这种技术:

    这样可以避免长时间运行的控制器进程。

    【讨论】:

    • 是的,它可以工作并且可以避免控制器(ENIConfigs 也可以提前创建)——我唯一不确定的是如何让所有其他 Pod 容忍这种污染所以他们可以安排?所以我要做的编辑是删除污点
    猜你喜欢
    • 2023-02-06
    • 1970-01-01
    • 1970-01-01
    • 2023-01-15
    • 1970-01-01
    • 2019-09-17
    • 2019-08-02
    • 2020-03-17
    • 1970-01-01
    相关资源
    最近更新 更多