kubectl run --image=mysql --dry-run -o yaml > mysql.yml
total, el que vamos a pegar, ya tiene todo resuelto. Nos fatla ver las diferencias. Para esto, como queremos que sea persistente, lo vamos a hacer via NFS, corriendo en el master.
Lo que necesitamos es:
A) Crear el PVC
B) Crear EL PV
C) Crear el MYSQL
vamos por el A
apiVersion: v1
kind: PersistentVolume
metadata:
name: lab-vol
spec:
capacity:
storage: 10Gi
volumeMode: Filesystem
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Recycle
nfs:
path: /var/nfs/general
server: qqmelo1c.mylabserver.com
readOnly: false
Defini un nfs server. Recordar que es importantisimo que tengamos andando el nfs-common en ambos workers.
Ahora el PVC.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
y ahora el servicio persistente de mysql
aca defino un servicio, que luego lo cambiare, con su respectivo almacenamiento persistente
kind: Service
metadata:
name: mysql
spec:
ports:
- port: 3306
selector:
app: mysql
clusterIP: None
---
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
name: mysql
spec:
selector:
matchLabels:
app: mysql
strategy:
type: Recreate
template:
metadata:
labels:
app: mysql
spec:
containers:
- image: mysql:5.6
name: mysql
env:
# Use secret in real usage
- name: MYSQL_ROOT_PASSWORD
value: password
ports:
- containerPort: 3306
name: mysql
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: nfs-pvc