Volumes de Borda Compartilhada Local
Este artigo descreve a configuração de Volumes de Borda Compartilhada Local (armazenamento local altamente disponível e durável).
O que é um Volume de Borda Compartilhada Local?
O recurso Volumes de Borda Compartilhada Local oferece armazenamento altamente disponível, com capacidade de failover, local para o seu cluster do Kubernetes. Esse tipo de armazenamento compartilhado permanece independente da infraestrutura de nuvem, tornando-o ideal para espaço temporário, armazenamento temporário e dados persistentes localmente que podem ser inadequados para destinos na nuvem.
Crie uma Declaração de Volume Persistente (PVC) de Volumes de Borda Compartilhada Local e configure um pod em relação ao PVC
Crie um arquivo chamado
localSharedPVC.yaml
com os conteúdos a seguir. Modifique o valormetadata.name
com um nome para sua Declaração de Volume Persistente. Em seguida, na linha 8, especifique o namespace que corresponde ao pod de consumo pretendido. O valormetadata.name
é referenciado na última linha dedeploymentExample.yaml
na próxima etapa. O parâmetrospec.resources.requests.storage
determina o tamanho do volume persistente. São 2 GB neste exemplo, mas podem ser modificados para atender às suas necessidades:Observação
Use apenas letras minúsculas e traços. Para mais informações, consulte a documentação de nomenclatura 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
Crie um arquivo chamado
deploymentExample.yaml
com os conteúdos a seguir. Adicione valores paracontainers.name
evolumes.persistentVolumeClaim.claimName
. O parâmetrospec.replicas
determina o número de pods de réplica a serem criados. Nesse exemplo, são 2, mas podem ser modificados para atender às suas necessidades:Observação
Use apenas letras minúsculas e traços. Para mais informações, consulte a documentação de nomenclatura 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>
Para aplicar esses arquivos YAML, execute:
kubectl apply -f "localSharedPVC.yaml" kubectl apply -f "deploymentExample.yaml"
Execute
kubectl get pods
para encontrar o nome do seu pod. Copie esse nome, pois será necessário na próxima etapa.Observação
Porque
spec::replicas
dedeploymentExample.yaml
foi especificado como2
, dois pods aparecem usandokubectl get pods
. Você pode escolher qualquer nome de pod para usar na próxima etapa.Execute o comando a seguir e substitua
POD_NAME_HERE
pelo valor copiado da etapa anterior:kubectl exec -it pod_name_here -- sh
Altere os diretórios para o
/data
caminho de montagem, conforme especificado emdeploymentExample.yaml
.Como exemplo, crie um arquivo chamado
file1.txt
e escreva nele usandoecho "Hello World" > file1.txt
.
Após concluir as etapas anteriores, comece a monitorar sua implantação usando o Azure Monitor e o Monitoramento do Kubernetes, ou monitoramento de terceiros com o Prometheus e Grafana.