Criando Armazenamento de Sistema de Arquivos Persistente com um Sistema de Arquivos Existente
No Compute Cloud@Customer, você pode provisionar uma PVC em um sistema de arquivos existente.
Este procedimento cria um ponto de acesso NFS, um sistema de arquivos e uma exportação do sistema de arquivos. Em seguida, usa o comando kubectl
para criar a classe de armazenamento, o volume persistente e a reivindicação de volume persistente.
-
Crie um ponto de montagem NFS.
Para obter instruções, consulte Criando um Ponto de Acesso NFS.
Importante
Para garantir que o ponto de acesso NFS possa ser acessado por nós de trabalho, crie o ponto de acesso NFS na sub-rede que tem a sub-rede de trabalho descrita em Criando Recursos de Rede do OKE. Certifique-se de que a porta TCP 2049 para o servidor NFS esteja aberta nessa sub-rede.
Observe o OCID do conjunto de exportação e o OCID do ponto de acesso NFS. O OCID do conjunto de exportação é necessário para criar a exportação do sistema de arquivos, e o OCID do ponto de acesso NFS é necessário para criar a classe de armazenamento em etapas posteriores.
Você só pode ter um ponto de acesso NFS por VCN.
-
Crie um sistema de arquivos.
Para obter instruções, consulte Creating a File System.
Você só pode criar um sistema de arquivos por VCN. Você pode ter várias classes de armazenamento, volumes persistentes e reivindicações de volume persistentes por cluster, e todos eles compartilham um NFS.
-
Crie uma exportação do sistema de arquivos para associá-lo ao sistema de arquivos.
Para obter instruções, consulte Criando uma Exportação para um Sistema de Arquivos.
-
Especifique o OCID do conjunto de exportação na saída da criação do ponto de acesso NFS.
-
Especifique o CIDR mais longo (rede menor) na faixa de CIDR especificada quando você criou a sub-rede "trabalhador", conforme descrito em Criando Recursos de Rede do OKE.
Anote o caminho de exportação e o endereço IP do ponto de acesso NFS.
-
-
Crie uma classe de armazenamento, especificando o OCID do ponto de acesso NFS com base na saída da etapa de criação do ponto de acesso NFS.
$ kubectl create -f sc.yaml
Veja a seguir o conteúdo do arquivo
sc.yaml
:kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: pca-fss provisioner: fss.csi.oraclecloud.com parameters: mntTargetId: ocid1.mounttarget.unique_ID
Os valores das propriedades
apiVersion
eprovisioner
são padrão. O valor do nome da classe de armazenamento na seção de metadados é especificado pelo usuário. Você pode criar mais de uma classe de armazenamento por ponto de acesso NFS, e o nome da classe de armazenamento é usado nas etapas a seguir para criar um volume persistente e uma reivindicação de volume persistente.Use o subcomando
get sc
para exibir informações sobre a nova classe de armazenamento:$ kubectl get sc
-
Crie um volume persistente, especificando o nome da classe de armazenamento, o caminho de exportação e o endereço IP do ponto de acesso NFS.
O nome da classe de armazenamento está nos metadados do arquivo
sc.yaml
na etapa anterior. O caminho de exportação e o endereço IP do ponto de acesso NFS são saída da etapa de criação de exportação do sistema de arquivos. Consulte a Etapa 3 acima.$ kubectl create -f pv.yaml
Veja a seguir o conteúdo do arquivo
pv.yaml
:apiVersion: v1 kind: PersistentVolume metadata: name: fss-pv spec: storageClassName: pca-fss capacity: storage: 200Gi accessModes: - ReadWriteMany mountOptions: - nosuid nfs: server: mount_target_IP_address path: "/export/unique_ID" readOnly: false
O nome do volume persistente na seção
metadata
é especificado pelo usuário. Você pode ter mais de um volume persistente em uma classe de armazenamento.Na seção
nfs
, o valorserver
é o endereço IP do ponto de acesso NFS e o valorpath
é o caminho de exportação.Use o subcomando
get pv
para exibir informações sobre o novo volume persistente:$ kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE fss-pv 200Gi RWX Retain Bound default/fss-pvc pca-fss 20h
-
Crie uma reivindicação de volume persistente, especificando o nome do volume persistente e o nome da classe de armazenamento.
O nome do volume persistente e o nome da classe de armazenamento estão na saída do comando
get pv
.Aguarde que o status da PVC seja Vinculado antes de usar este armazenamento.
kubectl create -f pvc.yaml
Veja a seguir o conteúdo do arquivo
pvc.yaml
:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: fss-pvc spec: storageClassName: pca-fss accessModes: - ReadWriteMany resources: requests: storage: 200Gi volumeName: fss-pv
O nome da reivindicação de volume persistente na seção
metadata
é especificado pelo usuário. Você pode ter mais de uma reivindicação de volume persistente em um volume persistente.O valor da propriedade
accessModes
deve serReadWriteMany
.O valor da propriedade
storage
deve ser de pelo menos 50 gigabytes.Execute o seguinte comando para exibir informações sobre a nova reivindicação de volume persistente:
$ kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS AGE fss-pvc Bound fss-pv 200Gi RWX pca-fss 2h
-
Use a PVC ao criar outros objetos, como pods.
Por exemplo, você pode criar um novo pod com base na seguinte definição de pod, que instrui o sistema a usar a PVC
fss-pvc
como volumenginx
, que é montado pelo pod em/persistent-storage
:apiVersion: v1 kind: Pod metadata: name: fss-dynamic-app spec: containers: - name: nginx image: nginx:latest ports: - name: http containerPort: 80 volumeMounts: - name: persistent-storage mountPath: /usr/share/nginx/html volumes: - name: persistent-storage persistentVolumeClaim: claimName: fss-pvc
Execute o seguinte comando para verificar se o pod está usando a nova PVC:
$ kubectl describe pod fss-dynamic-app