Apache APISIX Ingress Controller 首个 GA 版本 v1.0 正式发布!

Kirito的技术分享

共 3321字,需浏览 7分钟

 ·

2021-06-23 10:47

关于 Apache APISIX Ingress Controller

Apache APISIX Ingress Controller 是一个使用 Apache APISIX 作为数据面承载流量的云原生 Ingress Controller 实现,采用 CRD 的方式对 Kubernetes 进行了扩展。

可支持使用包括 ApisixRoute、ApisixUpstream 等自定义资源,以及 Kubernetes 原生 Ingress 资源等控制外部流量访问部署在 Kubernetes 中的服务。

整体架构如下:


v1.0 最新特性

增加 ApisixConsumer 自定义资源使配置认证更方便

在之前的版本中,如果想要配置 keyAuth 或者 basicAuth 需要手动去调用 Apache APISIX 的 admin api 创建 consumer 配置。

在 v1.0 版本中,我们增加了 ApisixConsumer 资源,用户可以使用更原生的方式来定义 consumer 资源及为 ApisixRoute 配置认证。

例如通过以下配置定义一个 keyAuth 资源:

apiVersion: apisix.apache.org/v2alpha1

kind: ApisixConsumer

metadata:

  name: keyauth

spec:

  authParameter:

    keyAuth:

      value:

        key: API

在 ApisixRoute 中只需要增加对应类型的 authentication 配置即可。

apiVersion: apisix.apache.org/v2alpha1

kind: ApisixRoute

metadata:

 name: httpbin-route

spec:

 http:

   ...

   authentication:

     enabletrue

     type: keyAuth

为 ApisixTls 增加 mTLS 支持

在 v1.0 版本中我们也为 ApisixTls 自定义资源增加了 mTLS 的支持,只需要在 ApisixTls 资源的配置中增加 client 配置即可,例如:

apiVersion: apisix.apache.org/v1

kind: ApisixTls

metadata:

  name: sample-tls

spec:

  ...

  client:

    caSecret:

      name: client-ca-secret

      namespace: default

为原生 Ingress 资源增加了更多 annotation 来丰富其功能

  • k8s.apisix.apache.org/blocklist-source-range 可对来源 IP 进行限制;
  • k8s.apisix.apache.org/rewrite-targetk8s.apisix.apache.org/rewrite-target-regex 可进行 target 的 rewrite 操作;
  • k8s.apisix.apache.org/http-to-https 可进行 HTTP 到 HTTPS 的强制重定向;

更多特性变更请参考项目 CHANGELOG 。

为什么使用 APISIX Ingress Controller

Apache APISIX Ingress Controller 使用 Apache APISIX 作为其数据面承载业务流量,所以其从 Apache APISIX 继承了如下优势:

  • 高性能 & 稳定性:Apache APISIX 是一款云原生高性能动态 API 网关,已在众多企业大规模流量场景下使用,其性能及稳定性久经考验。
  • 生态丰富:Apache APISIX 是当前最活跃的开源网关项目,作为 Apache 顶级项目,无论是社区活跃度还是其插件生态都非常丰富,可满足用户的多种使用场景和需求;

此外,由于 APISIX Ingress Controller 还具备如下独有的优势:

  • 兼容性好:支持多个 Ingress 资源版本,在不同的 Kubernetes 版本中均可正常工作;
  • 动态更新:无论是 Ingress 资源或是证书等配置的更新,均已实现热加载,无需 reload,保障业务平稳运行;
  • 扩容灵活:由于 APISIX Ingress Controller 采用控制面和数据面分离的架构,所以在扩容时,可以单独扩容 Apache APISIX 这个数据面集群,而无须对 Apache APISIX Ingress Controller 进行扩容;
  • 运维友好:在当前架构下,用户可按实际情况选择将数据面 Apache APISIX 集群部署在 Kubernetes 集群中,或是部署在物理机环境。且 Apache APISIX Ingress Controller 故障不会对业务流量造成任何影响。


关于 Apache APISIX


Apache APISIX 是一个动态、实时、高性能的 API 网关,提供负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。


你可以使用 Apache APISIX 处理传统的南北向流量,以及服务间的东西向流量,也可以当做 Kubernetes Ingress Controller 来使用。Apache APISIX 不仅覆盖了 NGINX 的传统功能,在可观测性上也和 SkyWalking 深度合作,大大提升了服务治理能力。


Apache APISIX 技术架构图


Apache APISIX 于 2019 年 4 月由深圳支流科技(api7.ai)创建,同年 6 月开源,10 月进入 Apache 孵化器,也是在这短短两年的时间,APISIX 成为了 Apache 顶级项目。支流科技(api7.ai)对应的商业化产品名字叫 API7。


全球已有数百家企业使用 Apache APISIX 处理关键业务流量,涵盖金融、互联网、制造、零售、运营商等等,比如美国航空航天局(NASA)、欧盟的数字工厂、中国航信、中国移动、腾讯、华为、微博、网易、贝壳找房、360、泰康、奈雪的茶等等。生活中,当你去买机票、刷微博、买奶茶的时候,背后的关键流量都是由 Apache APISIX 处理的。



 ✨ GitHub:https://github.com/apache/apisix
 💻 官网:https://apisix.apache.org

END -

「技术分享」某种程度上,是让作者和读者,不那么孤独的东西。欢迎关注我的微信公众号:Kirito的技术分享」




浏览 48
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报