Scaling services on your Kubernetes cluster
To scale a service manually, you just need to target the deployment using the
kubectl scale command.
For example, this command will scale the main
socketcluster service to 3 replicas:
kubectl scale --replicas=3 deployment socketcluster
When you run this command, Kubernetes will automatically scale out your service in an optimum way across your cluster. The SCC state manager service will be made aware when new SocketCluster instances have been added and will automatically rebalance/migrate pub/sub channel shards across available instances in a safe way so users will not experience any downtime.
Note that while SCC makes sure that no messages are not lost when scaling up SocketCluster, we are still currently working on improving the downscaling feature of SCC to make it more reliable. So for now, scale up as much as you like but be careful when scaling down your services.