Partilhar via


Volumes de borda compartilhados locais

Este artigo descreve a configuração para Volumes de Borda Compartilhada Local (armazenamento local altamente disponível e durável).

O que é um Volume de Borda Local Compartilhado?

O recurso Volumes de Borda Compartilhados Locais fornece armazenamento altamente disponível e com capacidade de failover, local para seu cluster Kubernetes. Esse tipo de armazenamento compartilhado permanece independente da infraestrutura de nuvem, tornando-o ideal para espaço zero, armazenamento temporário e dados persistentes localmente que podem ser inadequados para destinos em nuvem.

Criar uma Declaração de Volume Persistente (PVC) de Volumes de Borda Compartilhada Local e configurar um pod em relação ao PVC

  1. Crie um arquivo nomeado localSharedPVC.yaml com o seguinte conteúdo. Modifique o metadata.name valor com um nome para sua Declaração de Volume Persistente. Em seguida, na linha 8, especifique o namespace que corresponde ao seu pod de consumo pretendido. O metadata.name valor é referenciado na última linha da deploymentExample.yaml próxima etapa. O spec.resources.requests.storage parâmetro determina o tamanho do volume persistente. É de 2 GB neste exemplo, mas pode ser modificado para atender às suas necessidades:

    Nota

    Use apenas letras minúsculas e traços. Para obter mais informações, consulte a documentação de nomeação de objetos do Kubernetes.

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      ### Create a name for your PVC ###
      name: <create-a-pvc-name-here>
      ### Use a namespace that matches your intended consuming pod, or "default" ###
      namespace: <intended-consuming-pod-or-default-here>
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 2Gi
      storageClassName: unbacked-sc
    
  2. Crie um arquivo nomeado deploymentExample.yaml com o seguinte conteúdo. Adicione valores para containers.name e volumes.persistentVolumeClaim.claimName. O spec.replicas parâmetro determina o número de pods de réplica a serem criados. É 2 neste exemplo, mas pode ser modificado para atender às suas necessidades:

    Nota

    Use apenas letras minúsculas e traços. Para obter mais informações, consulte a documentação de nomeação de objetos do Kubernetes.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: localsharededgevol-deployment ### This will need to be unique for every volume you choose to create
    spec:
      replicas: 2
      selector:
        matchLabels:
          name: wyvern-testclientdeployment
      template:
        metadata:
          name: wyvern-testclientdeployment
          labels:
            name: wyvern-testclientdeployment
        spec:
          affinity:
            podAntiAffinity:
              requiredDuringSchedulingIgnoredDuringExecution:
                - labelSelector:
                    matchExpressions:
                      - key: app
                        operator: In
                        values:
                          - wyvern-testclientdeployment
                  topologyKey: kubernetes.io/hostname
          containers:
            ### Specify the container in which to launch the busy box. ###
            - name: <create-a-container-name-here>
              image: 'mcr.microsoft.com/mirror/docker/library/busybox:1.35'
              command:
                - "/bin/sh"
                - "-c"
                - "dd if=/dev/urandom of=/data/acsalocalsharedtestfile count=16 bs=1M && while true; do ls /data &>/dev/null || break; sleep 1; done"
              volumeMounts:
                ### This name must match the following volumes::name attribute ###
                - name: wyvern-volume
                  ### This mountPath is where the PVC will be attached to the pod's filesystem ###
                  mountPath: /data
          volumes:
            ### User-defined name that is used to link the volumeMounts. This name must match volumeMounts::name as previously specified. ###
            - name: wyvern-volume
              persistentVolumeClaim:
                ### This claimName must refer to your PVC metadata::name from lsevPVC.yaml.
                claimName: <your-pvc-metadata-name-from-line-5-of-pvc-yaml>
    
  3. Para aplicar esses arquivos YAML, execute:

    kubectl apply -f "localSharedPVC.yaml"
    kubectl apply -f "deploymentExample.yaml"
    
  4. Corra kubectl get pods para encontrar o nome do seu pod. Copie este nome, conforme necessário na próxima etapa.

    Nota

    Porque spec::replicas de deploymentExample.yaml foi especificado como 2, dois pods aparecem usando kubectl get pods. Você pode escolher qualquer nome de pod para usar na próxima etapa.

  5. Execute o seguinte comando e substitua POD_NAME_HERE pelo valor copiado da etapa anterior:

    kubectl exec -it pod_name_here -- sh
    
  6. Altere os diretórios para o /data caminho de montagem, conforme especificado em deploymentExample.yaml.

  7. Como exemplo, crie um arquivo chamado file1.txt e grave nele usando echo "Hello World" > file1.txto .

Depois de concluir as etapas anteriores, comece a monitorar sua implantação usando o Azure Monitor e o Kubernetes Monitoring, ou o monitoramento de terceiros com o Prometheus e o Grafana.

Próximos passos

Monitore sua implantação