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

hostPath

hostPath é usado para montar o diretório de arquivos do host onde o contêiner está localizado no ponto de montagem especificado do contêiner. Se o contêiner precisar acessar /etc/hosts, use hostPath para mapear /etc/hosts.

  • Evite usar volumes de hostPath o máximo possível, pois eles são propensos a riscos de segurança. Se os volumes de hostPath precisarem ser usados, eles só poderão ser aplicados a arquivos ou caminhos e montados no modo somente leitura.
  • Depois que o pod no qual um volume de hostPath é montado é excluído, os dados no volume de hostPath são retidos.

Montar um volume de hostPath no console

Você pode montar um caminho no host para um caminho de contêiner especificado. Um volume hostPath geralmente é usado para armazenar logs de carga de trabalho permanentemente ou usado por cargas de trabalho que precisam acessar a estrutura de dados interna do mecanismo Docker no host.

  1. Efetue logon no console do CCE.
  2. Ao criar uma carga de trabalho, clique em Data Storage em Container Settings. Clique em Add Volume e escolha hostPath na lista suspensa.
  3. Defina os parâmetros para adicionar um volume local, conforme listado em Tabela 1.

    Tabela 1 Configurar parâmetros para montar um volume de hostPath

    Parâmetro

    Descrição

    Storage Type

    Selecione HostPath.

    Host Path

    Caminho do host no qual o volume local deve ser montado, por exemplo, /etc/hosts.

    NOTA:

    Host Path não pode ser definido para o diretório raiz /. Caso contrário, a montagem falhará. Os caminhos de montagem podem ser os seguintes:

    • /opt/xxxx (excluindo /opt/cloud)
    • /mnt/xxxx (excluindo /mnt/paas)
    • /tmp/xxx
    • /var/xxx (excluindo diretórios-chave como /var/lib, /var/script e /var/paas)
    • /xxxx (Ele não pode entrar em conflito com o diretório do sistema, como bin, lib, home, root, boot, dev, etc, lost+found, mnt, proc, sbin, srv, tmp, var, media, opt, selinux, sys e usr.)

    Não defina esse parâmetro para /home/paas, /var/paas, /var/lib, /var/script, /mnt/paas ou /opt/cloud. Caso contrário, a instalação do sistema ou nó falhará.

    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.

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

Montar um volume de hostPath usando kubectl

  1. Use o kubectl para se conectar ao cluster.
  2. Crie um arquivo chamado nginx-hostpath.yaml e edite-o.

    vi nginx-hostpath.yaml

    O conteúdo do arquivo YAML é o seguinte. Monte o diretório /data no nó no diretório /data no contêiner.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-hostpath
      namespace: default
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx-hostpath
      template:
        metadata:
          labels:
            app: nginx-hostpath
        spec:
          containers:
            - name: container-1
              image: nginx:latest
              volumeMounts:
                - name: vol-hostpath         # Volume name, which must be the same as the volume name in the volumes field.
                  mountPath: /data           # Mount path in the container.
          imagePullSecrets:
            - name: default-secret
          volumes:
            - name: vol-hostpath             # Volume name, which can be customized.
              hostPath:
                path: /data                  # Directory location on the host node.

  3. Crie uma carga de trabalho.

    kubectl apply -f nginx-hostpath.yaml