Volúmenes perimetrales locales compartidos
En este artículo, se describe la configuración de volúmenes perimetrales locales compartidos (almacenamiento local de alta disponibilidad y duradero).
¿Qué es un volumen perimetral local compartido?
La característica Volúmenes perimetrales locales compartidos proporciona almacenamiento con capacidad de conmutación por error de alta disponibilidad, local en el clúster de Kubernetes. Este tipo de almacenamiento compartido sigue siendo independiente de la infraestructura en la nube, lo que lo convierte en ideal para el espacio temporal, el almacenamiento temporal y los datos persistentes localmente, que podrían no ser adecuados para los destinos en la nube.
Crear una notificación de volumen persistente (PVC) de volúmenes perimetrales locales compartidos y configurar un pod en la PVC
Cree un nuevo archivo denominado
localSharedPVC.yaml
con el contenido siguiente. Modifique el valormetadata.name
con un nombre para la notificación de volumen persistente. A continuación, en la línea 8, especifique el espacio de nombres que coincida con el pod de consumo previsto. El valormetadata.name
hace referencia al valor en la última línea dedeploymentExample.yaml
en el paso siguiente. El parámetrospec.resources.requests.storage
determina el tamaño del volumen persistente. En este ejemplo es de 2 GB, pero se puede modificar para adaptarlo a las necesidades:Nota:
Use solo letras minúsculas y guiones. Para más información, consulte la documentación de nomenclatura de objetos de 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
Cree un nuevo archivo denominado
deploymentExample.yaml
con el contenido siguiente. Agrega valores paracontainers.name
yvolumes.persistentVolumeClaim.claimName
. El parámetrospec.replicas
determina el número de pods de réplica que se van a crear. En este ejemplo son 2, pero se puede modificar para adaptarlo a las necesidades:Nota:
Use solo letras minúsculas y guiones. Para más información, consulte la documentación de nomenclatura de objetos de 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 estos archivos YAML, ejecute:
kubectl apply -f "localSharedPVC.yaml" kubectl apply -f "deploymentExample.yaml"
Ejecute
kubectl get pods
para buscar el nombre del pod. Copie este nombre, ya que es necesario en el paso siguiente.Nota:
Dado que
spec::replicas
dedeploymentExample.yaml
se especificó como2
, aparecen dos pods mediantekubectl get pods
. Puede elegir cualquiera de los nombres de pod para usar en el paso siguiente.Ejecute el siguiente comando y reemplace
POD_NAME_HERE
por el valor copiado del paso anterior:kubectl exec -it pod_name_here -- sh
Cambie los directorios a la ruta de acceso de montaje
/data
, tal como se especifica endeploymentExample.yaml
.Por ejemplo, cree un archivo denominado
file1.txt
y escriba en él medianteecho "Hello World" > file1.txt
.
Después de completar los pasos anteriores, comience a supervisar la implementación mediante Azure Monitor y Supervisión de Kubernetes o supervisión de terceros con Prometheus y Grafana.