Uso de volúmenes persistentes con AKS habilitado por Azure Arc

Se aplica a: AKS en Azure Stack HCI 22H2, AKS en Windows Server

En este artículo se describe cómo aprovisionar, usar y eliminar volúmenes persistentes que proporcionan almacenamiento a largo plazo para su uso con pods de Kubernetes en AKS habilitados por Azure Arc (AKS Arc).

Un volumen persistente representa un fragmento de almacenamiento que se ha aprovisionado para su uso con pods de Kubernetes. Un volumen persistente puede ser utilizado por uno o varios pods y está pensado para el almacenamiento a largo plazo. También es independiente de los ciclos de vida de pod o nodo.

Aunque puede aprovisionar un volumen persistente para los nodos de Windows y Linux, en este artículo se describe cómo crear un volumen persistente para su uso en la aplicación Windows. Para más información, consulte Volúmenes persistentes en Kubernetes.

Antes de empezar

Requisitos para poder comenzar:

Creación de una notificación de volumen persistente

Una notificación de volumen persistente (PVC) se usa para aprovisionar automáticamente el almacenamiento en función de una clase de almacenamiento. Para crear una notificación de volumen, cree en primer lugar un archivo llamado pvc-akshci-csi.yaml, y copie y pegue la siguiente definición de YAML. PVC requiere un disco que tenga un tamaño de 10 GB con acceso ReadWriteOnce. Se especifica la clase de almacenamiento predeterminada como clase de almacenamiento (vhdx).

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
 name: pvc-akshci-csi
spec:
 accessModes:
 - ReadWriteOnce
 resources:
  requests:
   storage: 10Gi

Para crear el volumen, ejecute los siguientes comandos en una sesión administrativa de PowerShell en uno de los servidores del clúster de Azure Stack HCI. Use un método como Enter-PSSession o Escritorio remoto para conectarse al servidor.

kubectl create -f pvc-akshci-csi.yaml 

La siguiente salida mostrará que la notificación de volumen persistente se ha creado correctamente:

Salida:

persistentvolumeclaim/pvc-akshci-csi created

Uso del volumen persistente

Para usar un volumen persistente, cree un archivo denominado winwebserver.yaml, y copie y pegue la siguiente definición de YAML. Después, cree un pod con acceso a la notificación de volumen persistente y a vhdx.

En la siguiente definición de YAML, mountPath es la ruta de acceso para montar un volumen dentro de un contenedor. Después de crear correctamente un pod, verá el subdirectorio mnt creado en C:\ y el subdirectorio akshciscsi creado dentro de mnt.

apiVersion: apps/v1 
kind: Deployment 
metadata: 
  labels: 
    app: win-webserver 
  name: win-webserver 
spec: 
  replicas: 1 
  selector: 
    matchLabels: 
      app: win-webserver 
  template: 
    metadata: 
      labels: 
        app: win-webserver 
      name: win-webserver 
    spec: 
     containers: 
      - name: windowswebserver 
        image: mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019 
        ports:  
          - containerPort: 80    
        volumeMounts: 
            - name: akshciscsi 
              mountPath: "/mnt/akshciscsi" 
     volumes: 
        - name: akshciscsi 
          persistentVolumeClaim: 
            claimName:  pvc-akshci-csi 
     nodeSelector: 
      kubernetes.io/os: windows 

Para crear un pod con la definición de YAML anterior, ejecute:

kubectl create -f winwebserver.yaml 

Para asegurarse de que el pod está funcionando, ejecute el siguiente comando. Espere unos minutos hasta que el pod esté en estado de ejecución, ya que la extracción de la imagen tarda tiempo:

kubectl get pods -o wide 

Una vez que se esté ejecutando el pod, puede ver el estado de este mediante la ejecución del siguiente comando:

kubectl.exe describe pod %podName% 

Para comprobar que el volumen se ha montado en el pod, ejecute el siguiente comando:

kubectl exec -it %podname% cmd.exe 

Eliminación de una notificación de volumen persistente

Antes de eliminar una notificación de volumen persistente, debe eliminar la implementación de la aplicación mediante la ejecución del siguiente comando:

kubectl delete deployments win-webserver

Puede eliminar una notificación de volumen persistente mediante la ejecución de:

kubectl delete PersistentVolumeClaim pvc-akshci-csi

Pasos siguientes