Utilizar volumes persistentes com o AKS ativado pelo Azure Arc
Aplica-se a: AKS no Azure Stack HCI 22H2, AKS no Windows Server
Este artigo descreve como aprovisionar, utilizar e eliminar volumes persistentes que fornecem armazenamento de longo prazo para utilização com pods do Kubernetes no AKS ativados pelo Azure Arc (AKS Arc).
Um volume persistente representa uma parte do armazenamento que foi aprovisionada para utilização com pods do Kubernetes. Um volume persistente pode ser utilizado por um ou mais pods e destina-se ao armazenamento a longo prazo. Também é independente dos ciclos de vida do pod ou do nó.
Embora possa aprovisionar um volume persistente para nós windows e Linux, este artigo descreve como criar um volume persistente para utilização na sua aplicação Windows. Para obter mais informações, veja Volumes persistentes no Kubernetes.
Antes de começar
Eis o que precisa para começar:
- Um cluster do Kubernetes com, pelo menos, um nó de trabalho do Windows.
- Um ficheiro kubeconfig para aceder ao cluster do Kubernetes.
Create uma afirmação de volume persistente
Uma afirmação de volume persistente (PVC) é utilizada para aprovisionar automaticamente o armazenamento com base numa classe de armazenamento. Para criar uma afirmação de volume, crie primeiro um ficheiro com o nome pvc-akshci-csi.yaml
e copie e cole a seguinte definição YAML. O PVC requer um disco com 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
Para criar o volume, execute os seguintes comandos numa sessão administrativa do PowerShell num dos servidores no cluster do Azure Stack HCI. Utilize um método como Enter-PSSession ou Ambiente de Trabalho Remoto para ligar ao servidor.
kubectl create -f pvc-akshci-csi.yaml
O seguinte resultado mostrará que a afirmação de volume persistente foi criada com êxito:
Resultado:
persistentvolumeclaim/pvc-akshci-csi created
Utilizar volume persistente
Para utilizar um volume persistente, crie um ficheiro com o nome winwebserver.yaml
e copie e cole a seguinte definição YAML. Em seguida, crie um pod com acesso à afirmação de volume persistente e vhdx.
Na seguinte definição yaml, mountPath
é o caminho para montar um volume dentro de um contentor. Após uma criação bem-sucedida do pod, verá o subdiretório mnt 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 YAML acima, execute:
kubectl create -f winwebserver.yaml
Para se certificar de que o pod está em execução, execute o seguinte comando. Aguarde alguns minutos até que o pod esteja num estado de execução, uma vez que solicitar a imagem demora algum tempo:
kubectl get pods -o wide
Assim que o pod estiver em execução, veja o estado do pod ao executar 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
Eliminar uma afirmação de volume persistente
Antes de eliminar uma afirmação de volume persistente, tem de eliminar a implementação da aplicação ao executar o seguinte comando:
kubectl delete deployments win-webserver
Em seguida, pode eliminar uma afirmação de volume persistente ao executar:
kubectl delete PersistentVolumeClaim pvc-akshci-csi
Passos seguintes
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários