Gyakorlat – Méretezési objektum üzembe helyezése az Azure Kubernetes Service-fürtben
Ebben a gyakorlatban üzembe helyez egy skálázási objektum egyéni erőforrásdefinícióját (CRD) az AKS-fürtben. A méretezési objektum tartalmazza azt az eseményindítót, amely az üzembe helyezett alkalmazást a KEDA-hoz csatlakoztatja. Az AKS-ben való üzembe helyezés után a KEDA figyeli a Redis-listát, és felskáláz, ha a lista hossza meghaladja a megadott küszöbértéket, és leskáláz, ha a lista hossza a megadott küszöbérték alá esik.
ScaledObject
jegyzék áttekintése
scaleTargetRef
: Ez a szakasz azt ismerteti, hogy a KEDA mely számítási feladatokat figyeli meg.scaleTargetRef: apiVersion: apps/v1 # Optional. Default: apps/v1 kind: deployment # Optional. Default: Deployment name: contoso-microservice # Mandatory. Must be in the same namespace as the ScaledObject envSourceContainerName: contoso-microservice # Optional. Default: .spec.template.spec.containers[0]
minReplicaCount
ésmaxReplicaCount
: Ezek az attribútumok határozzák meg a KEDA által a skálázáshoz használt replikák tartományát. Ebben az esetben arra utasítja a KEDA-t, hogy skálázzon minimum nulláról legfeljebb 20-ra.minReplicaCount: 0 # Optional. Default: 0 maxReplicaCount: 20 # Optional. Default: 100
Feljegyzés
minReplicaCount: 0
Az üzembe helyezés alapértelmezett replikaszámát egyről nullára veszi. Ez akkor fordul elő, ha a szolgáltatás tétlen, és nem dolgoz fel eseményeket. Ebben az esetben, ha nincsenek elemek a Redis-listában, és a szolgáltatás tétlen marad, a KEDA nullára skálázható.advanced
: Ez a szakasz a KEDA speciális testreszabásával kapcsolatos. ArestoreToOriginalReplicaCount
KEDA arra utasítja, hogy a felskálázási események után adja vissza a replikák számát az eredeti értékre. Ebben az esetben afalse
skálázás értéke nulláraminReplicaCount
csökken.restoreToOriginalReplicaCount: false # Optional. Default: false horizontalPodAutoscalerConfig: # Optional. Section to specify HPA related options behavior: # Optional. Use to modify HPA's scaling behavior scaleDown: stabilizationWindowSeconds: 300 policies: - type: Percent value: 100 periodSeconds: 15
triggers
: Ez a szakaszscalers
azt észleli, hogy az objektumot aktiválni vagy inaktiválni kell-e, és egyéni metrikákat kell-e betáplálni bizonyos eseményforrásokhoz. AlistLength
metrika arra utasítja a KEDA-t, hogy skálázza fel a skálázást, ha tíz elem szerepel a listában.triggers: - type: redis metadata: # address: # Format must be host:port passwordFromEnv: REDIS_KEY listName: keda # Required listLength: "10" # Required enableTLS: "false" # optional databaseIndex: "0" # optional hostFromEnv: REDIS_HOST portFromEnv: REDIS_PORT
További információ: KEDA Scalers.
A ScaledObject
jegyzék létrehozása
A Cloud Shellben hozzon létre egy jegyzékfájlt a Kubernetes-telepítéshez
scaled-object.yaml
atouch
következő paranccsal:touch scaled-object.yaml
Nyissa meg a Cloud Shell integrált szerkesztőjét a
code .
paranccsal.Nyissa meg a
scaled-object.yaml
fájlt, és adja hozzá a YAML következő kódszakaszát:apiVersion: keda.sh/v1alpha1 kind: ScaledObject metadata: name: scaled-contoso spec: scaleTargetRef: apiVersion: apps/v1 # Optional. Default: apps/v1 kind: deployment # Optional. Default: Deployment name: contoso-microservice # Mandatory. Must be in the same namespace as the ScaledObject envSourceContainerName: contoso-microservice # Optional. Default: .spec.template.spec.containers[0] pollingInterval: 30 # Optional. Default: 30 seconds cooldownPeriod: 120 # Optional. Default: 300 seconds minReplicaCount: 0 # Optional. Default: 0 maxReplicaCount: 20 # Optional. Default: 100 advanced: # Optional. Section to specify advanced options restoreToOriginalReplicaCount: false # Optional. Default: false horizontalPodAutoscalerConfig: # Optional. Section to specify HPA related options behavior: # Optional. Use to modify HPA's scaling behavior scaleDown: stabilizationWindowSeconds: 300 policies: - type: Percent value: 100 periodSeconds: 15 triggers: - type: redis metadata: # address: # Format must be host:port passwordFromEnv: REDIS_KEY listName: keda # Required listLength: "10" # Required enableTLS: "false" # optional databaseIndex: "0" # optional hostFromEnv: REDIS_HOST portFromEnv: REDIS_PORT
Mentse a jegyzékfájlt (CTRL + S), és zárja be a szerkesztőt (CTRL + Q).
A jegyzékfájl alkalmazása
Helyezze üzembe a jegyzékfájlt a fürtben a
kubectl apply
következő paranccsal:kubectl apply -f ./scaled-object.yaml
A kimenetnek a következő példakimenethez hasonlóan kell kinéznie:
scaledobject.keda.sh/scaled-contoso created
Ellenőrizze a futó podok számát a
kubectl get pods
következő paranccsal:kubectl get pods
A kimenetnek a következő példakimenethez hasonlóan kell kinéznie, és egy pod fut:
NAME READY STATUS RESTARTS AGE contoso-microservice-794d98b5-4flvg 1/1 Running 0 2m1s
Rendszeres időközönként futtassa a
kubectl get pods
parancsot annak ellenőrzéséhez, hogy az üzembe helyezés a podok számát skálázja-e a munka hátralékának megfelelően.Feljegyzés
Ha telepítve van a Linux segédprogram óra, a
watch kubectl get pods
parancs segítségével megtekintheti a podok skálázását a Redis-listaelemek feldolgozásához. Ha nem, használhatja akubectl get pods -w
parancsot.A kimenetnek a következő példakimenethez hasonlóan kell kinéznie:
NAME READY STATUS RESTARTS AGE contoso-microservice-794d98b5-4flvg 1/1 Running 0 3m contoso-microservice-794d98b5-4jpxp 1/1 Running 0 3m contoso-microservice-794d98b5-4lw7b 1/1 Running 0 2m15s contoso-microservice-794d98b5-5fqj5 1/1 Running 0 3m contoso-microservice-794d98b5-5kdbw 1/1 Running 0 2m15s
Az összes elem feldolgozása és lejárata cooldownPeriod
után láthatja, hogy a podok száma nulla. Ennek az az oka, hogy a KEDA eltávolította az összes futó replikát, és nem maradt feldolgozandó elem.