Oi Davi,
Onde realmente fica persistido depende da configuração do volume. Repare que o volume tem o nome e esse nome se repete na seção volumes
que possui aquele persistentVolumeClaim
:
apiVersion: apps/v1beta1
kind: StatefulSet
//... configurações omitidas
spec:
containers:
- name: container-mysql
image: mysql:5.7.19
ports:
- containerPort: 3306
env:
- name: MYSQL_DATABASE
value: "loja"
- name: MYSQL_USER
value: "root"
- name: MYSQL_ALLOW_EMPTY_PASSWORD
value: "1"
volumeMounts:
- name: volume-mysql
mountPath: /var/lib/mysql
volumes:
- name: volume-mysql
persistentVolumeClaim:
claimName: configuracao-mysql
O claim por sua vez define detalhes sobre a permissão e tamanho. Onde realmente fica essa pasta no cluster o Kubernetes abstrai por vc.
Existem varias outros tipos de volumes. No exemplo abaixo (copiado da documentação) é usado EBS Volume da Amazon (sem ter um claim):
apiVersion: v1
kind: Pod
metadata:
name: test-ebs
spec:
containers:
- image: k8s.gcr.io/test-webserver
name: test-container
volumeMounts:
- mountPath: /test-ebs
name: test-volume
volumes:
- name: test-volume
# This AWS EBS volume must already exist.
awsElasticBlockStore:
volumeID: <volume-id>
fsType: ext4
Ou seja, nesse exemplo o volume será um Elastic Block Store na nuvem da Amazon.
Tudo bem?
abs,
Nico