大数跨境
0
0

AKS节点的OS磁盘类型解析

AKS节点的OS磁盘类型解析 Azure云技术支持
2025-09-25
2


欢迎关注我们,了解更多Azure技术资讯




您在使用Azure Kubernetes服务(AKS)时可能遇到过类似场景或疑问:

  • 您可能会担心AKS集群的VM节点操作系统(OS)使用的临时磁盘会不会因为重建,出现节点数据丢失的问题?

  • 能否使用永久性卷PV来存储,以避免数据丢失问题呢?

  • 用户又该如何配置永久性卷呢?


本文中我们将和您一起深入研究、解析和配置AKS:

小蓝解析服务概念:AKS节点存储与OS磁盘


首先,AKS的节点是抛弃式的,业务应用数据也是不会存储在OS盘的,所以不必担心应用数据丢失。

无论选择哪种OS磁盘类型,都不应将应用程序数据存储在OS盘上。


  • 临时OS磁盘的数据确实非持久化

    临时OS磁盘仅存储在主机(VM)上。当VM节点被删除或重新分配时,临时磁盘上的所有数据会随之消失。AKS的许多操作(如升级、缩放)都可能涉及节点的替换。


  • 托管OS磁盘并非为应用数据设计

    虽然托管OS磁盘是持久化的,但它主要用于操作系统本身。其性能和容量可能不适合存储应用程序数据,并且会影响节点的管理操作。


  • 最佳实践

    AKS应用程序的持久数据应存储在专用的Azure存储解决方案中

    /Volume)例如Azure磁盘、Azure文件存储、Azure NetApp文件或Azure Blob存储。这些存储资源通过持久卷(PV) 和持久卷声明(PVC) 挂载到Pod中,与Pod的生命周期分离,从而保证数据的持久性和安全性。


进一步解析,AKS默认会使用所选节点的VM机型所提供的临时磁盘作为OS磁盘,存储类型一般为标准SSD。

如果选择的是没有临时磁盘的机型,则会使用托管磁盘创建OS盘。


如果客户不希望用临时存储,而使用永久性存储/卷,可使用命令行创建时指定使用托管磁盘作为OS盘。

如果您需要根据云环境定制具体命令,欢迎您随时提交技术支持工单



如何配置创建使用托管OS磁盘的AKS集群

若明确地指定使用托管OS磁盘,可利用Azure CLI 命令az aks create 中的--node-osdisk-type 参数设置。(Azure PowerShell的New-AzAksCluster由于未提供此参数,无法通过Azure PowerShell设置磁盘类型)  


Azure CLI

# 使用Azure CLI创建使用托管OS磁盘的AKS集群

az aks create `

    --resource-group $resourceGroup`

    --name $clusterName`

    --node-count 3 `

    --node-vm-size Standard_DS2_v2 `

    --node-osdisk-type Managed



注意:

  1. 某些VM机型(如一些新一代系列)可能没有临时存储。在这种情况下,AKS会自动使用托管OS磁盘。

  2. 无论选择哪种OS磁盘类型,都建议客户自行根据需求,在上述CLI命令中附加参数设置OS磁盘大小( 磁盘最小 30 GB):以下示例 100GB 

    --node-osdisk-size 100


验证OS磁盘类型 


创建集群后,您可通过kubectl命令验证节点的OS磁盘类型:


powershell

# 获取节点信息(包括OS磁盘详情)

kubectl describe nodes | Select-String"Disk"



持久化存储声明 PVC 示例

正如前文强调,应用程序数据应使用专用持久化存储方案。以下是一个使用Azure磁盘创建持久卷声明(PVC)的示例,随后我们再创建一个Pod来使用此存储。



yaml

apiVersion: v1

kindPersistentVolumeClaim

metadata:

    nameazure-managed-disk-pvc

spec

    accessModes:

    - ReadWriteOnce

  storageClassName: managed-premium

    resources:

        requests:

            storage10Gi


备注:如果您需要在删除PVC时继续保留底层磁盘 (保留回收策略)

则请将上述命令中此参数设置为: storageClassName: managed-premium-retain


然后创建一个Pod来使用这个存储:


yaml

apiVersion: v1

kind: Pod

metadata

    namemypod-with-storage

spec

    containers

        - name: myapp

          image: nginx:latest

          volumeMounts: 

            - mountPath: "/data"

              namedata-volume

     volumes: 

         - name: data-volume

            persistentVolumeClaim:

                claimName: azure-managed-disk-pvc



参考资料:

AKS的存储方案介绍和使用注意事项 

AKS永久性卷(PV)介绍

Azure CLI 命令行 az aks 系列命令和参数介绍



END



我们的使命

让云计算更聪明

让云服务更高效


【声明】内容源于网络
0
0
Azure云技术支持
由世纪互联运营的 Microsoft Azure 公有云平台技术支持
内容 15
粉丝 0
Azure云技术支持 由世纪互联运营的 Microsoft Azure 公有云平台技术支持
总阅读12
粉丝0
内容15