CCE Ingress NGINX Controller 说明
更新时间:2025-04-24
组件介绍
CCE Ingress NGINX Controller是Kubernetes集群中Ingress资源的控制器,该控制器在Kubernetes社区的Ingress NGINX Controller基础上优化了一些参数。
组件功能
该控制器使用NGINX作为反向代理和负载均衡器,实现了Kubernetes Ingress的语义和功能。
- 除了Kubernetes Ingress规定的配置之外,还提供诸多自定义配置项使得用户可以实现更灵活和精细的负载均衡策略。
- 组件中包含一个LoadBalancer类型的Service。部署组件后CCE会关联创建一个应用型BLB,以便将流量接入到集群中的该组件的Pod中去。
使用场景
当BLB类型Ingress无法满足需求时,可以使用NGINX类型Ingress来实现更灵活和精细的负载均衡策略。
使用限制
- 在使用NGINX Ingress时,数据流量会流经组件的Pod。因此该组件需要部署在单独节点组中,避免其他Pod挤占组件的资源。
安装组件
- 登录百度智能云官网,并进入管理控制台。
- 选择“产品服务>云原生>容器引擎CCE”,单击进入容器引擎管理控制台。
- 单击左侧导航栏中的“集群管理>集群列表”。
- 在集群列表页面中,单击目标集群名称进入集群管理页面。
- 在集群管理页面单击”运维与管理>组件管理”。
- 在组件管理列表中选择“CCE Ingress NGINX Controller”组件单击“安装”,在弹框中完成相关配置。
配置项 | 必选/可选 | 配置说明 |
---|---|---|
IngressClass名称 | 必选 | 指定IngressClass的名称,IngressClass名称是唯一的,用于区分不同的Ingress控制器。创建Ingress时,可通过指定控制器名称,声明该Ingress由此控制器进行管理。 |
命名空间 | 必选 | 指定IngressClass能够监听哪些命名空间下Ingress资源。 |
部署方式 | 必选 | 目前仅支持选择节点组DaemonSet部署,组件将以DaemonSet的形式部署在指定节点组中,后续您只要调整节点组的数量,即可扩缩容实例的副本数。 |
选择节点组 | 必选 | 指定组件部署的目标节点组。 |
污点 | 可选 | 为节点组中的节点设置污点信息。节点污点和Pod容忍共同作用。节点设置污点后,可避免Pod调度到节点上,或者将Pod从节点驱逐。除非Pod容忍能够节点污点相匹配。 |
容器配额 | 必选 | 指定组件部署Pod运行所分配的CPU、内存request值和limit值。 CPU request:容器需要使用的最小 CPU 值。 CPU limit:允许容器使用的 CPU 最大值。如果超过,容器会被终止。 内存 request:容器需要使用的最小内存值。 内存 limit:允许容器使用的内存最大值。如果超过,容器会被终止。 |
容忍设置 | 可选 | 为组件部署的Pod设置容忍信息。Pod能够调度到容忍能够匹配到污点的节点上。 |
服务访问 | 必选 | 为Ingress控制器创建LoadBalancer类型Service提供访问入口,分别支持: 公网:系统将创建应用型负载均衡器BLB并绑定弹性公网EIP。 内网:系统只会创建应用型负载均衡器BLB。 |
公网带宽 | 必选 | 当服务访问为公网时,需要配置该参数。配置BLB绑定EIP的公网带宽分别支持: 按使用流量计费:指定带宽峰值后,将按照实际使用的出公网流量计费,与使用时长无关。 按使用带宽计费:指定带宽峰值后,将按照使用时长计费,与实际流量无关。 |
带宽峰值 | 必选 | 当服务访问为公网时,需要配置该参数。配置BLB绑定EIP的带宽上限。 |
- 单击“确认”按钮完成组件的安装。
- 您可以再次单击”新增实例”创建多个不同配置的 Nginx Ingress Controller,以满足不同的服务访问场景。在创建 Ingress 资源对象时选择 IngressClass,即可为其指定相应的 Nginx Ingess Controller。
使用百度智能云模板部署组件
CCE Ingress NGINX Controller组件的配置项比较多,但“组件管理”功能中开放的配置是有限的,您也可以Helm模块部署和修改组件的配置。
如果希望自行在集群中部署该组件,并与“组件管理”实现联动效果,则在Helm部署时,需要同时满足以下条件:
- Helm实例名称为{ingress-class}-ngx-control。
- 部署参数fullnameOverride为{ingress-class}-ngx-control。
其中{ingress-class}取值和部署参数中的controller.ingressClass参数一致,如图所示:
部署情况
安装CCE Ingress NGINX Controller组件后,将在Kubernetes集群中部署以下资源对象。需要注意的是,在不同的部署配置下,部署内容会有一些差异。
- 某些对象在相关部署参数启用的情况下才会被部署到集群中。 部分对象的名称及命名空间取决于插件的部署配置。
对象名称 | 所属NameSpace | 所占资源 | 类型 |
---|---|---|---|
cce-reserved | kube-system | - | ConfigMap |
clusterrole | - | - | ClusterRole |
clusterrolebinding | - | - | ClusterRoleBinding |
controller-configmap | 取决于部署参数 | - | ConfigMap |
controller-configmap-addheaders | 取决于部署参数 | - | ConfigMap |
controller-configmap-proxyheaders | 取决于部署参数 | - | ConfigMap |
controller-configmap-tcp | 取决于部署参数 | - | ConfigMap |
controller-configmap-udp | 取决于部署参数 | - | ConfigMap |
controller-daemonset | 取决于部署参数 | 取决于部署参数 | DaemonSet |
controller-deployment | 取决于部署参数 | 取决于部署参数 | Deployment |
controller-hpa | 取决于部署参数 | - | HorizontalPodAutoscaler |
controller-keda | 取决于部署参数 | - | ScaledObject |
controller-poddisruptionbudget | 取决于部署参数 | - | PodDisruptionBudget |
controller-prometheusrules | 取决于部署参数 | - | PrometheusRule |
controller-psp | 取决于部署参数 | - | PodSecurityPolicy |
controller-role | 取决于部署参数 | - | Role |
controller-rolebinding | 取决于部署参数 | - | RoleBinding |
controller-service | 取决于部署参数 | - | Service |
controller-service-internal | 取决于部署参数 | - | Service |
controller-service-metrics | 取决于部署参数 | - | Service |
controller-service-webhook | 取决于部署参数 | - | Service |
controller-serviceaccount | 取决于部署参数 | - | ServiceAccount |
controller-servicemonitor | 取决于部署参数 | - | ServiceMonitor |
default-backend-deployment | 取决于部署参数 | - | Deployment |
default-backend-hpa | 取决于部署参数 | - | HorizontalPodAutoscaler |
default-backend-poddisruptionbudget | 取决于部署参数 | - | PodDisruptionBudget |
default-backend-psp | 取决于部署参数 | - | PodSecurityPolicy |
default-backend-role | 取决于部署参数 | - | Role |
default-backend-rolebinding | 取决于部署参数 | - | RoleBinding |
default-backend-service | 取决于部署参数 | - | Service |
default-backend-serviceaccount | 取决于部署参数 | - | ServiceAccount |
dh-param-sercret | 取决于部署参数 | - | Secret |
controller-ingressclass | 取决于部署参数; 仅在 4.2.5 版本中存在 | - | IngressClass |
controller-wehbooks-networkpolicy | 取决于部署参数; 仅在 4.2.5 版本中存在 | - | NetworkPolicy |
版本记录
版本号 | 适配集群版本 | 更新时间 | 更新内容 | 社区版本 |
---|---|---|---|---|
4.11.5 | CCE/v1.26/v1.28/v1.30 | 2025-03-31 | 更新到社区版本v1.11.5,修复CVE-2025-1097、CVE-2025-1098、CVE-2025-1974、CVE-2025-24513、CVE-2025-24514漏洞 | v1.11.5 |
4.11.2 | CCE/v1.26/v1.28/v1.30 | 2024-09-20 | 支持 Kubernetes v1.26 及以上集群使用 | v1.11.2 |
4.2.5 | CCE/v1.20/v1.22/v1.24 | 2022-11-01 | 支持 Kubernetes v1.22/v1.24 集群使用 | v1.3.1 |
3.29.0 | CCE/v1.16/v1.18/v1.20 | 2022-06-29 | 首次上线 | v0.45.0 |