搭配 Azure Arc 啟用的 AKS 使用永續性磁碟區

適用於:Azure Stack HCI 22H2 上的 AKS、Windows Server 上的 AKS

本文說明如何布建、使用和刪除持續性磁碟區,以提供長期記憶體,以便與 Azure Arc (AKS Arc) 所啟用的 AKS 中 Kubernetes Pod 搭配使用。

永續性磁碟區代表已布建以供 Kubernetes Pod 使用的記憶體片段。 永續性磁碟區可供一或多個 Pod 使用,且適用於長期儲存。 它也與 Pod 或節點生命周期無關。

雖然您可以為 Windows 和 Linux 節點布建永續性磁碟區,但本文說明如何建立永續性磁碟區以用於 Windows 應用程式。 如需詳細資訊,請參閱 Kubernetes 中的永續性磁碟區

開始之前

若要開始,您需要:

建立永續性磁碟區宣告

永續性磁碟區宣告 (PVC) 可用來根據儲存體類別,動態佈建儲存體。 若要建立磁碟區宣告,首先需建立名為 pvc-akshci-csi.yaml 的檔案,然後將下列 YAML 定義複製並貼上。 宣告要求其大小為 10 GB 且具備 ReadWriteOnce 存取權的磁碟。 系統會將儲存體類別 (vhdx) 指定為預設儲存體類別。

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

若要建立磁碟區,請在 Azure Stack HCI 叢集中其中一部伺服器上的系統管理 PowerShell 會話中執行下列命令。 使用 Enter-PSSession 或遠端桌面之類的方法來連線到伺服器。

kubectl create -f pvc-akshci-csi.yaml 

下列輸出會顯示已成功建立您的永續性磁碟區宣告:

輸出:

persistentvolumeclaim/pvc-akshci-csi created

使用永續性磁碟區

若要使用永續性磁碟區,請建立名為 winwebserver.yaml 的檔案,並將下列 YAML 定義複製並貼上。 然後,建立可存取永續性磁碟區宣告和 vhdx 的 Pod。

在下列 YAML 定義中, mountPath 是將磁碟區掛接在容器內的路徑。 成功建立 Pod 之後,您會看到在 C:\ 中建立的子目錄 mnt,以及在 mnt 內建立的子目錄 akshciscsi

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 

若要使用上述 YAML 定義建立 Pod,請執行:

kubectl create -f winwebserver.yaml 

若要確認 Pod 正在執行,請執行下列命令。 等候幾分鐘,直到 Pod 處於執行中狀態,因為提取映像需要一些時間。

kubectl get pods -o wide 

當您的 Pod 正在執行之後,請執行下列命令來檢視 Pod 狀態:

kubectl.exe describe pod %podName% 

若要確認是否已將磁碟區裝載到 Pod,請執行下列命令:

kubectl exec -it %podname% cmd.exe 

刪除永續性磁碟區宣告

在您刪除永續性磁碟區宣告之前,必須執行下列動作來刪除應用程式部署:

kubectl delete deployments win-webserver

然後,您可以藉由執行下列動作來刪除永續性磁碟區宣告:

kubectl delete PersistentVolumeClaim pvc-akshci-csi

下一步