Я смотрю на развертывание Kubernetes поверх кластера CoreOS, но я думаю, что я столкнулся с разрывом сделки.Планировщик кубернетов поддерживает анти-сродство?
Если я использую только CoreOS и флот, я могу указать в файлах модулей, что я хочу, чтобы определенные службы не запускались на том же физическом компьютере, что и другие службы (анти-сродство). Это очень важно для высокой доступности. Но это не похоже, что у кубернетов есть эта функциональность.
В моем конкретном прецеденте мне нужно будет запустить несколько кластеров машин elasticsearch, которые всегда должны быть доступны. Если по какой-либо причине kubernetes решает запланировать все мои контейнеры из списка elasticsearch для данного кластера ES на одной машине (или даже большинство на одной машине), и эта машина умирает, тогда мой кластер elasticsearch умрет вместе с ним , Этого нельзя допустить.
Кажется, что могут быть рабочие места. Я мог бы настроить требования к ресурсам и спецификации машин таким образом, чтобы на каждый компьютер мог поместиться только один экземпляр elasticsearch. Или я мог бы, вероятно, использовать метки каким-то образом, чтобы указать, что определенные контейнеры elasticsearch должны идти на определенных машинах. Я мог бы просто предоставить больше машин, чем необходимо, и сделать больше узлов ES, чем необходимо, и предположить, что кубернеты будут распространять их достаточно, чтобы быть достаточно уверенными в высокой доступности.
Но все это кажется неудобным. Это гораздо более элегантно с точки зрения управления ресурсами, чтобы просто указать необходимое оборудование и анти-сродство, и пусть планировщик оптимизируется оттуда.
Так что Kubernetes поддерживает анти-сродство каким-то образом я не мог найти? Или кто-нибудь знает, скоро ли это произойдет?
Или я должен думать об этом по-другому? Должен ли я писать собственный планировщик?
Да, это довольно справедливая оценка ситуации. Планировщик по умолчанию [учитывает анти-сродство] (https: // github.com/GoogleCloudPlatform/kubernetes/blob/dbac18a909b09f32bbee792fc748a7f97a4079f6/pkg/scheduler/spreading.go # L99) в своем планировании, но не дает никаких гарантий, поскольку другие факторы, такие как ограничения ресурсов, могут перевесить желание анти-сродства. –