You are looking at the documentation of a prior release. To read the documentation of the latest release, please
visit here.
New to KubeDB? Please start here.
Hazelcast Vertical Scaling Overview
This guide will give you an overview on how KubeDB Ops Manager updates the resources(CPU and Memory) of the Hazelcast database.
Before You Begin
- You should be familiar with the following
KubeDBconcepts:
How Vertical Scaling Process Works
The following diagram shows how KubeDB Ops Manager updates the resources of the Hazelcast database. Open the image in a new tab to see the enlarged version.
The updating process consists of the following steps:
At first, a user creates a
HazelcastCustom Resource (CR).KubeDBCommunity operator watches theHazelcastCR.When the operator finds a
HazelcastCR, it creates required number ofStatefulSetsand related necessary stuff like appbinding, services, etc.Then, in order to update the resources of the
Hazelcastdatabase the user creates aHazelcastOpsRequestCR with the desired resources.KubeDBEnterprise operator watches theHazelcastOpsRequestCR.When it finds a
HazelcastOpsRequestCR, it halts theHazelcastobject which is referred from theHazelcastOpsRequest. So, theKubeDBCommunity operator doesn’t perform any operations on theHazelcastobject during the updating process.Then the
KubeDBEnterprise operator will update the resources of the related PetSets to match the desired resources defined in theHazelcastOpsRequestCR.After the successful update of the resources of the StatefulSet’s replicas, the
KubeDBEnterprise operator updates theHazelcastobject to reflect the updated state.After successfully updating of
Hazelcastobject, theKubeDBEnterprise operator resumes theHazelcastobject so that theKubeDBCommunity operator can resume its usual operations.
Vertical Scaling Modes
KubeDB actuates vertical scaling in one of two modes, selected through the spec.verticalScaling.mode
field of the HazelcastOpsRequest:
Restart(default): The operator patches thePetSetwith the new resources and restarts the Pods (one at a time, honoring the database’s failover rules) so they come back with the updated CPU and Memory. This works on every Kubernetes cluster.InPlace: The operator resizes the running containers in place using the Kubernetes in-place Pod resize (pods/resizesubresource) — no Pod restart, so scaling happens without downtime or failover. If a Node cannot accommodate the new resources (the resize is reportedInfeasible), the operator automatically falls back to theRestartbehavior for that Pod.
If spec.verticalScaling.mode is omitted, it defaults to Restart.
Note:
InPlacemode relies on the KubernetesInPlacePodVerticalScalingfeature gate, which is enabled by default from Kubernetes v1.33. On older clusters, or when the feature gate is disabled, useRestartmode.
In the next doc, we are going to show a step-by-step guide on vertical scaling of a Hazelcast database using vertical scaling operation.































