Azure AKS中应用路由插件的默认Nginx Ingress控制器配置管理
AKS Azure Kubernetes Service 项目地址: https://gitcode.com/gh_mirrors/ak/AKS
概述
在Azure Kubernetes Service(AKS)中使用应用路由(Application Routing)插件时,系统会自动部署一个默认的Nginx Ingress控制器。这个默认控制器通常会创建一个面向公网的负载均衡器,但在某些场景下,用户可能需要将其配置为内部负载均衡器或完全禁用默认控制器。本文将详细介绍如何管理AKS应用路由插件中的默认Nginx Ingress控制器配置。
默认Nginx Ingress控制器的特性
当通过az aks approuting enable
命令启用应用路由插件时,AKS会自动部署以下资源:
- 一个名为"default"的Nginx Ingress控制器
- 关联的Kubernetes服务(Service)资源
- 一个公网负载均衡器及其公共IP地址
这种默认配置适合大多数面向互联网的应用场景,但对于纯内部部署或需要通过Azure Private Link访问的场景,公网负载均衡器可能不是必需的。
修改默认控制器的配置
将公网负载均衡器改为内部负载均衡器
可以通过修改默认NginxIngressController资源来将公网负载均衡器转换为内部负载均衡器:
apiVersion: approuting.kubernetes.azure.com/v1alpha1
kind: NginxIngressController
metadata:
name: default
spec:
ingressClassName: webapprouting.kubernetes.azure.com
controllerNamePrefix: nginx
loadBalancerAnnotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true"
应用此配置后,大约需要等待2分钟,系统会自动将负载均衡器类型从公网改为内部,并分配一个内部IP地址。
配置变更的工作原理
当修改NginxIngressController资源后,AKS的应用路由操作器(Operator)会检测到这些变更并执行以下操作:
- 更新关联的Kubernetes服务资源
- 修改Azure负载均衡器配置
- 移除不再需要的公网IP资源
- 确保Ingress控制器Pod配置与新的负载均衡器设置一致
删除默认控制器
如果确实不需要默认控制器,可以执行删除操作:
kubectl delete nginxingresscontrollers default
但需要注意以下几点:
- 删除前必须确保已创建其他Ingress控制器
- 如果没有其他NginxIngressController资源存在,操作器会自动重新创建默认控制器
- 删除操作可能导致短暂的流量中断
最佳实践建议
- 优先修改而非删除:对于大多数场景,修改默认控制器配置比完全删除更为稳妥
- 变更前规划:确保相关应用已做好接收内部流量的准备
- 监控变更:在配置变更后监控应用可用性和性能指标
- 考虑命名规范:如果创建自定义控制器,采用一致的命名前缀便于管理
总结
AKS的应用路由插件提供了灵活的Nginx Ingress控制器管理能力。通过理解默认控制器的行为模式,用户可以轻松地将其调整为适合自身架构需求的配置,无论是改为内部负载均衡器还是完全替换为自定义控制器。这种灵活性使得AKS能够适应从公网到纯内部的各种应用部署场景。
AKS Azure Kubernetes Service 项目地址: https://gitcode.com/gh_mirrors/ak/AKS
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考