Usar o volume persistente em um AKS no cluster de HCI Azure StackUse persistent volume in an AKS on Azure Stack HCI cluster

Aplica-se a: AKS em Azure Stack HCI, tempo de execução de AKS no Windows Server 2019 datacenterApplies to: AKS on Azure Stack HCI, AKS runtime on Windows Server 2019 Datacenter

Um volume persistente representa uma parte do armazenamento que foi provisionada para uso com pods do Kubernetes.A persistent volume represents a piece of storage that has been provisioned for use with Kubernetes pods. Um volume persistente pode ser usado por um ou mais pods e destina-se ao armazenamento de longo prazo.A persistent volume can be used by one or more pods and is meant for long-term storage. Também depende do ciclo de vida do Pod ou do nó.It's also independent of pod or node lifecycle. Embora você possa provisionar um PVC para nós do Windows e Linux, nesta seção, você verá como criar um volume persistente e como usar esse volume em seu aplicativo do Windows.While you can provision a PVC for both Windows and Linux nodes, in this section, you'll see how to create a persistent volume and how to use this volume in your Windows application. Para obter mais informações, consulte volumes persistentes em kubernetes.For more information, see Persistent volumes in Kubernetes.

Antes de começarBefore you begin

Veja o que você precisa para começar:Here's what you need to get started:

  • Um cluster kubernetes com pelo menos um nó de trabalho do Windows.A Kubernetes cluster with at least one Windows worker node.
  • Um arquivo kubeconfig para acessar o cluster kubernetes.A kubeconfig file to access the Kubernetes cluster.

Criar uma declaração de volume persistenteCreate a persistent volume claim

Uma declaração de volume persistente é usada para provisionar automaticamente o armazenamento com base em uma classe de armazenamento.A persistent volume claim is used to automatically provision storage based on a storage class. Para criar uma declaração de volume, primeiro crie um arquivo chamado pvc-akshci-csi.yaml e copie na seguinte definição de YAML.To create a volume claim, first create a file named pvc-akshci-csi.yaml and copy in the following YAML definition. A declaração solicita um disco com 10 GB de tamanho com acesso ReadWriteOnce   .The claim requests a disk that is 10 GB in size with ReadWriteOnce access. A default   classe de armazenamento padrão é especificada como a classe de armazenamento (vhdx).The default storage class is specified as the storage class (vhdx).

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

Crie o volume executando os seguintes comandos em uma sessão administrativa do PowerShell em um dos servidores no cluster Azure Stack HCI (usando um método como Enter-PSSession ou área de trabalho remota para se conectar ao servidor):Create the volume by running the following commands in an administrative PowerShell session on one of the servers in the Azure Stack HCI cluster (using a method such as Enter-PSSession or Remote Desktop to connect to the server):

kubectl create -f pvc-akshci-csi.yaml 

A saída a seguir mostrará que a declaração de volume persistente foi criada com êxito:The following output will show that your persistent volume claim has been created successfully:

Saída:Output:

persistentvolumeclaim/pvc-akshci-csi created

Usar volume persistenteUse persistent volume

Para usar um volume persistente, crie um arquivo chamado winwebserver. YAML e copie na seguinte definição de YAML.To use a persistent volume, create a file named winwebserver.yaml and copy in the following YAML definition. Em seguida, você criará um pod com acesso à declaração de volume persistente e vhdx.You will then create a pod with access to the persistent volume claim and vhdx.

Na definição de YAML abaixo, mountPath é o caminho para montar um volume dentro de um contêiner.In the yaml definition below, mountPath is the path to mount a volume inside a container. Após uma criação de Pod bem-sucedida, você verá o subdiretório mnt criado em C \ : e o subdiretório akshciscsi criado dentro de mnt.After a successful pod creation, you will see the subdirectory mnt created in C:\ and the subdirectory akshciscsi created inside 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:To create a pod with the above yaml definition, run:

kubectl create -f winwebserver.yaml 

Para verificar se o Pod está em execução, execute o comando a seguir.To make sure the pod is running, run the following command. Aguarde alguns minutos até que o Pod esteja em um estado de execução, já que a extração da imagem leva tempo.Wait a few minutes until the pod is in a running state, since pulling the image takes time.

kubectl get pods -o wide 

Quando o Pod estiver em execução, exiba o status do pod executando o seguinte comando:Once your pod is running, view the pod status by running the following command:

kubectl.exe describe pod %podName% 

Para verificar se o volume foi montado no pod, execute o seguinte comando:To verify your volume has been mounted in the pod, run the following command:

kubectl exec -it %podname% cmd.exe 

Excluir uma declaração de volume persistenteDelete a persistent volume claim

Antes de excluir uma declaração de volume persistente, você deve excluir a implantação do aplicativo executando:Before deleting a persistent volume claim, you must delete the app deployment by running:

kubectl delete deployments win-webserver

Em seguida, você pode excluir uma declaração de volume persistente executando:You can then delete a persistent volume claim by running:

kubectl delete PersistentVolumeClaim pvc-akshci-csi

Próximas etapasNext steps