Notas sobre o uso de volumes locais persistentes de Kubernetes

Sobre Volumes Persistentes Locais

No texto, os Volumes Persistentes Locais são chamados de PV local, abreviadamente;

  1. O PV local do Kubernetes foi lançado em alfa desde a versão 1.7, lançado na versão beta 1.10, e o lançamento oficial final (disponibilidade geral) é a versão 1.14;
  2. Um PV local corresponde a um espaço em disco local no nó especificado;
  3. Em comparação com o armazenamento remoto, como NFS, o PV local oferece melhor desempenho trazido pelo IO local;

Diferença do HostPath Volume

Antes do advento do PV local, o método de usar discos locais era HostPath Volume. O mesmo método usava discos locais. Qual é a diferença?

  1. A diferença mais importante é que o PV local está relacionado a nós específicos. Isso significa que os pods que usam o PV local serão programados para o mesmo nó pelo programador Kubernetes se reiniciarem várias vezes. Se o volume HostPath for usado, cada reinicialização será Ele pode ser programado para um novo nó pelo programador Kubernetes e, em seguida, usar o mesmo caminho local;
  2. Quando queremos usar HostPath Volume, podemos declarar em PVC ou escrever diretamente na configuração do Pod, mas PV local só pode ser declarado em PVC. Para recursos PV, geralmente há uma pessoa dedicada para gerenciar, o que evita o desenvolvimento de Pod Conflitos e riscos causados ​​pelo uso não autorizado de discos locais;
  3. Observe também que ambos HostPath Volume e Local PV estão usando discos locais. Em comparação com sistemas de arquivos distribuídos comuns, falhas de disco local causarão perda de dados. Não use HostPath Volume e Local PV para salvar dados importantes ;

Os conceitos básicos são concluídos, então a experiência de combate real;

Informações reais do ambiente de combate

  1. Sistema operacional: CentOS Linux versão 7.8.2003 (Core)
  2. governadores : 1.15.3
  3. leme : 2.16.1

Uma breve descrição das etapas para experimentar o PV local

O objetivo deste combate real é criar rapidamente um PV local e verificar se o PV local está normalmente disponível. O texto completo consiste nas seguintes partes:

  1. Criar PV local;
  2. Baixe o gráfico do tomcat através do leme;
  3. Modifique o gráfico para permitir que o tomcat use o PV local recém-criado;
  4. Implantar o tomcat;
  5. Verifique se a pasta foi gravada normalmente no servidor;

Artigo de referência

Se você quiser saber mais sobre o Kubernetes e o helm, consulte:

  1. "Kubespray 2.11 instala kubernetes 1.15" ;
  2. "Implante e experimente o Helm (versão 2.16.1)" ;

Após a preparação, inicie a operação prática;

Criar PV

  1. Crie uma pasta no nó de trabalho do kubernetes para uso do PV local, o meu é: / root / temp / 202005/24 / local-pv /
  2. Dê à pasta acima permissões de leitura e gravação: chmod -R a + r, a + w / root / temp / 202005/24 / local-pv
  3. Crie um arquivo local-storage-pv.yaml com o seguinte conteúdo:
apiVersion: v1
kind: PersistentVolume
metadata:
  name: example-pv
spec:
  capacity:
    storage: 10Gi
  volumeMode: Filesystem
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Delete
  storageClassName: local-storage
  local:
    path: /root/temp/202005/24/local-pv
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - node1
  1. Sobre local-storage-pv.yaml os seguintes pontos devem ser observados:.
    Um spec.storageClassName igual a local-Storage , o último também especifica o PVC storageClassName igual a local-Storage
    ;. O parâmetro Spec.nodeAffinity B é necessário, para Estabeleça o relacionamento entre o PV local e o nó. O valor de spec.nodeAffinity.required, nodeSelectorTerms.matchExpressions.values ​​contém node1 , o que significa que o PV local pode ser criado no nó cujo nome do host é node1 ;
  2. Execute o comando kubectl apply -f local-storage-pv.yaml para criar PV;
  3. Execute kubectl describe pv example-pv para verificar se a criação foi bem-sucedida, conforme mostrado na caixa vermelha na figura a seguir, este PV já está disponível:
    Insira a descrição da imagem aqui

Use PV

Em seguida, implante o tomcat por meio do leme e deixe o tomcat usar o PV local acima, verifique se o leme foi instalado;

  1. Adicionar depósito de leme (um depósito com tomcat): helm repo adicionar bitnami https://charts.bitnami.com/bitnami
  2. Baixe o gráfico do tomcat: helm fetch bitnami / tomcat
  3. Depois que o gráfico for baixado com sucesso, o pacote de compactação de configuração do tomcat tomcat-6.2.4.tgz aparece no diretório atual, descompacte-o: tar -zxvf tomcat-6.2.4.tgz
  4. Descompacte para obter a pasta tomcat, abra o arquivo values.yaml após entrar, encontre o nó de persistência e adicione o conteúdo na caixa vermelha na figura abaixo:
    Insira a descrição da imagem aqui
  5. Execute o comando no diretório tomcat: helm install --name-template tomcat001 -f values.yaml. --Namespace hello-storageclass
  6. Verifique o pod e o serviço do tomcat, está tudo normal e a porta está mapeada para 31835 do host:
    Insira a descrição da imagem aqui
  7. O navegador visita o IP do host: 31835 e a página de boas-vindas do tomcat aparece:
    Insira a descrição da imagem aqui
  8. Vá para o diretório / root / temp / 202005/24 / local-pv / para verificar o uso do disco, conforme mostrado na figura abaixo, você pode ver o PVC alocado para tomcat, e os dados básicos do tomcat estão gravados:
    Insira a descrição da imagem aqui
  9. Verifique o PV local novamente e descubra que o status mudou: Até
    Insira a descrição da imagem aqui
    agora, pode-se confirmar que o PV local é usado pelo tomcat, e os dados são salvos na pasta designada do host;

Limpar PV local

  1. De modo geral, as seguintes operações devem ser feitas para limpar o PV:
    a. Excluir pod ou implantação;
    b. Excluir pvc;
    c. Excluir PV local;
  2. Como o helm é usado aqui, as etapas 1 e 2 acima são executadas por meio do helm e o comando helm delete tomcat001
  3. Em seguida, execute kubectl delete -f local-storage-pv.yaml no diretório onde local-storage-pv.yaml está localizado para excluir PV local;

Neste ponto, o aprendizado e a prática do PV local estão completos.Se você estiver usando este tipo de armazenamento, espero que este artigo possa lhe fornecer algumas referências;

Bem-vindo a seguir minha conta pública: programador Xin Chen

Insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/boling_cavalry/article/details/106453727
Recomendado
Clasificación