最近更新时间:2024-09-10 16:07:39
本文档将介绍如何部署Nginx-ingress controller及配置Ingress规则,以实现集群外部请求的路由转发。
在进行Nginx-ingress controller部署前,请确认所选集群满足以下前提条件:
集群Kubernetes版本为1.18及以上;
集群中未部署过其他Nginx-ingress controller。
注:对于2022年1月13日前,通过控制台部署过老版本Nginx-ingress controller的用户,建议按照以下操作提示创建新版controller,并在业务低峰期时将老版ingress规则切换由新版controller管理。切换后新版controller支持由组件管理方式进行多实例管理,且对应社区版本(v1.1.0)支持更多优化特性。
切换方式建议如下:
通过组件管理模块,指定IngressClass,创建Nginx-ingress controller实例。
Nginx-ingress controller默认支持IngressClass为nginx的Ingress规则。由一期通过控制台部署的controller管理的ingress规则(默认指定ingressClass为nginx),可直接由新版controller接管,仅需切换域名解析规则,即可将访问流量切换到新版controller对应的service上。
选择业务低峰期,将原始Ingress规则中域名映射的IP,由旧版controller对应的service IP,切换为新版controller对应的service IP。
登录容器服务控制台,选择指定集群进入集群管理页面。
选择组件管理,进入组件管理页面。完成第一个实例安装后,组件状态将切换为已安装。对于多controller实例的场景(例如一个用于公网,一个用于内网),可进入实例列表进行多controller实例部署。
选择ingress-nginx,进入controller实例列表页。点击新建,创建nginx-ingress controller实例。
配置IngressClass名称:指定 Nginx-ingress controller实例使用的 IngressClass 名称,构成对应实例Kubernetes资源的名称。
命名空间:为Nginx-ingress controller实例部署指定命名空间。
访问范围:根据业务访问需求,为Nginx-ingress controller配置公网/私网访问,将分别为controller创建公网/私网LB作为集群外流量入口。
配置部署方式和调度策略:Nginx-ingress支持DaemonSet和Deployment两种部署方式,为保证Nginx-ingress服务性能,您可以通过指定部署方式和调度策略,将controller实例调度到特定节点上。调度策略配置可参考工作负载调度策略配置。
完成配置后,点击确定,即可完成Nginx-ingress实例部署。
切换至实例详情,指定Nginx-ingress实例,即可查看当前实例下创建的相关Kubernetes资源。
Nginx-ingress controller部署完成后,即可创建业务需要的ingress规则。Ingress规则配置方式如下:
基本信息
Ingress名称:用户自定义Ingress的名称,不超过63个字符,只能包含小写字母、数字、和“-”,并且必须以小写字母开头,小写字母或数字结尾。
IngressClass:指定此ingress规则目标匹配的Nginx ingress实例的IngressClass。
命名空间:选择Ingress规则所在的命名空间。
描述:创建Ingress的相关信息,用户自定义填写。
监听器配置
配置监听端口与协议,支持HTTP和HTTPS。
转发规则配置
根据业务需求,配置服务的访问路径、名称、端口。
域名:指定服务对外暴露的域名。域名支持通配符,如*.example.com。
URL路径:指定服务访问的URL路径。若使用根路径,则配置为“/”。
路径类型:匹配域名规则,匹配策略如下
ImplementationSpecific:匹配方法取决于 IngressClass
Exact:精确匹配 URL 路径,且区分大小写
Prefix:基于以/分隔的 URL 路径前缀匹配,匹配区分大小写,并且对路径中的元素逐个完成
后端Service:每个访问路径都关联一个服务,从对应命名空间下已创建服务中进行选择。
Service访问端口:选择服务暴露的端口。
TLS配置
当监听协议指定为HTTPS时,需通过TLS配置为域名指定SSL证书,其中证书将通过Secret资源来指定。
创建Secret:您可通过导入证书内容和私钥的方式一键创建Secret。
配置证书:为ingress规则中指定域名配置证书。
配置注解
您可以通过配置注解来实现Nginx-ingress的高阶功能,详情可参见Annotations。
关于Nginx-ingress的更多用法,您可以参考通过Nginx-ingress实现灰度发布。
纯净模式