搭配 Arc 啟用的 AKS 使用永續性磁碟區
適用於:Azure Local 22H2 上的 AKS、Windows Server 上的 AKS
本文說明如何布建、使用和刪除持續性磁碟區,以提供長期記憶體,以搭配 Azure Arc 啟用的 AKS 中 Kubernetes Pod 使用。
永續性磁碟區代表已布建以用於 Kubernetes Pod 的一部分記憶體。 永續性磁碟區可由一或多個 Pod 使用,而且適用於長期記憶體。 它也與 Pod 或節點生命周期無關。
雖然您可以為 Windows 和 Linux 節點布建永續性磁碟區,但本文說明如何建立永續性磁碟區以在 Windows 應用程式中使用。 如需詳細資訊,請參閱 Kubernetes 中的永續性磁碟區。
開始之前
若要開始,您需要:
- 具有至少一個 Windows 背景工作節點的 Kubernetes 叢集 。
- 用來存取 Kubernetes 叢集的 kubeconfig 檔案。
建立永續性磁碟區宣告
永續性磁碟區宣告 (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