如何在AKS中为系统及用户节点池部署RedHat基础镜像?
AKS RedHat 节点池支持情况与部署说明
支持范围
- 用户节点池:AKS支持使用Red Hat Enterprise Linux(RHEL)自定义镜像部署用户节点池,用于运行业务负载,该能力在1.25及以上Kubernetes版本正式可用。
- 系统节点池:不支持使用RHEL镜像部署。系统节点池承载CoreDNS、集群代理、管控组件等AKS核心服务,必须使用AKS官方维护的托管OS镜像,目前仅支持Ubuntu、Azure Linux(原CBL-Mariner)两个官方OS选项。
合规适配方案:系统节点池使用官方默认镜像,将所有业务负载调度至RHEL用户节点池运行,即可满足业务层基于RedHat运行的合规要求。
RHEL用户节点池部署前置要求
- 提前制作符合AKS节点规范的RHEL通用化VHD镜像,镜像需预装对应Kubernetes版本的kubelet、containerd运行时、AKS节点代理组件,完成基础网络、内核参数配置,且完成RedHat订阅授权激活。
- 制作完成的RHEL镜像需上传至Azure计算画廊(原共享镜像库),并为AKS集群的托管标识/服务主体分配该镜像的读取权限。
- AKS集群Kubernetes版本不低于1.25。
部署操作步骤
- 按默认配置创建AKS集群,系统节点池使用官方Ubuntu或Azure Linux镜像,参考命令:
az aks create \ --resource-group <替换为你的资源组名称> \ --name <替换为你的AKS集群名称> \ --node-count 3 \ --os-sku Ubuntu \ --generate-ssh-keys
- 集群创建完成后,添加RHEL自定义镜像对应的用户节点池,参考命令:
az aks nodepool add \ --resource-group <替换为你的资源组名称> \ --cluster-name <替换为你的AKS集群名称> \ --name rhelnp \ --node-count 3 \ --os-type Linux \ --os-sku Custom \ --node-vm-size <替换为你需要的虚拟机规格,例如Standard_D4s_v5> \ --image <替换为你的RHEL镜像在Azure计算画廊的资源ID>
- 节点池部署完成后,为系统节点池添加
CriticalAddonsOnly=true:NoSchedule污点,阻止业务负载和非核心组件调度到系统节点;同时为RHEL节点池添加业务专属标签(例如workload-type=business),业务应用部署时通过nodeSelector绑定该标签,即可将业务全部调度到RHEL节点运行。
注意事项
- RHEL自定义节点池的OS安全补丁、版本更新、故障排查由用户自行负责,AKS不会为自定义OS节点提供自动补丁更新、版本兼容保障。
- 每次升级AKS集群Kubernetes版本前,需提前制作匹配目标Kubernetes版本kubelet组件的RHEL镜像,否则节点池升级流程会失败。
- RHEL的授权许可需用户自行向RedHat采购,AKS服务本身不包含RHEL操作系统的授权。
内容的提问来源于stack exchange,提问作者Vowneee
相关产品推荐
相关产品推荐

