Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
本教程介绍 Azure 容器存储,并演示如何为 Azure Kubernetes 服务(AKS)上运行的应用程序部署和管理容器本机存储。 如果现在不想部署 Azure 容器存储,可以跳过本教程,直接在 AKS 中部署应用程序。 在本教程系列中,你不需要基础店面应用的 Azure 容器存储。
Azure 容器存储通过提供针对各种工作负载(包括数据库、分析平台和高性能应用程序)定制的容器原生存储,简化了 Kubernetes 中有状态应用程序的管理。
在本教程结束时,你将:
- 了解 Azure 容器存储如何支持 Kubernetes 中的各种工作负荷。
- 在 AKS 群集上部署 Azure 容器存储。
- 创建通用临时卷。
在您开始之前
在前面的教程中,你创建了容器映像,将其上传到 ACR 实例,并创建了 AKS 群集。 从教程 1 - 为 AKS 准备应用程序开始学习。
安装最新版本的 Azure CLI (2.83.0 或更高版本),然后使用它登录
az login。 请勿使用 Azure Cloud Shell,因为az upgrade不可用。安装 Kubernetes 命令行客户端。
kubectl可以通过运行az aks install-cli本地安装它。
安装 Kubernetes 扩展
通过运行以下命令添加或升级到最新版本的 k8s-extension。
az extension add --upgrade --name k8s-extension
在 AKS 群集上启用 Azure 容器存储
运行以下命令,使用本地 NVMe 在现有 AKS 群集上启用 Azure 容器存储。 Azure 容器存储会自动安装最新的可用版本和更新本身。 不支持手动版本选择。
az aks update -n myAKSCluster -g myResourceGroup --enable-azure-container-storage ephemeralDisk
部署最多可能需要五分钟。 完成后,AKS 群集已安装 Azure 容器存储,并部署了本地 NVMe 存储类型的组件。 它还会创建默认 local 存储类。
连接到群集并验证状态
如果尚未从上一教程连接到群集,请运行以下命令。 如果已连接,可以跳过本部分。
下载群集凭据并配置 Kubernetes CLI 以使用它们。 默认情况下,凭据存储在
~/.kube/config. 根据需要使用--file参数提供其他路径。az aks get-credentials --resource-group myResourceGroup --name myAKSCluster通过列出群集节点来验证连接。
kubectl get nodes确保所有节点都报告状态
Ready。
验证存储类
运行以下命令以验证是否已创建存储类:
kubectl get storageclass local
此时会看到与下面类似的输出:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
local localdisk.csi.acstor.io Delete WaitForFirstConsumer true 10s
使用泛型临时卷部署 Pod
使用 Fio (灵活 I/O 测试器)创建一个 Pod,以进行基准测试和工作负载模拟,使用泛型临时卷。
使用最喜爱的文本编辑器创建 YAML 清单文件,例如
code fiopod.yaml。粘贴以下代码并保存文件。
kind: Pod apiVersion: v1 metadata: name: fiopod spec: nodeSelector: "kubernetes.io/os": linux containers: - name: fio image: mayadata/fio args: ["sleep", "1000000"] volumeMounts: - mountPath: "/volume" name: ephemeralvolume volumes: - name: ephemeralvolume ephemeral: volumeClaimTemplate: spec: volumeMode: Filesystem accessModes: ["ReadWriteOnce"] storageClassName: local resources: requests: storage: 10Gi应用 YAML 清单文件来部署 Pod。
kubectl apply -f fiopod.yaml
进行验证部署并运行基准测试
检查 Pod 是否正在运行:
kubectl get pod fiopod
应会看到 Pod 处于“正在运行”状态。 运行后,可以执行 Fio 基准测试:
kubectl exec -it fiopod -- fio --name=benchtest --size=800m --filename=/volume/test --direct=1 --rw=randrw --ioengine=libaio --bs=4k --iodepth=16 --numjobs=8 --time_based --runtime=60
现在,你已部署了一个使用本地 NVMe 作为其存储的 Pod,并可用于 Kubernetes 工作负载。
若要详细了解 Azure 容器存储,请参阅 [什么是 Azure 容器存储?][azure-container-storage]
清理资源
本教程系列教程的其余部分不需要 Azure 容器存储,因此建议立即将其删除,以避免产生不必要的 Azure 费用。
删除 Pod。
kubectl delete pod fiopod删除通用临时卷。
kubectl delete pv ephemeralvolume删除扩展实例。
az aks update -n myAKSCluster -g myResourceGroup --disable-azure-container-storage
后续步骤
在本教程中,你在 AKS 群集上部署了 Azure 容器存储。 你已了解如何执行以下操作:
- 在 AKS 群集上启用 Azure 容器存储。
- 使用通用临时卷部署 Pod。
下一教程介绍如何将应用程序部署到群集。