Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2024-09-10 GMT+08:00

Criação de um PersistentVolume

Função

Essa API é usada para criar um PersistentVolume associado ao armazenamento em nuvem (por exemplo, EVS, SFS e OBS). Esta API foi preterida. Em vez disso, use a API PV do Kubernetes correspondente.

O formato do URL de gerenciamento de armazenamento é https://{clusterid}.Endpoint/uri. No URL, {clusterid} indica o ID do cluster e uri indica o caminho do recurso, ou seja, o caminho para acesso à API. Se https://Endpoint/uri for usado, o parâmetro X-Cluster-ID deve ser especificado no cabeçalho da solicitação.

URI

POST /api/v1/cloudpersistentvolumes

Solicitação

Tabela 1 Descrição do parâmetro do cabeçalho da solicitação

Parâmetro

Obrigatório

Tipo

Descrição

Content-Type

Sim

String

Tipo de corpo da mensagem (formato).

Valores possíveis:

  • application/json;charset=utf-8
  • application/json

X-Auth-Token

Sim

String

As solicitações para chamar uma API podem ser autenticadas usando um token ou AK/SK. Se a autenticação baseada em token for usada, esse parâmetro é obrigatório e deve ser definido como um token de usuário. Para obter detalhes sobre como obter um token de usuário, consulte Autenticação.

Comprimento máximo: 16.384 caracteres

X-Cluster-ID

Não

String

ID do cluster. Este parâmetro é obrigatório quando o formato de URL https://Endpoint/uri é usado. Para obter detalhes sobre como obter o valor, consulte Como obter parâmetros no URI da API.

Tabela 2 Parâmetros do corpo da solicitação

Parâmetro

Obrigatório

Tipo

Descrição

apiVersion

Sim

String

Versão da API. O valor é fixado em v1.

Valor padrão: v1

kind

Sim

String

Tipo de API. O valor é fixado em PersistentVolume.

Valor padrão: PersistentVolume

metadata

Sim

PersistentVolumeMetadata object

Informações de metadados do PersistentVolume.

spec

Sim

PersistentVolumeSpec object

Especificações do PersistentVolume.

status

Não

PersistentVolumeStatus object

Informações de status do PersistentVolume.

Tabela 3 PersistentVolumeMetadata

Parâmetro

Obrigatório

Tipo

Descrição

name

Sim

String

Nome do PV. Digite de 1 a 253 caracteres começando e terminando com uma letra ou dígito. Use somente letras minúsculas, dígitos, hifens (-) e pontos finais (.). Nomes do PV devem ser exclusivos em um namespace.

labels

Não

Map<String,String>

Rótulos do PV, no formato de pares chave-valor.

  • Key: digite de 1 a 63 caracteres começando com uma letra ou dígito. Apenas letras, dígitos, hifens (-), sublinhados (_) e pontos (.) são permitidos. Um subdomínio do DNS pode ser prefixo para uma chave e conter um máximo de 253 caracteres. Exemplo de subdomínio do DNS: example.com/my-key
  • Value: o valor pode ser deixado em branco ou de 1 a 63 caracteres, começando com uma letra ou dígito. Somente letras, dígitos, hifens (-), sublinhados (_) e pontos (.) são permitidos na cadeia de caracteres.

Exemplo de rótulo: "foo": "bar"

Tabela 4 PersistentVolumeSpec

Parâmetro

Obrigatório

Tipo

Descrição

flexVolume

Sim

FlexVolume object

O plug-in de armazenamento do Kubernetes FlexVolume.

persistentVolumeReclaimPolicy

Não

String

Política de recuperação do PV. Valores possíveis:

  • Retain: a política de recuperação Retain permite a recuperação manual do recurso. Quando a PVC é excluída, o PV ainda existe e o volume é considerado "released".
  • Recycle: a política de recuperação Recycle executa uma limpeza básica (rm -rf / thevolume / *) no volume e o torna disponível novamente para uma nova recuperação.
  • Delete: para plug-ins de volume compatíveis com a política de recuperação Delete, a exclusão remove o objeto do PV do Kubernetes, bem como o ativo de armazenamento associado na infraestrutura externa. Volumes que foram provisionados dinamicamente herdam a política de recuperação de sua StorageClass que, por padrão, é Delete.

accessModes

Sim

Array of strings

Modo de acesso do PersistentVolume.

  • ReadWriteOnce: o volume pode ser montado como read-write por um único nó.
    NOTA:

    Esta função é suportada apenas quando a versão do cluster é v1.13.10 e a versão do storage-driver é 1.0.19.

  • ReadOnlyMany: o volume pode ser montado como read-only por muitos nós.
  • ReadWriteMany: o volume pode ser montado como read-write por muitos nós.
Tabela 5 FlexVolume

Parâmetro

Obrigatório

Tipo

Descrição

driver

Sim

String

Nome do plug-in de armazenamento do FlexVolume. Defina este parâmetro com base no tipo de volume de armazenamento.

  • huawei.com/fuxivol (EVS)
  • huawei.com/fuxinfs (SFS)
  • huawei.com/fuxiobs (OBS)
  • huawei.com/fuxiefs (SFS Turbo)

fsType

Sim

String

Tipo de sistema de arquivos. Defina este parâmetro com base no tipo de volume de armazenamento.

options

Sim

Options object

Itens de configuração do FlexVolume.

Tabela 6 Options

Parâmetro

Obrigatório

Tipo

Descrição

fsType

Sim

String

Tipo de sistema de arquivos. Defina este parâmetro com base no tipo de volume de armazenamento.

  • ext4 (EVS)
  • nfs (SFS)
  • obs (OBS)
  • efs (SFS Turbo)

region

Sim

String

Região onde o armazenamento em nuvem está localizado.

volumeID

Sim

String

UUID do armazenamento em nuvem. Se o armazenamento em nuvem for um bucket do OBS, defina esse parâmetro como o nome do bucket.

storageType

Sim

String

Tipo de volume de armazenamento em nuvem.

  • bs (EVS)
  • nfs (SFS)
  • obs (OBS)
  • efs (SFS Turbo)
Tabela 7 PersistentVolumeStatus

Parâmetro

Obrigatório

Tipo

Descrição

accessModes

Não

Array of strings

Modo de acesso do PersistentVolume.

phase

Não

String

Status do PV. Valores possíveis:

  • Available: o volume não está vinculado a nenhuma PVC.
  • Bound: o PV foi vinculado a uma PVC.
  • Released: a PVC vinculada ao PV foi excluída, mas o PV não foi disponibilizado novamente para uma nova recuperação no cluster.
  • Failed: falhou na recuperação automática do volume.

Resposta

Código de status: 201

Tabela 8 Parâmetros do corpo de resposta

Parâmetro

Tipo

Descrição

apiVersion

String

Versão da API. O valor é fixado em v1.

Valor padrão: v1

kind

String

Tipo de API. O valor é fixado em PersistentVolume.

Valor padrão: PersistentVolume

Metadados

PersistentVolumeMetadata object

Informações de metadados do PersistentVolume.

spec

PersistentVolumeSpec object

Especificações do PersistentVolume.

status

PersistentVolumeStatus object

Informações de status do PersistentVolume.

Tabela 9 PersistentVolumeMetadata

Parâmetro

Tipo

Descrição

name

String

Nome do PV. Digite de 1 a 253 caracteres começando e terminando com uma letra ou dígito. Use somente letras minúsculas, dígitos, hifens (-) e pontos finais (.). Nomes do PV devem ser exclusivos em um namespace.

labels

Map<String,String>

Rótulos do PV, no formato de pares chave-valor.

  • Key: digite de 1 a 63 caracteres começando com uma letra ou dígito. Apenas letras, dígitos, hifens (-), sublinhados (_) e pontos (.) são permitidos. Um subdomínio do DNS pode ser prefixo para uma chave e conter um máximo de 253 caracteres. Exemplo de subdomínio do DNS: example.com/my-key
  • Value: o valor pode ser deixado em branco ou de 1 a 63 caracteres, começando com uma letra ou dígito. Somente letras, dígitos, hifens (-), sublinhados (_) e pontos (.) são permitidos na cadeia de caracteres.

Exemplo de rótulo: "foo": "bar"

Tabela 10 PersistentVolumeSpec

Parâmetro

Tipo

Descrição

flexVolume

FlexVolume object

O plug-in de armazenamento do Kubernetes FlexVolume.

persistentVolumeReclaimPolicy

String

Política de recuperação do PV. Valores possíveis:

  • Retain: a política de recuperação Retain permite a recuperação manual do recurso. Quando a PVC é excluída, o PV ainda existe e o volume é considerado "released".
  • Recycle: a política de recuperação Recycle executa uma limpeza básica (rm -rf / thevolume / *) no volume e o torna disponível novamente para uma nova recuperação.
  • Delete: para plug-ins de volume compatíveis com a política de recuperação Delete, a exclusão remove o objeto do PV do Kubernetes, bem como o ativo de armazenamento associado na infraestrutura externa. Volumes que foram provisionados dinamicamente herdam a política de recuperação de sua StorageClass que, por padrão, é Delete.

accessModes

Array of strings

Modo de acesso do PersistentVolume.

  • ReadWriteOnce: o volume pode ser montado como leitura-escrita por um único nó.
    NOTA:

    Esta função é suportada apenas quando a versão do cluster é v1.13.10 e a versão do controlador de armazenamento é 1.0.19.

  • ReadOnlyMany: o volume pode ser montado como read-only por muitos nós.
  • ReadWriteMany: o volume pode ser montado como read-write por muitos nós.
Tabela 11 FlexVolume

Parâmetro

Tipo

Descrição

driver

String

Nome do plug-in de armazenamento do FlexVolume. Defina este parâmetro com base no tipo de volume de armazenamento.

  • huawei.com/fuxivol (EVS)
  • huawei.com/fuxinfs (SFS)
  • huawei.com/fuxiobs (OBS)
  • huawei.com/fuxiefs (SFS Turbo)

fsType

String

Tipo de sistema de arquivos. Defina este parâmetro com base no tipo de volume de armazenamento.

options

Options object

Itens de configuração do FlexVolume.

Tabela 12 Options

Parâmetro

Tipo

Descrição

fsType

String

Tipo de sistema de arquivos. Defina este parâmetro com base no tipo de volume de armazenamento.

  • ext4 (EVS)
  • nfs (SFS)
  • obs (OBS)
  • efs (SFS Turbo)

region

String

Região onde o armazenamento em nuvem está localizado.

volumeID

String

UUID do armazenamento em nuvem. Se o armazenamento em nuvem for um bucket do OBS, defina esse parâmetro como o nome do bucket.

storageType

String

Tipo de volume de armazenamento em nuvem.

  • bs (EVS)
  • nfs (SFS)
  • obs (OBS)
  • efs (SFS Turbo)
Tabela 13 PersistentVolumeStatus

Parâmetro

Tipo

Descrição

accessModes

Array of strings

Modo de acesso do PersistentVolume.

phase

String

Status do PV. Valores possíveis:

  • Available: o volume não está vinculado a nenhuma PVC.
  • Bound: o PV foi vinculado a uma PVC.
  • Released: a PVC vinculada ao PV foi excluída, mas o PV não foi disponibilizado novamente para uma nova recuperação no cluster.
  • Failed: falhou na recuperação automática do volume.

Exemplo de solicitação

  • Especificar um ID de volume do EVS e criar um PersistentVolume:
    {
      "apiVersion" : "v1",
      "kind" : "PersistentVolume",
      "metadata" : {
        "labels" : {
          "name" : "pv-test"
        },
        "name" : "pv-test"
      },
      "spec" : {
        "accessModes" : [ "ReadWriteMany" ],
        "flexVolume" : {
          "driver" : "huawei.com/fuxivol",
          "fsType" : "ext4",
          "options" : {
            "fsType" : "ext4",
            "kubernetes.io/namespace" : "default",
            "region" : "southchina",
            "volumeID" : "76e01b29-08b9-11e8-9ca5-1051722006ec",
            "storageType" : "bs"
          }
        },
        "persistentVolumeReclaimPolicy" : "Delete"
      }
    }
  • {
      "apiVersion" : "v1",
      "kind" : "PersistentVolume",
      "metadata" : {
        "labels" : {
          "name" : "pv-test"
        },
        "name" : "pv-test"
      },
      "spec" : {
        "accessModes" : [ "ReadWriteMany" ],
        "flexVolume" : {
          "driver" : "huawei.com/fuxivol",
          "fsType" : "ext4",
          "options" : {
            "fsType" : "ext4",
            "region" : "southchina",
            "volumeID" : "76e01b29-08b9-11e8-9ca5-1051722006ec",
            "storageType" : "bs"
          }
        },
        "persistentVolumeReclaimPolicy" : "Delete"
      }
    }

Exemplo de resposta

Código de status: 201

A tarefa para criar um PersistentVolume é entregue com sucesso.

{
  "kind" : "PersistentVolume",
  "apiVersion" : "v1",
  "metadata" : {
    "name" : "pv-test",
    "namespace" : "default",
    "selfLink" : "/api/v1/namespaces/default/persistentvolumes/pv-test",
    "uid" : "e174188f-ff21-11e7-855b-fa163eaf5675",
    "resourceVersion" : "174229",
    "creationTimestamp" : "2018-01-22T03:11:03Z",
    "labels" : {
      "name" : "pv-test"
    },
    "enable" : true
  },
  "spec" : {
    "capacity" : {
      "storage" : "1Gi"
    },
    "accessModes" : [ "ReadWriteMany" ],
    "flexVolume" : {
      "driver" : "huawei.com/fuxivol",
      "fsType" : "ext4",
      "options" : {
        "fsType" : "ext4",
        "kubernetes.io/namespace" : "default",
        "volumeID" : "0781b22f-4d89-4e9c-b026-80e545cea16c"
      }
    },
    "persistentVolumeReclaimPolicy" : "Delete"
  },
  "status" : {
    "phase" : "Pending"
  }
}

Código de status

Código de status

Descrição

201

A tarefa para criar um PersistentVolume é entregue com sucesso.

Códigos de erro

Para mais detalhes, consulte Códigos de erro.