с Circular Replication по схеме как указано в статье
https://altinity.com/blog/2018/5/10/circular-replication-cluster-topology-in-clickhouse
Дано: 3 ноды кубера, 3 шарда, каждый шард с 2 репликами
В yaml:
...
layout:
shardsCount: 3
replicasCount: 2
...
podDistribution:
- type: ShardAntiAffinity
- type: ReplicaAntiAffinity
- type: MaxNumberPerNode
number: 2
В результате не поднимается последний под (для shard3-replica1). Висит в Pending и говорит
3 node(s) didn't match pod affinity/anti-affinity rules, 3 node(s) didn't match pod anti-affinity rules
Есть старый issue с такой же проблемой
https://github.com/Altinity/clickhouse-operator/issues/589
Но использую те же параметры как в нем описано и проблема не уходит.
При этом если поднять ему 4 ноду кубера то все поды поднимаются без проблем. Хотя вроде как должен работать на 3 нодах как по мне.
Я создал уже issue но думаю может я где то туплю.
Мы вообще не рекомендуем использовать circular replication
Я понимаю что идеальный вариант одна нода - один шард/реплика, но все же непонятное поведение оператора. Вроде как по документации такая схема должна работать, но он почему то не берет "свободную" ноду (на которой нет реплики моего 3 шарда) и не разворачивает под на ней.
И для понимания, а чем плоха такая схема как указана в статье? Если кликхаус не сильно нагружен 90% времени, есть свободное место и т.д то по такой схеме получаем экономию по серверам но в то же время и резервирование данных.
Гораздо сложнее ее менеджить
Обсуждают сегодня