CCE Ingress NGINX Controller 说明
更新时间:2024-09-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”组件单击“安装”。
- 在配置页面完成组件配置。
- 点击“安装”按钮完成组件的安装。
部署情况
安装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 |
使用Helm部署组件
CCE Ingress NGINX Controller组件的配置项比较多,但“组件管理”功能中开放的配置是有限的,可以另外在Helm侧部署和修改组件的配置。
如果希望自行在集群中部署该组件,并与“组件管理”实现联动效果,则在Helm部署时,需要同时满足以下条件:
- Helm实例名称为{ingress-class}-ngx-control。
- 部署参数fullnameOverride为{ingress-class}-ngx-control
其中{ingress-class}取值和部署参数中的controller.ingressClass参数一致,如图所示:
版本记录
版本号 | 适配集群版本 | 更新时间 | 更新内容 |
---|---|---|---|
4.11.2 | v1.26 及以上 | 2024-09-20 | 支持 Kubernetes v1.26 及以上集群使用 |
4.2.5 | v1.22/v1.24 | 2022-11-01 | 支持 Kubernetes v1.22/v1.24 集群使用 |
3.29.0 | v1.16/v1.18/v1.20 | 2022-06-29 | 首次上线 |