更新时间:2024-11-14 GMT+08:00
分享

通过控制台创建Nginx Ingress

Ingress是Kubernetes中的一种资源对象,用来管理集群外部访问集群内部服务的方式。您可以通过Ingress资源来配置不同的转发规则,从而根据转发规则访问集群内Pod。本文以Nginx工作负载为例,为您介绍如何使用控制台创建Nginx Ingress。

前提条件

约束与限制

  • 不建议在ELB服务页面修改ELB实例的任何配置,否则将导致服务异常。如果您已经误操作,请卸载Nginx Ingress插件后重装。
  • Ingress转发策略中注册的URL需与后端应用提供访问的URL一致,否则将返回404错误。
  • 负载均衡实例需与当前集群处于相同VPC 且为相同公网或私网类型。
  • 负载均衡实例需要拥有至少两个监听器配额,且端口80和443没有被监听器占用。

添加Nginx Ingress

本节以Nginx作为工作负载并添加Nginx Ingress为例进行说明。

  1. 登录CCE控制台,单击集群名称进入集群。
  2. 选择左侧导航栏的“服务”,在右侧选择“路由”页签,单击右上角“创建路由”
  3. 设置Ingress参数。

    • 名称:自定义Ingress名称,例如nginx-ingress-demo。
    • 命名空间:选择需要添加Ingress的命名空间。
    • 对接Nginx:集群中已安装NGINX Ingress控制器插件后显示此选项,未安装该插件时本选项不显示。
      • 控制器名称:选择集群中安装的NGINX Ingress控制器名称。您可以根据需求选择安装多个NGINX Ingress控制器,自定义不同的控制器名称。
      • 前端协议:支持HTTP和HTTPS,安装NGINX Ingress控制器插件时预留的监听端口,默认HTTP为80,HTTPS为443。使用HTTPS需要配置相关证书。
      • 证书来源:使用证书以支持HTTPS数据传输加密认证。
        • 如果您选择“TLS密钥”,需要提前创建IngressTLS或kubernetes.io/tls类型的密钥证书,创建密钥的方法请参见创建密钥
        • 如果您选择“默认证书”,NGINX Ingress控制器会使用插件默认证书进行加密认证。默认证书可在安装NGINX Ingress控制器插件时进行自定义配置,未配置自定义证书时将使用NGINX Ingress控制器自带证书。
      • SNI:SNI(Server Name Indication)是TLS的扩展协议,在该协议下允许同一个IP地址和端口号下对外提供多个基于TLS的访问域名,且不同的域名可以使用不同的安全证书。开启SNI后,允许客户端在发起TLS握手请求时就提交请求的域名信息。负载均衡收到TLS请求后,会根据请求的域名去查找证书:若找到域名对应的证书,则返回该证书认证鉴权;否则,返回缺省证书(服务器证书)认证鉴权。
    • 转发策略配置:请求的访问地址与转发规则匹配时(转发规则由域名、URL组成),此请求将被转发到对应的目标Service处理。单击“添加转发策略”按钮可添加多条转发策略。
      • 域名:实际访问的域名地址。请确保所填写的域名已注册并备案,在Ingress创建完成后,将域名与自动创建的负载均衡实例的IP(即Ingress访问地址的IP部分)绑定。一旦配置了域名规则,则必须使用域名访问。
      • 路径匹配规则:
        • 默认:默认为前缀匹配。
        • 前缀匹配:例如映射URL为/healthz,只要符合此前缀的URL均可访问。例如/healthz/v1,/healthz/v2。
        • 精确匹配:表示只有URL完全匹配时,访问才能生效。例如映射URL为/healthz,则必须为此URL才能访问。
      • 路径:需要注册的访问路径,例如:/healthz。
        • Nginx Ingress的访问路径匹配规则是基于“/”符号分隔的路径前缀匹配,并区分大小写。只要访问路径以“/”符号分隔后的子路径匹配此前缀,均可正常访问,但如果该前缀仅是子路径中的部分字符串,则不会匹配。例如URL设置为/healthz,则匹配/healthz/v1,但不匹配/healthzv1。
        • 此处添加的访问路径要求后端应用内存在相同的路径,否则转发无法生效。

          例如,Nginx应用默认的Web访问路径为“/usr/share/nginx/html”,在为Ingress转发策略添加“/test”路径时,需要应用的Web访问路径下也包含相同路径,即“/usr/share/nginx/html/test”,否则将返回404。

      • 目标服务名称:请选择已有Service或新建Service。页面列表中的查询结果已自动过滤不符合要求的Service。
      • 目标服务访问端口:可选择目标Service的访问端口。
      • 操作:可单击“删除”按钮删除该配置。
    • 注解:以“key: value”形式设置,可通过Annotations查询Nginx Ingress支持的配置。

  4. 配置完成后,单击“确定”

    创建完成后,在Ingress列表可查看到已添加的Ingress。

相关文档