Usar um volume persistente com Serviço de Kubernetes do Azure no Azure Stack HCI e no servidor de Windows

Aplica-se a: Azure Stack HCI e Windows Server

Você pode configurar um volume persistente no AKS (Serviço de Kubernetes do Azure) no Azure Stack HCI e no servidor Windows. Um volume persistente é o termo usado para representar uma parte do armazenamento que foi provisionada para uso com pods kubernetes. Um volume persistente pode ser usado por um ou mais pods e destina-se ao armazenamento de longo prazo. Ele também é independente dos ciclos de vida de pod ou nó.

Embora você possa provisionar um volume persistente para nós Windows e Linux, este artigo mostra como criar um volume persistente para uso em seu aplicativo Windows. Para obter mais informações, consulte volumes persistentes no Kubernetes.

Antes de começar

Aqui está o que você precisa para começar:

Criar uma declaração de volume persistente

Um PVC (declaração de volume persistente) é usado para provisionar automaticamente o armazenamento com base em uma classe de armazenamento. Para criar uma declaração de volume, primeiro crie um arquivo nomeado pvc-akshci-csi.yaml e copie e cole a seguinte definição YAML. O PVC requer um disco de 10 GB de tamanho com acesso ReadWriteOnce . A classe de armazenamento padrão é especificada como a classe de armazenamento (vhdx).

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

Para criar o volume, execute os seguintes comandos em uma sessão administrativa do PowerShell em um dos servidores no cluster do Azure Stack HCI (usando um método como Enter-PSSession ou Área de Trabalho Remota para se conectar ao servidor):

kubectl create -f pvc-akshci-csi.yaml 

A saída a seguir mostrará que sua declaração de volume persistente foi criada com êxito:

Saída:

persistentvolumeclaim/pvc-akshci-csi created

Usar volume persistente

Para usar um volume persistente, crie um arquivo nomeado winwebserver.yaml e copie e cole a definição yaml a seguir. Em seguida, crie um pod com acesso à declaração de volume persistente e vhdx.

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

kubectl create -f winwebserver.yaml 

Para verificar se o pod está em execução, execute o comando a seguir. Aguarde alguns minutos até que o pod esteja em um estado de execução, já que puxar a imagem leva tempo.

kubectl get pods -o wide 

Depois que o pod estiver em execução, exiba o status do pod executando o seguinte comando:

kubectl.exe describe pod %podName% 

Para verificar se o volume foi montado no pod, execute o seguinte comando:

kubectl exec -it %podname% cmd.exe 

Excluir uma declaração de volume persistente

Antes de excluir uma declaração de volume persistente, você deve excluir a implantação do aplicativo executando:

kubectl delete deployments win-webserver

Em seguida, você pode excluir uma declaração de volume persistente executando:

kubectl delete PersistentVolumeClaim pvc-akshci-csi

Próximas etapas