1
resposta

Digital Ocean PersistentVolumeClaim

Criei um deployment com 3 replicas php-apache para acessar uma aplicação em Laravel. Como criar PersistentVolumeClaim para a pasta "storage" do laravel? pois percebi que storageClassName for do-block-storage não pode ter mais do que uma réplica.

1 resposta

Olá, Mauro.

Tudo bem?

O storageClassName do-block-storage, que você está usando, provavelmente está tentando criar um volume de bloco, que não pode ser compartilhado entre várias réplicas de um pod.

Uma solução para o seu problema seria tentar usar um tipo de armazenamento que suporte o acesso ReadWriteMany (RWX), que permite que o volume seja lido e escrito por muitos nós. No caso da Digital Ocean, você pode usar o storageClassName nfs-client.

Aqui está um exemplo de como você pode definir seu PersistentVolumeClaim:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: laravel-storage-pvc
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
  storageClassName: nfs-client

Este PersistentVolumeClaim solicita um volume que suporte o acesso ReadWriteMany e usa o storageClassName nfs-client. Você pode ajustar o tamanho do armazenamento conforme necessário.

Depois de criar o PersistentVolumeClaim, você pode montá-lo na pasta "storage" do seu pod Laravel da seguinte maneira:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: laravel-deployment
spec:
  replicas: 3
  template:
    spec:
      containers:
      - name: laravel-container
        image: php-apache
        volumeMounts:
        - name: laravel-storage
          mountPath: /path/to/laravel/storage
      volumes:
      - name: laravel-storage
        persistentVolumeClaim:
          claimName: laravel-storage-pvc

Neste exemplo, o volume laravel-storage é montado na pasta "storage" do Laravel no seu container.

Espero ter entendido e conseguido ajudar. Qualquer dúvida manda aqui de novo. Bons estudos.