使用由 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 中的永久性卷。
准备阶段
以下是开始使用需要满足的条件:
- 具有至少一个 Windows 工作器节点的 Kubernetes 群集。
- 用于访问 Kubernetes 群集的 kubeconfig 文件。
创建永久性卷声明
永久卷声明 (PVC) 用于基于存储类自动预配存储。 若要创建卷声明,请首先创建名为 pvc-akshci-csi.yaml
的文件,并在以下 YAML 定义中进行复制和粘贴。 该 PVC 需要一个大小为 10 GB 且具有 ReadWriteOnce 访问权限的磁盘。 default 存储类将指定为存储类 (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
后续步骤
反馈
https://aka.ms/ContentUserFeedback。
即将推出:在整个 2024 年,我们将逐步取消以“GitHub 问题”作为内容的反馈机制,并将其替换为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈