Importar um Volume no PVC
É possível importar volumes existentes do serviço de Block Storage da Magalu Cloud como objectos PV e PVC no cluster Kubernetes.
info
Funcionalidade somente disponível para a versão v3.
Clique aqui para mais informações sobre as versões de plataforma do produto de Kubernetes.
Primeiramente, crie um volume utilizando a CLI da MGC e anote o ID retornado:
mgc block-storage volumes create --name meu-volume --size 10 --availability-zone br-se1-a --type.name cloud_nvme10k
id: e2093fec-8361-44de-8a70-00a73c3c2008
Em seguida, crie um PersistentVolume (PV) para conectar com o Volume criado:
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: PersistentVolume
metadata:
name: meu-volume-importado
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: mgc-csi-magalu-sc
csi:
driver: block.csi.magalu.cloud
# ID do Volume retornado no comando acima
volumeHandle: e2093fec-8361-44de-8a70-00a73c3c2008
EOF
Crie o PersistentVolumeClaim (PVC) atrelado ao PV acima:
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: meu-pvc-volume-importado
spec:
# referencie o PV através do seu nome
volumeName: meu-volume-importado
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: mgc-csi-magalu-sc
EOF
Crie um Pod que irá utilizar o PVC:
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
name: pod-volume-importado
spec:
nodeSelector:
topology.kubernetes.io/zone: br-se1-a
volumes:
- name: volume-importado
persistentVolumeClaim:
claimName: meu-pvc-volume-importado
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
volumeMounts:
- mountPath: /usr/share/nginx/html
name: volume-importado
EOF
info
Note no manifesto acima que foi utilizado o parâmetro .spec.nodeSelector para restringir qual zona o Pod será criado. É necessário que o Pod seja alocado na mesma zona do Volume.