-
Notifications
You must be signed in to change notification settings - Fork 54
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add documentation for defining HorizontalPodAutoscaler #2133
- Loading branch information
1 parent
233f3d5
commit 692368c
Showing
4 changed files
with
64 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
ifdef::context[:parent-context: {context}] | ||
[id='auto-scaling'] | ||
:context: scaling | ||
= Auto Scaling | ||
|
||
[role="_abstract"] | ||
Kubernetes includes the `HorizontalPodAutoscaler` which allows StatefulSets or Deployments to be automatically scaled up or | ||
down based upon specified metrics. The Infinispan CR exposes the `.status.scale` sub-resource, which enables `HorizontalPodAutoscaler` | ||
resources to target the Infinispan CR. | ||
|
||
Before defining a `HorizontalPodAutoscaler` configuration, consider the types of {brandname} caches that you define. Distributed | ||
and Replicated caches have very different scaling requirements, so defining a `HorizontalPodAutoscaler` for server's running | ||
a combination of these cache types may not be advantageous. For example, defining a `HorizontalPodAutoscaler` that scales | ||
when memory usage reaches a certain percentage will allow overall cache capacity to be increased when defining Distributed | ||
caches as cache entries are spread across pods, however it will not work with replicated cache as every pod hosts all cache | ||
entries. Conversely, configuring a `HorizontalPodAutoscaler` based upon CPU usage will be more beneficial for clusters | ||
with replicated cache as every pod contains all cache entries and so distributing read requests across additional nodes | ||
will allow a greater number of requests to be processed simultaneously. | ||
|
||
include::{topics}/proc_configuring_auto_scaling.adoc[leveloffset=+1] | ||
|
||
IMPORTANT: HorizontalPodAutoscaler should be removed when upgrading a {brandname} cluster, as the automatic scaling will | ||
cause the upgrade process to enter unexpected state, as the Operator needs to scale the cluster down to 0 pods. | ||
|
||
// Restore the parent context. | ||
ifdef::parent-context[:context: {parent-context}] | ||
ifndef::parent-context[:!context:] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
18 changes: 18 additions & 0 deletions
18
documentation/asciidoc/topics/proc_configuring_auto_scaling.adoc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
[id='configuring_auto-scaling-{context}'] | ||
= Configuring HorizontalPodAutoscaler | ||
|
||
[role="_abstract"] | ||
Create a HorizontalPodAutoScaler resource that targets your Infinispan CR. | ||
|
||
.Procedure | ||
|
||
. Define a `HorizontalPodAutoscaler` resource in the same namespace as your `Infinispan` CR | ||
+ | ||
[source,options="nowrap",subs=attributes+] | ||
---- | ||
include::yaml/horizontal_pod_autoscaler.yaml[] | ||
---- | ||
+ | ||
<1> The name of your `Infinispan` CR | ||
|
||
NOTE: If using metric resource of type `cpu` or `memory`, you must configure request/limits for this resource in your `Infinispan` CR. |
18 changes: 18 additions & 0 deletions
18
documentation/asciidoc/topics/yaml/horizontal_pod_autoscaler.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
apiVersion: autoscaling/v2 | ||
kind: HorizontalPodAutoscaler | ||
metadata: | ||
name: infinispan-auto | ||
spec: | ||
scaleTargetRef: | ||
apiVersion: infinispan.org/v1 | ||
kind: Infinispan | ||
name: example # <1> | ||
minReplicas: 1 | ||
maxReplicas: 10 | ||
metrics: | ||
- type: Resource | ||
resource: | ||
name: cpu | ||
target: | ||
type: Utilization | ||
averageUtilization: 50 |