共用方式為


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

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

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

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

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

開始之前

若要開始,您需要:

建立永續性磁碟區宣告

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

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

若要建立磁碟區,請在 Azure 本機叢集中的其中一部伺服器上,於系統管理 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

下一步