Alauda Container Platform Ingress Controller
目录
概述安装通过 Web 控制台配置通过 YAML 配置Ingress 分片创建处理所有命名空间中 Ingress 的 IngressNginx创建处理特定命名空间中 Ingress 的 IngressNginx通过 LoadBalancer 暴露高级 Controller 部署设置SSL 透传IPv4 和 IPv6 双栈支持其他资源与官方 Chart 的默认值差异商标声明概述
Ingress Nginx Operator 用于简化 Ingress-Nginx 部署的高级管理。
此 Operator 简化了 Ingress-Nginx 实例的部署、配置和维护流程。其运行架构如下:Ingress-Nginx Operator 会持续监控类型为 ingressnginxes.ingress-nginx.alauda.io (IngressNginx) 的自定义资源,并为每个已定义的 IngressNginx 资源自动创建对应的 Ingress-Nginx 实例。通过此架构,可以直接操作 IngressNginx 自定义资源,以控制 Ingress-Nginx 的功能和行为。
安装
- 前往
Administrator -> Marketplace -> OperatorHub - 找到
Alauda Container Platform Ingress Controller,然后点击Install
通过 Web 控制台配置
我们通过用户界面提供基本配置选项,并为你生成相应的 YAML。对于更复杂的配置,你可以直接编辑 YAML。
完成 Ingress Nginx Operator 的安装后:
- 前往
All Instances选项卡 - 点击
Create,然后在显示的对话框中找到 IngressNginx Instance Type 部分,并点击Create
通过 YAML 配置
默认情况下,Ingress Nginx Operator 会在相应 IngressNginx 自定义资源所在的同一命名空间中部署 Ingress Nginx 实例。
Ingress 分片
默认情况下,对于显式指定其 IngressClass 名称或未指定任何 IngressClass 的 Ingress,Ingress Nginx 会处理所有命名空间中的 Ingress 资源。你可以使用 .controller.scope.namespaceSelector 将实例限制在特定命名空间中。例如,以下 IngressNginx 资源 demo-scope 仅处理带有标签 cpaas.io/project=demo 的命名空间中的 Ingress。
创建处理所有命名空间中 Ingress 的 IngressNginx
创建处理特定命名空间中 Ingress 的 IngressNginx
- 格式类似于
$LABLE_KEY=$LABLE_VALUE
通过 LoadBalancer 暴露
默认情况下,Ingress Controller 配置为 ClusterIP Service 类型。若要使用 LoadBalancer Service 在外部暴露 Ingress Controller,请应用以下配置:
LoadBalancer Service 需要外部负载均衡器集成(云提供商 LB 或 MetalLB)来分配外部 IP。
使用 MetalLB 时指定 LoadBalancer VIP:
高级 Controller 部署设置
配置网络模式、副本、资源限制、节点选择和污点容忍:
nodeSelector 和 tolerations 设置控制 Ingress Nginx controller pod 的调度位置。默认情况下,Ingress Nginx controller 不容忍任何污点。
SSL 透传
启用 SSL 透传功能:
启用 SSL 透传后,TLS 会在后端终止,因此 L7 功能(例如请求/响应标头操作、WAF、HTTP 到 HTTPS 重定向以及某些身份验证流程)不会应用于 controller 上的此类流量。
IPv4 和 IPv6 双栈支持
其他资源
IngressNginx 资源的 .spec 字段直接对应 Ingress Nginx 的 Helm Chart values,包括 .spec.controller.nodeSelector 和 .spec.controller.tolerations。有关其他配置选项,请参阅官方 Ingress NGINX 文档。
与官方 Chart 的默认值差异
- 默认情况下,每个 IngressNginx 实例都会创建一个名称为
$ns-$name且 controllerValue 为ingress-nginx.cpaas.io/$ns-$name的 IngressClass。可以使用.spec.controller.ingressClassResource.name和.spec.controller.ingressClassResource.controllerValue参数自定义这些值。 - 默认情况下,
.spec.controller.service.type设置为ClusterIP。 - 默认情况下,
.spec.controller.watchIngressWithoutClass设置为true,这意味着 controller 将处理未指定 IngressClass 的 Ingress 资源。
商标声明
NGINX® 是 F5, Inc. 在美国及其他国家/地区的注册商标。
MetalLB™ 是 The Linux Foundation 的商标。
Alauda 是独立供应商。本产品与 The Linux Foundation 或 F5, Inc. 没有关联,也未获得其认可或赞助。所有商标均归其各自所有者所有,此处仅用于标识目的。