How to consolidate multiple servers for CPU and Memory with Kubernetes Setup: I have 10 Photovoltaics based setup where IOT Gateway get data from sensors, devices and send to Kubernetes Cluster. K8S cluster exposed its ActiveMQ broker with NodePort.
Observation: AMQ has been scheduled on Node2 and i observed that CPU usage of this node is around 75%, As we are collecting lot of messages, But other nodes CPU usage is like 8% to 20%. If we put more load this CPU might reach to 100%.
Although we have CPU resource available but we cant use it, How can I do optimal usage of resources?
I read Apache Mesos and DC/OS but i think still its not possible to run a container workload which requests more cpu /memory than available on its single largest physical/virtul host.
Any thoughts in this regard?
Since Pod is running on single node it can use resources from this node only. And CPU/MEM can't be shared here. At least without special software for distributed computation.
In your case you should consider using ActiveMQ Clustering (https://activemq.apache.org/clustering). In that way you will be able to spread load across multiple k8s nodes with ActiveMQ pods running on them.
So use k8s Deployment + pod affinity to be sure pods will be scheduled to different nodes.