Uso de volúmenes persistentes con AKS habilitado por 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 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:
- Un clúster de Kubernetes con al menos un nodo de trabajo de Windows.
- Un archivo kubeconfig para acceder al clúster de Kubernetes.
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 salida siguiente muestra que la notificación 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 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 esta definición de 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 en 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 ejecutando 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