У меня возникла ситуация, когда я хотел бы запустить два кластера Kubernetes в одной подсети общего доступа AWS VPC. Кажется, это работает нормально, за исключением того, что плагин Weave CNI, похоже, обнаруживает узлы в другом кластере. Эти узлы отклоняются с пометкой «IP-выделение было засеяно разными одноранговыми узлами», что имеет смысл. Это разные кластеры. Есть ли способ предотвратить поиск машин в альтернативных кластерах? Когда я делаю weave --local status ipam
и weave --local status targets
, я вижу ожидаемые цели и IPAM для каждого кластера.
Стручки плетения находятся в бесконечном цикле соединения и отклонения узлов из альтернативных кластеров. Это поглощает процессор и влияет на кластеры. Если я запустил kube-utils
внутри модуля плетения, он вернет правильные узлы для каждого кластера. Кажется, кубернетам следует знать, какие узлы доступны, могу я просто использовать одноранговые узлы, о которых знает кластер.
После дальнейшего исследования я считаю, что проблема в том, что я увеличил и уменьшил масштаб машин для обоих кластеров. В этом процессе IP-адреса повторно использовались от одного кластера к другому. Например, кластер A уменьшил размер узла. Weave продолжает попытки подключения к уже потерянному узлу. Кластер B масштабируется и использует IP, который изначально использовался в кластере A. Weave находит узел. Это затем заставило Weave «обнаружить» другие узлы кластера. Как только он обнаруживает один узел из другого кластера, он обнаруживает все узлы.
Я обновился с 2.4.0 до 2.4.1, чтобы посмотреть, не устраняют ли некоторые исправления, связанные с повторным использованием IPS, эту проблему.