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-11-28 GMT+08:00

Uso de um EV local

Os Volumes efêmeros locais (EVs) são armazenados em pools de armazenamento de EV. Os EVs locais oferecem um desempenho melhor do que o meio de armazenamento padrão do emptyDir nativo e suportam expansão.

Pré-requisitos

Restrições

  • Os EVs locais são suportados apenas quando a versão do cluster é v1.21.2-r0 ou posterior e a versão do complemento everest é 2.1.23 ou posterior.
  • Não exclua manualmente o pool de armazenamento correspondente nem desanexe discos de dados do nó. Caso contrário, exceções como perda de dados podem ocorrer.
  • Certifique-se de que o diretório /var/lib/kubelet/pods/ não esteja montado no pod no nó. Caso contrário, o pod, montado com tais volumes, pode falhar em ser excluído.

Usar o console para montar um EV local

  1. Efetue logon no console do CCE e clique no nome do cluster para acessar o console do cluster.
  2. No painel de navegação à esquerda, clique em Workloads. No painel direito, clique na guia Deployments.
  3. Clique em Create Workload no canto superior direito da página. Na área Container Settings, clique na guia Data Storage e clique em Add Volume > Local Ephemeral Volume (emptyDir).
  4. Monte e use volumes de armazenamento, conforme mostrado na Tabela 1. Para obter detalhes sobre outros parâmetros, consulte Cargas de trabalho.

    Tabela 1 Montagem de um EV local

    Parâmetro

    Descrição

    Capacity

    Capacidade do volume de armazenamento solicitado.

    Mount Path

    Digite um caminho de montagem, por exemplo, /tmp.

    Este parâmetro indica o caminho do contêiner no qual um volume de dados será montado. Não monte o volume em um diretório do sistema como / ou /var/run. Caso contrário, os contêineres estarão com defeito. Monte o volume em um diretório vazio. Se o diretório não estiver vazio, verifique se não há arquivos que afetem a inicialização do contêiner. Caso contrário, os arquivos serão substituídos, causando falhas de inicialização do contêiner ou falhas de criação de carga de trabalho.
    AVISO:

    Se um volume for montado em um diretório de alto risco, use uma conta com permissões mínimas para iniciar o contêiner. Caso contrário, arquivos de alto risco no host podem ser danificados.

    Subpath

    Digite um subcaminho, por exemplo, tmp, indicando que os dados no caminho de montagem do contêiner serão armazenados na pasta tmp do volume.

    Um subcaminho é usado para montar um volume local para que o mesmo volume de dados seja usado em um único pod. Se este parâmetro for deixado em branco, o caminho raiz é usado por padrão.

    Permission

    • Read-only: você só pode ler os dados nos volumes montados.
    • Read/Write: você pode modificar os volumes de dados montados no caminho. Os dados recém-gravados não serão migrados se o contêiner for migrado, o que pode causar perda de dados.

  5. Após a configuração, clique em Create Workload.

Usar o kubectl para montar um EV local

  1. Use o kubectl para se conectar ao cluster. Para mais detalhes, consulte Conexão a um cluster usando o kubectl.
  2. Crie um arquivo chamado nginx-emptydir.yaml e edite-o.

    vi nginx-emptydir.yaml

    Conteúdo do arquivo YAML:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-emptydir
      namespace: default
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx-emptydir
      template:
        metadata:
          labels:
            app: nginx-emptydir
        spec:
          containers:
            - name: container-1
              image: nginx:latest
              volumeMounts:
                - name: vol-emptydir         # Volume name, which must be the same as the volume name in the volumes field.
                  mountPath: /tmp            # Path to which an EV is mounted.
          imagePullSecrets:
            - name: default-secret
          volumes:
            - name: vol-emptydir             # Volume name, which can be customized.
              emptyDir:
                medium: LocalVolume          # If the disk medium of emptyDir is set to LocalVolume, the local EV is used.
                sizeLimit: 1Gi               # Volume capacity.

  3. Crie uma carga de trabalho.

    kubectl apply -f nginx-emptydir.yaml

Manipulação de exceções de EV local

Se um usuário desanexar manualmente um disco do ECS ou executar manualmente o comando vgremove, o pool de armazenamento do EV poderá funcionar mal. Para resolver esse problema, defina o nó como não agendado seguindo o procedimento descrito em Configurações de agendamento de nó e redefina o nó.