Quantcast
Channel: Planeta Código
Viewing all articles
Browse latest Browse all 2699

Una sinfonía en C#: Ejecutar Wordpress + MySQL en Kubernetes paso a paso 2, agregando persistencia

$
0
0

En el post anterior vimos cómo ejecutar Wordpress (Wordpress + MySQL) en Kubernetes, del modo más básico, solo con dos Pods separados. En este post vamos a poner la persistencia en elementos externos (volúmenes) para que los datos tengan un ciclo de vida separado de los Pods.

Mejorando la persistencia

Evidentemente la persistencia se hace dentro de los containers y esto no es ideal. Vamos a agregar algo de storage. Primero creamos el Persisten volumen, como yo estoy en Docker en Windows será del tipo local-storage En este caso este tipo no permite Dynamic Provisioning, así que no hace falta StorageClass Entonces creamos dos PV

kind:PersistentVolumemetadata:name:wp-pvspec:capacity:storage:1GivolumeMode:FilesystemaccessModes:-ReadWriteOncestorageClassName:local-storagelocal:path:/run/desktop/mnt/host/c/k8svolume/wp#windows pathnodeAffinity:required:nodeSelectorTerms:-matchExpressions:-key:kubernetes.io/hostnameoperator:Invalues:-docker-desktop
apiVersion:v1kind:PersistentVolumemetadata:name:mysql-pvspec:capacity:storage:1GivolumeMode:FilesystemaccessModes:-ReadWriteOncestorageClassName:local-storagelocal:path:/run/desktop/mnt/host/c/k8svolume/mysqlnodeAffinity:required:nodeSelectorTerms:-matchExpressions:-key:kubernetes.io/hostnameoperator:Invalues:-docker-desktop

Creamos un persisten volume claim para cada deployment

apiVersion:v1kind:PersistentVolumeClaimmetadata:name:mysql-pvcspec:accessModes:-ReadWriteOncestorageClassName:local-storageresources:requests:storage:1Gi
apiVersion:v1kind:PersistentVolumeClaimmetadata:name:mywordpress-pvcspec:accessModes:-ReadWriteOncestorageClassName:local-storageresources:requests:storage:1Gi

Y por último modificamos los deployments de Wordpress y MySQL para declarar y montar el los claims

apiVersion:apps/v1kind:Deploymentmetadata:name:my-dblabels:app:my-dbspec:replicas:1selector:matchLabels:app:my-dbtemplate:metadata:labels:app:my-dbspec:containers:-name:my-dbimage:mysql:5.7ports:-containerPort:80volumeMounts:-mountPath:/var/lib/mysqlname:my-db-pvenv:-name:MYSQL_ROOT_PASSWORDvalue:"my-secret-pw"-name:MYSQL_DATABASEvalue:"my-db"-name:MYSQL_USERvalue:"my-user"-name:MYSQL_PASSWORDvalue:"my-secret-pw"volumes:-name:my-db-pvpersistentVolumeClaim:claimName:mysql-pvc
apiVersion:apps/v1kind:Deploymentmetadata:name:my-wordpresslabels:app:my-wordpressspec:replicas:1selector:matchLabels:app:my-wordpresstemplate:metadata:labels:app:my-wordpressspec:containers:-name:my-wordpressimage:wordpress:latestvolumeMounts:-name:my-wp-pvmountPath:/var/www/htmlports:-containerPort:80env:-name:WORDPRESS_DB_PASSWORDvalue:"my-secret-pw"-name:WORDPRESS_DB_USERvalue:"my-user"-name:WORDPRESS_DB_NAMEvalue:"my-db"-name:WORDPRESS_DB_HOSTvalue:"mysql"volumes:-name:my-wp-pvpersistentVolumeClaim:claimName:mywordpress-pvc

Y ya está, en el siguiente post mejoraremos la configuración. Nos leemos en la próxima


Viewing all articles
Browse latest Browse all 2699