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
Crie um arquivo nomeado
localSharedPVC.yaml
com o seguinte conteúdo. Modifique ometadata.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. Ometadata.name
valor é referenciado na última linha dadeploymentExample.yaml
próxima etapa. Ospec.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
Crie um arquivo nomeado
deploymentExample.yaml
com o seguinte conteúdo. Adicione valores paracontainers.name
evolumes.persistentVolumeClaim.claimName
. Ospec.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>
Para aplicar esses arquivos YAML, execute:
kubectl apply -f "localSharedPVC.yaml" kubectl apply -f "deploymentExample.yaml"
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
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 seguinte comando 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 grave nele usandoecho "Hello World" > file1.txt
o .
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.