Compartir a través de


Use volúmenes persistentes con AKS en Windows Server

Se aplica a: AKS en Windows Server

Este artículo 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 en Windows Server.

Un volumen persistente representa un fragmento de almacenamiento 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 del ciclo de vida de los pods o nodos.

Si bien puede aprovisionar un volumen persistente tanto para nodos Windows como Linux, este artículo describe cómo crear un volumen persistente para usar en su aplicación de 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 de PowerShell con privilegios administrativos en uno de los servidores del clúster de Windows Server. Use un método como Enter-PSSession o Escritorio remoto para conectarse al servidor.

kubectl create -f pvc-akshci-csi.yaml 

La siguiente salida muestra que su solicitud de volumen persistente se creó 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 esta definición YAML, mountPath es la ruta donde se montará el volumen dentro de un contenedor. Después de crear el pod exitosamente, verá que se creó el subdirectorio mnt en C:\ y el subdirectorio akshciscsi 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 esta definición en YAML, 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 un estado de ejecución, ya que la extracción de la imagen lleva 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 solicitud de volumen persistente, primero debe eliminar la implementación de la aplicación con el 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