Skip to content

Commit 479769c

Browse files
committed
Add AKS manifests for database, backend, and frontend services
1 parent 693152b commit 479769c

15 files changed

Lines changed: 237 additions & 228 deletions

File tree

04-cloud/00-aks/00-mi-primer-aks/.gitignore

Lines changed: 0 additions & 37 deletions
This file was deleted.

04-cloud/00-aks/00-mi-primer-aks/00-crear-mi-primer-aks.sh

Lines changed: 0 additions & 52 deletions
This file was deleted.
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
## Prerequisitos
2+
3+
Para poder ejecutar los siguientes comando necesitas tener instalado Azure CLI como se comenta en el [README](../README.md) principal.
4+
5+
Una vez lo tengas, utiliza estas variables de entorno para configurar las tuyas propias si fuera necesario:
6+
7+
```bash
8+
RESOURCE_GROUP="aks-demo"
9+
AKS_NAME="lemoncode-cluster"
10+
LOCATION="uksouth"
11+
```
12+
13+
o si estás en Windows:
14+
15+
```pwsh
16+
$RESOURCE_GROUP="aks-demo"
17+
$AKS_NAME="lemoncode-cluster"
18+
$LOCATION="uksouth"
19+
```
20+
21+
Con estas estamos diciendo cuál sería el nombre del grupo de recursos donde voy a almacenar mi nuevo clúster de Kubernetes, el nombre que le voy a dar al mismo, así como la localización donde se desplegará este. Con estas ya puedo crear primeramente el grupo de recursos:
22+
23+
```bash
24+
az group create -n ${RESOURCE_GROUP} -l ${LOCATION}
25+
```
26+
27+
Ahora que ya tienes un sitio donde guardar recursos, puedes crear tu clúster de Kubernetes en él:
28+
29+
```bash
30+
az aks create -g ${RESOURCE_GROUP} \
31+
-n ${AKS_NAME} \
32+
--node-count 1 \
33+
--generate-ssh-keys
34+
```
35+
36+
Como puedes ver, crear un clúster de AKS es extremadamente sencillo. Obviamente se pueden añadir más opciones durante su creación, pero oye, para ser tu primer clúster es más que suficiente 😉
37+
38+
Una vez que finalice la creación lo siguiente que necesitas es instalar `kubectl` si no lo tienes todavía. Azure CLI también puede ayudarte en esta tarea usando este comando:
39+
40+
```bash
41+
az aks install-cli
42+
```
43+
Una vez finalice podrás recuperar el contexto para poder interactuar con este clúster:
44+
45+
```bash
46+
az aks get-credentials -g ${RESOURCE_GROUP} -n ${AKS_NAME}
47+
```
48+
49+
Para comprobar que puedes conectarte al mismo puedes hacerlo a partir de este momento con `kubectl` de la forma habitual:
50+
51+
```bash
52+
kubectl get nodes
53+
```
54+
55+
¡Hurra 🎉! Ya tienes un clúster totalmente funcional en el que desplegar tus contenedores. Para esta clase vamos a utilizar mi Tour Of Heroes para ver qué pinta tiene en este tipo de entornos.
56+
57+
Todos los manifiestos que necesitas para el mismo puedes encontrarlos en la carpeta [manifests](manifests/) dentro de esta misma unidad. Para poder aplicar todos los archivos del tirón basta con ejecutar este comando:
58+
59+
```bash
60+
kubectl apply -f manifests/ --recursive
61+
``````

04-cloud/00-aks/00-mi-primer-aks/main.tf

Lines changed: 0 additions & 26 deletions
This file was deleted.
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
labels:
5+
app: tour-of-heroes-api
6+
name: tour-of-heroes-api
7+
spec:
8+
replicas: 3
9+
revisionHistoryLimit: 1
10+
selector:
11+
matchLabels:
12+
app: tour-of-heroes-api
13+
template:
14+
metadata:
15+
labels:
16+
app: tour-of-heroes-api
17+
spec:
18+
containers:
19+
- env:
20+
- name: ConnectionStrings__DefaultConnection
21+
valueFrom:
22+
secretKeyRef:
23+
key: password
24+
name: sqlserver-connection-string
25+
- name: APPLICATIONINSIGHTS_CONNECTION_STRING
26+
valueFrom:
27+
secretKeyRef:
28+
key: connection_string
29+
name: app-insights-secret
30+
image: ghcr.io/0gis0/tour-of-heroes-dotnet-api/tour-of-heroes-api-insights:0705dfd
31+
name: tour-of-heroes-api
32+
ports:
33+
- containerPort: 5000
34+
name: web
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
apiVersion: v1
2+
kind: Secret
3+
metadata:
4+
name: sqlserver-connection-string
5+
type: Opaque
6+
data:
7+
password: U2VydmVyPXRvdXItb2YtaGVyb2VzLXNxbCwxNDMzO0luaXRpYWwgQ2F0YWxvZz1oZXJvZXM7UGVyc2lzdCBTZWN1cml0eSBJbmZvPUZhbHNlO1VzZXIgSUQ9c2E7UGFzc3dvcmQ9WW91clN0cm9uZyFQYXNzdzByZDtFbmNyeXB0PUZhbHNl
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
labels:
5+
app: tour-of-heroes-api
6+
name: tour-of-heroes-api
7+
spec:
8+
type: LoadBalancer
9+
ports:
10+
- name: web
11+
port: 80
12+
targetPort: 5000
13+
selector:
14+
app: tour-of-heroes-api
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
labels:
5+
app: tour-of-heroes-sql
6+
name: tour-of-heroes-sql
7+
spec:
8+
selector:
9+
matchLabels:
10+
app: tour-of-heroes-sql
11+
template:
12+
metadata:
13+
labels:
14+
app: tour-of-heroes-sql
15+
spec:
16+
terminationGracePeriodSeconds: 30
17+
hostname: mssqlinst
18+
securityContext:
19+
fsGroup: 10001
20+
containers:
21+
- image: mcr.microsoft.com/mssql/server:latest
22+
# - image: mcr.microsoft.com/azure-sql-edge
23+
name: sqlserver
24+
ports:
25+
- containerPort: 1433
26+
volumeMounts:
27+
- mountPath: /var/opt/mssql
28+
name: sqlserver-data
29+
env:
30+
- name: ACCEPT_EULA
31+
value: "Y"
32+
- name: SA_PASSWORD
33+
valueFrom:
34+
secretKeyRef:
35+
name: mssql
36+
key: SA_PASSWORD
37+
- name: MSSQL_PID
38+
value: "Developer"
39+
volumes:
40+
- name: sqlserver-data
41+
persistentVolumeClaim:
42+
claimName: sql-pvc
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
apiVersion: v1
2+
kind: PersistentVolumeClaim
3+
metadata:
4+
name: sql-pvc
5+
spec:
6+
storageClassName: managed-csi
7+
accessModes:
8+
- ReadWriteOnce
9+
resources:
10+
requests:
11+
storage: 8Gi
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
apiVersion: v1
2+
data:
3+
SA_PASSWORD: WW91clN0cm9uZyFQYXNzdzByZA==
4+
kind: Secret
5+
metadata:
6+
name: mssql

0 commit comments

Comments
 (0)