在Pod在EKS上安排到每个Kubernetes节点之前,如何确保对它进行注释?

时间:2019-03-27 14:37:33

标签: kubernetes amazon-eks aws-eks cni

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

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

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

  • 默认情况下向所有节点添加NoSchedule异物
  • 部署可容忍异味的自定义控制器
  • 让控制器根据需要注释所有节点并删除污点

但是,如果上述是唯一的解决方法,那么对于托管服务而言,这将是一项很大的努力

1 个答案:

答案 0 :(得分:1)

怎么样:

  • 默认情况下向所有节点添加ENIConfigComplete: false污渍
  • 部署可容忍ENIConfigComplete: false的DaemonSet
  • DaemonSet在每个新节点上创建一个pod
  • 在节点上创建一些ENIConfig(bash脚本?)
  • ENIConfigComplete: true注释每个节点
  • DaemonSet不再容忍该节点,所以
  • 已将Pod从节点中移除。

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

Salesforce讨论了在新节点上配置磁盘的这种技术:

这将避免控制器进程长时间运行。