не так делаю. Имеется CH установленный при помощи clickhouse-operator, в конфине clickhouse.yaml:
jsx
apiVersion: "clickhouse.altinity.com/v1"
kind: "ClickHouseInstallation"
spec:
configuration:
zookeeper:
nodes:
- host: zookeeper
zookeeper 3 ноды, установлен из [https://github.com/Altinity/clickhouse-operator/blob/master/deploy/zookeeper/quick-start-persistent-volume/zookeeper-3-nodes.yaml](https://github.com/Altinity/clickhouse-operator/blob/master/deploy/zookeeper/quick-start-persistent-volume/zookeeper-3-nodes.yaml)
Проблема - CH не переживает смерти пода zookeeper-0. Я ожидал, что смерть одного пода никак не должна влиять на CH, ансамбль должен продолжать работать. Но текущий insert отваливается, replicated таблицы переходят в read-only. Если убить zookeeper-1 или zookeeper-2 - все как ожидается, продолжает работать.
Лог в zookeeper-1 при смерти zookeeper-0:
jsx
2022-10-03 08:05:25,649 [myid:] - WARN [QuorumConnectionThread-[myid=2]-3:o.a.z.s.q.QuorumCnxManager@401] - Cannot open channel to 1 at election address zookeeper-0.zookeepers.ch-exp.svc.cluster.local/172.27.158.96:3888
java.net.NoRouteToHostException: No route to host (Host unreachable)
at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
at java.base/java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.base/java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.base/java.net.SocksSocketImpl.connect(Unknown Source)
at java.base/java.net.Socket.connect(Unknown Source)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.initiateConnection(QuorumCnxManager.java:384)
at org.apache.zookeeper.server.quorum.QuorumCnxManager$QuorumConnectionReqThread.run(QuorumCnxManager.java:458)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
2022-10-03 08:05:28,412 [myid:] - WARN [NIOWorkerThread-1:o.a.z.s.NIOServerCnxn@380] - Close of session 0x0
java.io.IOException: ZooKeeperServer not running
at org.apache.zookeeper.server.NIOServerCnxn.readLength(NIOServerCnxn.java:554)
at org.apache.zookeeper.server.NIOServerCnxn.doIO(NIOServerCnxn.java:339)
at org.apache.zookeeper.server.NIOServerCnxnFactory$IOWorkRequest.doWork(NIOServerCnxnFactory.java:508)
at org.apache.zookeeper.server.WorkerService$ScheduledWorkRequest.run(WorkerService.java:153)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Что я делаю не так?
есть проблема там называется weight quorum это сделано для того чтобы можно было скейлить из 1 zk в 3 zk и обратно если вот этот фрагмент убрать https://github.com/Altinity/clickhouse-operator/blob/master/deploy/zookeeper/quick-start-persistent-volume/zookeeper-3-nodes.yaml#L178-L184 и сразу 3 ноды ставить и после этого не пытаться реслейлить ... то все норм должно быть
Обсуждают сегодня