首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【TKE】集群中使用多个 Ingress 控制器

【TKE】集群中使用多个 Ingress 控制器

原创
作者头像
Jokey
修改2021-05-11 13:59:50
1.6K0
修改2021-05-11 13:59:50
举报

背景

TKE 服务在集群内默认启用了基于腾讯云负载均衡器实现的 Ingress,支持 HTTP、HTTPS,同时也支持在集群内自建其他 Ingress 控制器,可以根据业务需要选择不同的 Ingress 类型,比如常用的 Nginx Ingress 控制器。

安装方式

方式一:通过 TKE 产品化的 Nginx ingress 组件安装,详情参考:TKE Nginx Ingress

方式二:通过 TKE 控制台 【应用市场】 安装 Nginx Ingress ,应用市场安装说明参考:TKE 应用市场

方式三:通过官网文档使用 helm 安装 Nginx Ingress,详情参考:Helm 安装 Nginx Ingress

使用配置

下面将分别介绍在 TKE 中常用的两种 Ingress 类型的使用和多个 Ingress 控制器如何共同使用。

基于腾讯云 CLB 的 Ingress

TKE 默认提供基于腾讯云 CLB 的 Ingress 功能,用户可以直接在控制台【服务与路由】的 【Ingress】中根据需要暴露七层服务,也可以通过应用 Ingress YAML 资源来创建配置,基于 CLB 的 Ingress 控制器管理逻辑如下:

  • 当 Ingress 资源没有描述注解kubernetes.io/ingress.class时,TKE Ingress Controller会管理当前 Ingress 资源。
  • 当 Ingress 资源有注解 kubernetes.io/ingress.class且值为qcloud时,TKE Ingress Controller 会管理当前 Ingress 资源。

详细配置参考:TKE Ingress Controller 使用方法

Nginx Ingress

Nginx Ingress 控制器启动时通过指定--ingress-class=<INGRESS_CONTROLLER_NAME>

参数来声明自己监听的 Ingress 配置类范围,其缺省为nginx ,Nginx Ingress 控制器指定类名示例如下:

...
spec:
  template:
     spec:
       containers:
         - name: nginx-ingress-internal-controller
           args:
             - /nginx-ingress-controller
             - '--ingress-class=<INGRESS_CONTROLLER_NAME>'
...

当有 Ingress 资源配置中具有注解 kubernetes.io/ingress.class: "<INGRESS_CONTROLLER_NAME>"时将被该控制器监听使用,其 Ingress 资源配置示例如下:

...
metadata:
  name: foo
  annotations:
    kubernetes.io/ingress.class: "<INGRESS_CONTROLLER_NAME>"
...

多个 Ingress 控制器共同使用

根据上述使用配置说明,建议所有 Ingress 资源都配置注解来区分不同的 Ingress 控制器作用范围,当要使用基于 CLB 的 Ingress 时,配置注解kubernetes.io/ingress.class:"qcloud" ,当要使用 Nginx ingress 控制器时配置注解 kubernetes.io/ingress.class:"<INGRESS_CONTROLLER_NAME>"(不要和基于CLB Ingress 冲突) 即可。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 安装方式
  • 使用配置
    • 基于腾讯云 CLB 的 Ingress
      • Nginx Ingress
      • 多个 Ingress 控制器共同使用
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档