Use volume persistente num aglomerado AKS no Azure Stack HCI

Aplica-se a: Azure Stack HCI, versões 21H2 e 20H2; Datacenter Windows Server 2022, Windows Server 2019 Datacenter

Um volume persistente representa um pedaço de armazenamento que foi previsto para uso com cápsulas Kubernetes. Um volume persistente pode ser utilizado por uma ou mais cápsulas e destina-se a armazenamento a longo prazo. Também é independente do ciclo de vida do casulo ou do nó. Enquanto você pode providenciar um PVC para os nós Windows e Linux, nesta secção, você verá como criar um volume persistente e como usar este volume na sua aplicação Windows. Para obter mais informações, consulte volumes persistentes em Kubernetes.

Antes de começar

Eis o que precisas para começar:

Criar uma reivindicação de volume persistente

Uma reivindicação de volume persistente é usada para provisões automáticas de armazenamento com base numa classe de armazenamento. Para criar uma reclamação de volume, crie primeiro um ficheiro nomeado pvc-akshci-csi.yaml e copie na seguinte definição YAML. A reclamação solicita um disco de 10 GB de tamanho com acesso ReadWriteOnce. A classe de armazenamento predefinida é especificada como a classe de armazenamento (vhdx).  

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

Crie o volume executando os seguintes comandos numa sessão administrativa do PowerShell num dos servidores do cluster HCI Azure Stack (utilizando um método como Enter-PSSession ou Remote Desktop para ligar ao servidor):

kubectl create -f pvc-akshci-csi.yaml 

A seguinte saída mostrará que a sua persistente reivindicação de volume foi criada com sucesso:

Saída:

persistentvolumeclaim/pvc-akshci-csi created

Use volume persistente

Para utilizar um volume persistente, crie um ficheiro chamado winwebserver.yaml e copie na seguinte definição YAML. Em seguida, criará uma cápsula com acesso à reivindicação persistente de volume e vhdx.

Na definição yaml abaixo, mountPath é o caminho para montar um volume dentro de um recipiente. Após uma criação bem sucedida de casulos, você verá o mnt subdirecional criado em C:\ e o akshciscsi subdiretório criado dentro do 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 criar uma cápsula com a definição de yaml acima, corra:

kubectl create -f winwebserver.yaml 

Para se certificar de que a cápsula está a funcionar, executa o seguinte comando. Espere alguns minutos até que a cápsula esteja em estado de funcionamento, uma vez que puxar a imagem leva tempo. 

kubectl get pods -o wide 

Uma vez que o seu casulo esteja em funcionamento, veja o estado do pod executando o seguinte comando:

kubectl.exe describe pod %podName% 

Para verificar se o seu volume foi montado na cápsula, verifique o seguinte comando:

kubectl exec -it %podname% cmd.exe 

Eliminar uma reivindicação de volume persistente

Antes de eliminar uma reclamação de volume persistente, deve eliminar a implementação da aplicação executando:

kubectl delete deployments win-webserver

Em seguida, pode eliminar uma reivindicação de volume persistente executando:

kubectl delete PersistentVolumeClaim pvc-akshci-csi

Passos seguintes