Skip to content

Commit 4349ca5

Browse files
committed
Update AKS README and KEDA README
1 parent b6b371c commit 4349ca5

2 files changed

Lines changed: 73 additions & 19 deletions

File tree

04-cloud/00-aks/01-mi-primer-aks/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ az aks install-cli
4343
Una vez finalice podrás recuperar el contexto para poder interactuar con este clúster:
4444

4545
```bash
46-
az aks get-credentials -g ${RESOURCE_GROUP} -n ${AKS_NAME}
46+
az aks get-credentials -g ${RESOURCE_GROUP} -n ${AKS_NAME} --overwrite-existing
4747
```
4848

4949
Para comprobar que puedes conectarte al mismo puedes hacerlo a partir de este momento con `kubectl` de la forma habitual:

04-cloud/00-aks/03-keda/README.md

Lines changed: 72 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,24 @@ Para este ejemplo lo que vamos a hacer es escalar la API de nuestro Tour of hero
2424
```bash
2525
STORAGE_ACCOUNT_NAME=storage$(uuidgen | cut -d '-' -f5 | tr '[A-Z]' '[a-z]')
2626

27-
STORAGE_CONNECTION_STRING=$(az storage account create \
27+
az storage account create \
2828
--name $STORAGE_ACCOUNT_NAME \
2929
--resource-group $RESOURCE_GROUP \
3030
--location $LOCATION \
3131
--sku Standard_LRS \
3232
--query connectionString \
33-
--output tsv)
33+
--output tsv
3434
```
3535

36+
Ahora recupera la cadena de conexión a la cuenta de almacenamiento:
37+
38+
```bash
39+
STORAGE_CONNECTION_STRING=$(az storage account show-connection-string \
40+
--name $STORAGE_ACCOUNT_NAME \
41+
--resource-group $RESOURCE_GROUP \
42+
--output tsv)
43+
``````
44+
3645
Una vez creada la cuenta de almacenamiento, vamos a crear una cola de mensajes:
3746

3847
```bash
@@ -44,25 +53,36 @@ az storage queue create \
4453

4554
Con ello, lo único que nos queda es asociar un `ScaledObject` a nuestro deployment de la API. Para ello, vamos a crear un fichero `ScaledObject` con el siguiente contenido:
4655

47-
```yaml
48-
apiVersion: keda.k8s.io/v1alpha1
56+
```bash
57+
kubectl apply -f - <<EOF
58+
apiVersion: keda.sh/v1alpha1
4959
kind: ScaledObject
5060
metadata:
51-
name: tour-of-heroes
52-
namespace: default
61+
name: azure-queue-scaledobject
62+
namespace: tour-of-heroes
5363
spec:
54-
scaleTargetRef:
55-
deploymentName: tour-of-heroes
56-
pollingInterval: 5
57-
cooldownPeriod: 30
58-
minReplicaCount: 1
59-
maxReplicaCount: 10
60-
triggers:
61-
- type: azure-queue
62-
metadata:
63-
queueName: $QUEUE_NAME
64-
connectionFromEnv: STORAGE_CONNECTION_STRING
65-
queueLength: "5"
64+
scaleTargetRef:
65+
name: tour-of-heroes-api
66+
triggers:
67+
- type: azure-queue
68+
metadata:
69+
# Required
70+
queueName: $QUEUE_NAME
71+
# Optional, required when pod identity is used
72+
accountName: $STORAGE_ACCOUNT_NAME
73+
# Optional: connection OR authenticationRef that defines connection
74+
connectionFromEnv: STORAGE_CONNECTION_STRING # Default: AzureWebJobsStorage. Reference to a connection string in deployment
75+
# or authenticationRef as defined below
76+
#
77+
# Optional
78+
queueLength: "5" # default 5
79+
EOF
80+
```
81+
82+
Puedes comprobar que el mismo se ha creado sin problemas con este comando:
83+
84+
```bash
85+
kubectl get scaledobject -n tour-of-heroes
6686
```
6787

6888
Para que el ScaledObject funcione debemos modificar el deployment de la API para que tenga la variable de entorno que almacena la cadena de conexión a la cuenta de almacenamiento:
@@ -73,5 +93,39 @@ kubectl set env deployment/tour-of-heroes-api \
7393
STORAGE_CONNECTION_STRING=$STORAGE_CONNECTION_STRING
7494
```
7595

96+
Comprueba también que la variable de entorno forma parte de tu deployment:
97+
98+
```bash
99+
kubectl describe deployment/tour-of-heroes-api \
100+
--namespace tour-of-heroes
101+
```
102+
103+
Ahora, **en un nuevo terminal**, vigila los pods de la API en un terminal:
104+
105+
```bash
106+
kubectl get pods -n tour-of-heroes -w
107+
```
108+
109+
Y en otro vamos a insertar en bucle unos cuantos mensajes en la cola de mensajes:
110+
111+
```bash
112+
while true; do
113+
az storage message put \
114+
--queue-name $QUEUE_NAME \
115+
--content "Hello world" \
116+
--account-name $STORAGE_ACCOUNT_NAME
117+
done
118+
```
119+
Si todo se ha configurado correctamente, verás como el número de pods de la API se incrementa en función del número de mensajes que se van insertando en la cola de mensajes.
120+
121+
Tadaaa! Ya tienes tu API escalando automáticamente en función de eventos externos.
122+
123+
Ahora elimina los mensajes de la cola de mensajes:
76124

125+
```bash
126+
az storage message clear \
127+
--queue-name $QUEUE_NAME \
128+
--account-name $STORAGE_ACCOUNT_NAME
129+
```
77130

131+
Y comprueba como los pods de la API se van eliminando.

0 commit comments

Comments
 (0)