Como acessar compartilhamentos de arquivos de clusters do Google Kubernetes Engine

Nesta página, mostramos como acessar um compartilhamento de arquivos do Filestore de um cluster do GKE criando um volume permanente e uma declaração de volume permanente.

O cluster precisa estar na mesma rede VPC e no mesmo projeto do Google Cloud que a instância do Filestore, a menos que a instância do Filestore esteja em uma rede VPC compartilhada. Atualmente, as instâncias do Filestore só podem ser criadas em uma rede VPC compartilhada do projeto host. Para detalhes, consulte Problemas conhecidos.

Criar um volume permanente

  1. Instale a ferramenta de linha de comando kubectl:

    gcloud components install kubectl &&
    gcloud container clusters get-credentials cluster-name
    

    em que cluster-name é o nome do cluster.

  2. Crie uma especificação de volume permanente do Kubernetes. Este é um arquivo .yaml que fornece informações sobre como acessar o compartilhamento de arquivos do Filestore. A especificação é semelhante ao exemplo a seguir:

    apiVersion: v1
    kind: PersistentVolume
    metadata:
     name: fileserver
    spec:
     capacity:
       storage: storage
     accessModes:
     - ReadWriteMany
     nfs:
       path: /file-share
       server: ip-address
    

    onde:

    • storage é o tamanho do compartilhamento de arquivos na instância do Filestore. Especifique o valor storage em uma das unidades compatíveis descritas em quantidades de recursos, como 2T.
    • file-share é o nome do compartilhamento de arquivos na instância do Filestore. É possível ver o nome do compartilhamento de arquivos de uma instância em qualquer uma destas fontes:

      • A página de instâncias do Filestore no Console do Cloud.

      Acessar a página de instâncias do Filestore

    • ip-address é o endereço IP da instância do Filestore. Veja o endereço IP de uma instância de qualquer uma das seguintes fontes:

    Para mais informações sobre as outras configurações, consulte Volumes permanentes

  3. Implante a especificação de volume permanente:

    kubectl create -f /path/to/persistent-volume-file-name.yaml
    

    em que persistent-volume-file-name é o nome do arquivo de especificação de volume permanente do Kubernetes criado na etapa anterior.

Criar uma reivindicação de volume permanente

  1. Crie uma especificação de reivindicação de volume permanente do Kubernetes. Esse é um arquivo .yaml que permite que um pod do Kubernetes acesse os recursos de armazenamento de um volume permanente. A especificação é semelhante ao exemplo a seguir:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
     name: fileserver-claim
    spec:
     accessModes:
     - ReadWriteMany
     storageClassName: ""
     volumeName: fileserver
     resources:
       requests:
         storage: storage
    

    em que storage é o tamanho da declaração de volume permanente que você quer disponibilizar para os objetos do Kubernetes.

    Especifique o valor storage em uma das unidades compatíveis descritas em Quantidades de recursos. O valor especificado precisa ser igual ou menor que o armazenamento especificado para o volume permanente.

    Para mais informações sobre as outras configurações, consulte Reivindicações de volume permanente.

  2. Implante a especificação de declaração de volume permanente:

    kubectl create -f /path/to/persistent-volume-claim-file-name.yaml
    

    em que persistent-volume-file-name é o nome do arquivo de especificação de volume permanente do Kubernetes criado na etapa anterior.

Consumir a reivindicação de volume permanente

  1. Crie uma especificação para um objeto do Kubernetes que consuma uma declaração de volume permanente, como um pod do Kubernetes. Essa especificação é um arquivo .yaml que descreve o objeto, incluindo informações sobre quaisquer recursos de armazenamento disponíveis para ele. Uma especificação de pod é semelhante ao exemplo a seguir:

    apiVersion: v1
    kind: Pod
    metadata:
     name: my-pod
    spec:
     containers:
     - name: container-name
       image: image-name
       volumeMounts:
       - mountPath: mount-path
         name: mypvc
     volumes:
     - name: mypvc
       persistentVolumeClaim:
         claimName: claim-name
         readOnly: false
    

    onde:

    • container-name é o nome de um contêiner no pod.
    • image-name é a tag da imagem do Docker que o contêiner executa.
    • mount-path é o caminho para ativar a declaração de volume permanente, por exemplo, /mnt/fileserver.
    • claim-name é o nome de uma reivindicação de valor permanente implantada. Neste exemplo, é fileserver-claim.

    Para ver mais informações sobre as outras configurações, consulte Pods.

  2. Implante a especificação do pod:

    kubectl create -f /path/to/pod-file-name.yaml
    

    em que pod-file-name é o nome da especificação do pod que você criou na etapa anterior.

A seguir

Receba informações sobre a instância do Filestore.