thinker0 opened a new issue, #3495:
URL: https://github.com/apache/kvrocks/issues/3495

   ## Summary
   
   In container/Mesos/Kubernetes-style environments only a single TCP port
   is exposed per data node; the implicit "cluster bus port = client + 10000"
   that Redis Cluster uses is not reserved by the scheduler and is not
   listening. `CLUSTERX SETNODES` then refuses any well-formed nodes string:
   
   ```
   > CLUSTERX SETNODES "<id> <host>:<port>@<bus> master - 0-5460" 100
   -ERR Invalid cluster node port
   ```
   
   Stripping `@<bus>` (i.e. passing only `<host>:<port>`) fails the same way.
   
   This blocks operators from using `SETNODES` as a manual recovery path
   when the controller-managed propagation falls behind (see related
   `apache/kvrocks-controller` issue).
   
   ## Expected
   
   When `cluster-announce-bus-port` is 0 (or absent from the nodes string),
   skip the bus-port reachability validation, or fall back to the client port.
   The bus port should not be a strict requirement when nodes are managed
   by an external controller that drives them solely over the client port.
   
   ## Versions
   
   - Apache Kvrocks 2.15.0
   
   ## Environment context
   
   - Aurora/Mesos dynamic-port scheduler — each task is given **one** port
     (the `kvrocks` port). Adding `+10000` for the bus port lands on a port
     the kernel has not bound and that the firewall has not allowed.
   - Same shape applies to Kubernetes Services that expose only one port,
     or Docker containers run with `-p <client>:<client>` only.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to