管理Nginx Ingress Controller实例

Kubernetes通过kube-proxy服务实现了Service的对外发布及负载均衡,它的各种方式都是基于传输层实现的。在实际的互联网应用场景中,不仅要实现单纯的转发,还有更加细致的策略需求,如果使用真正的负载均衡器更会增加操作的灵活性和转发性能。

基于以上需求,Kubernetes引入了资源对象IngressIngress为集群中的Service提供了可直接被集群外部访问的虚拟机、负载均衡、SSL代理、HTTP路由等应用层转发功能。

Kubernetes官方发布了基于NginxIngress控制器(Nginx Ingress Controller),用于实现Ingressnginx-ingress是一款使用configmap来存储nginx配置的插件,nginx ingress controller会将ingress生成一段nginx的配置,将这个配置通过Kubernetes API写到NginxPod中,然后reload完成nginx的配置修改和更新。

nginx-ingress插件直接使用社区模板与镜像。

管理Nginx Ingress Controller实例包括如下操作:

创建Nginx Ingress Controller实例

执行本操作,通过安装Nginx Ingress Controller插件,创建Nginx Ingress Controller实例。

  1. 在顶部导航栏单击[云服务/云容器引擎]菜单项,进入云容器引擎服务页面。

  1. 在左侧导航树中单击[集群]菜单项,进入集群管理页面。

  1. 单击集群名称链接,进入集群详情页面。

  1. 单击“插件管理”页签,进入Nginx Ingress Controller插件页面。

  1. 单击ingress-nginx插件对应操作列的<安装>按钮,弹出安装窗口。

  1. 配置参数,参数说明如下:

参数

说明

名称

自定义Nginx Ingress Controller实例在本系统的显示名称。

命名空间

选择该集群对应的命名空间。避免选择已经被应用使用的命名空间。如果没有命名空间,可单击旁边的“创建命名空间”进行创建,具体步骤请参见新建命名空间

版本

当前仅支持v0.49.3版本。

实例类型

可以选择Deployment类型或Daemonset类型。

  • Deployment类型支持部署多个不同名称的Ingress Controller实例,用户可以通过重复本创建实例操作来实现;

  • Daemonset类型仅支持部署单个Ingress Controller实例;如果您已经成功创建一个Daemonset类型的Ingress Controller实例,要想创建新的该类型实例,只能先删除这个已有实例。删除操作请参见删除Nginx Ingress Controller实例

说明

集群中已部署的0.30.0版本Daemonset类型的实例ingress-nginx,请确认是否正在使用该版本实例;若未使用,请到插件实例列表中删除该版本实例,重新部署0.49.3版本Daemonset类型实例。

实例数

输入创建Pod的数量。Deployment类型下该参数可见。

Deployment类型支持创建多个PodDaemonset类型默认支持创建1Pod

容器资源规格

输入Ingress Controller部署容器对CPU和内存的启动限制规格和运行限制规格。

  • CPU启动限制:输入大于0的一位小数(如0.51.3)或整数,且小于等于运行限制CPU核数;

  • 内存启动限制:输入正整数,且小于等于运行限制内存数;

  • CPU运行限制:大于0的一位小数(如0.51.3)或整数,且大于等于启动限制CPU核数

  • 内存运行限制:内存为正整数,且大于等于启动限制内存数;建议不低于800MB

控制器标签

可为控制器添加标签便于管理。

访问方式

默认为节点访问,支持对接负载均衡。

访问方式为“节点访问”

 

服务端口(http

  • Deployment类型:自定义service提供访问的端口。

  • Daemonset类型:即容器占用其所在宿主机的端口,默认为80

服务端口(https

  • Deployment类型:输入service提供访问的端口;

  • Daemonset类型:即容器占用其所在宿主机的端口,默认为443

访问方式为“负载均衡”

端口映射

  • 端口映射协议必须保持一致,并填入集群内端口应用的端口号。

参数

  • external:南北向LB”和“LB的租户ID”的参数信息系统默认获取,需手动填写对接的LB所属子网的子网ID,以及指定创建LBIP

 

  1. 单击<确定>,完成操作。创建好的Ingress Controller实例会显示在插件实例列表中,可单击左侧子导航树的[插件实例]菜单项,查看插件实例列表。

查看Nginx Ingress Controller实例详情

通过查看Nginx Ingress Controller实例详情,可以查看命名空间、版本、访问地址、创建时间、描述、容器规格等基本信息,和其他高级信息。

  1. 在顶部导航栏单击[云服务/云容器引擎]菜单项,进入云容器引擎服务页面。

  1. 在左侧导航树中单击[集群]菜单项,进入集群管理页面。

  1. 单击集群名称链接,进入集群详情页面。

  1. 单击“插件管理”页签,进入Nginx Ingress Controller插件页面。

  1. 单击左侧子导航树的[插件实例]菜单项,进入插件实例列表页面。

  1. 单击实例名称,进入实例详情页面,查看实例详细信息。

编辑Nginx Ingress Controller实例详情

通过该功能可对已创建的Nginx Ingress Controller实例进行编辑。

  1. 在顶部导航栏单击[云服务/云容器引擎]菜单项,进入云容器引擎服务页面。

  1. 在左侧导航树中单击[集群]菜单项,进入集群管理页面。

  1. 单击集群名称链接,进入集群详情页面。

  1. 单击“插件管理”页签,进入Nginx Ingress Controller插件页面。

  1. 单击左侧子导航树的[插件实例]菜单项,进入插件实例列表页面。

  1. 单击待编辑实例名称操作列中的<编辑>按钮,弹出编辑信息窗口,可对参数进行修改。

  1. 单击<确定>按钮,完成操作。

使用Nginx Ingress Controller实例

在容器应用部署完成后,可通过设置应用的应用域名来创建Ingress,并指定Nginx Ingress Controller实例实现Ingress资源。设置应用的应用域名,具体操作请参见【应用管理-管理应用-配置应用访问方式】。

只有容器镜像部署的应用,且应用部署在独享集群,才能指定Ingress Controller实例管理Ingress资源。

 

  1. 在顶部导航栏单击[企业应用]菜单项,进入应用管理页面。

  1. 在左侧导航树中单击[应用列表]菜单项,进入应用列表页面。

  1. 单击应用名称链接,进入应用详情页面。

  1. 单击“访问方式”页签,进入相应页面。

  1. 单击<应用域名>,在应用域名配置区域,单击<添加>按钮。

  1. 配置应用域名,在绑定实例中选择当前集群创建的Nginx Ingress Controller实例。

  1. 完成应用域名的配置,实现创建Ingress资源,并使用Nginx Ingress Controller实例。

删除Nginx Ingress Controller实例

如果存在Ingress资源正在使用Nginx Ingress Controller实例,该实例将无法被删除。

  1. 在顶部导航栏单击[云服务/云容器引擎]菜单项,进入云容器引擎服务页面。

  1. 在左侧导航树中单击[集群]菜单项,进入集群管理页面。

  1. 单击集群名称链接,进入集群详情页面。

  1. 单击“插件管理”页签,进入Nginx Ingress Controller插件页面。

  1. 单击左侧子导航树的[插件实例]菜单项,进入插件实例列表页面。

  1. 单击待删除实例对应操作列的<删除>按钮,弹出删除确认窗口。

  1. 单击<确定>,完成操作。