Apache APISIX Ingress 1.6 正式发布!
距离上一个版本 v1.5 发布,已经过了 3 个月,我们很高兴地宣布 Apache APISIX Ingress v1.6 正式发布!
在该版本中,共有 29 位贡献者 参与代码提交,其中 17 位是新晋贡献者 ,感谢大家的支持和参与!
本次发布的 Apache APISIX Ingress v1.6 版本带来了众多新特性,主要集中在对 Gateway API 的支持,同时也在扩展 APISIX Ingress 的使用场景和易用性方面的提升。以下是一些重点特性的介绍。
扩展对 Gateway API 的支持
Gateway API 是 Kubernetes 中下一代的 Ingress 规范,致力于提供富有表现力,可扩展和面向角色的接口来发展 Kubernetes 的网络,各个 Ingress controller 项目都在积极推进对该规范的支持。Apache APISIX Ingress 项目自 2021 年开始就在积极地紧跟上游社区的发展,并积极推进 Gateway API 在 APISIX Ingress 项目中的实现。
当前,Apache APISIX Ingress 项目中通过 Gateway API 进行配置的特性尚处于 beta 阶段,欢迎大家在测试环境中积极进行测试,并提供反馈,我们将持续的对此特性进行优化和改进,尽早完成此特性的 GA。
在 APISIX Ingress v1.6 版本中,我们添加了对 Gateway API 中的 TCPRoute
和 UDPRoute
这两种资源的支持。同时,扩展了对 HTTPRoute
资源中 Filters
的支持,这样用户在使用 HTTPRoute
资源时,就可以在该资源中应用一些重定向、Header 改写等能力了。
例如可以使用如下配置:
apiVersion: gateway.networking.k8s.io/v1alpha2 kind: HTTPRoute metadata: name: http-route spec: hostnames: ["httpbin.org"] rules: - matches: - path: type: PathPrefix value: /headers filters: - type: RequestHeaderModifier requestHeaderModifier: add: - name: X-Api-Version value: v1 - name: X-api-key value: api-value set: - name: X-Auth value: filter remove: - Remove-header backendRefs: - name: httpbin port: 80
通过使用此配置,客户端在对 httpbin.org 进行请求时,将会添加 "X-Api-Version": "v1"
和 "X-Api-Key": "api-value"
的请求头,并将 "X-Auth"
请求头的值设置为 filter
,同时将移除 "Remove-Header"
这个请求头。
支持与服务发现组件的集成
Kubernetes 中默认是使用基于 DNS 的服务发现机制,但是应用在迁移和改造的过程中,并非所有的业务都会选择改造成基于 DNS 的这种服务发现机制,仍然有大量微服务架构的应用会继续使用原有的服务注册发现组件,比如 Consul,Nacos,Eureka 等。
为了将 APISIX Ingress 打造成一款更加好用的 Ingress controller,我们在 v1.6 版本中新增了与服务发现组件集成的能力,用户可以将注册在 Consul/Nacos/Eureka/DNS 中的服务,通过 APISIX Ingress 暴露出来,无论是南北向还是东西向流量的场景均可使用。
例如通过如下配置,声明要代理的服务是通过 Nacos 注册的名为 httpbin
的服务。
apiVersion: apisix.apache.org/v2 kind: ApisixUpstream metadata: name: httpbin-upstream spec: discovery: type: nacos serviceName: httpbin
然后在 ApisixRoute 资源中对其进行引用即可:
apiVersion: apisix.apache.org/v2 kind: ApisixRoute metadata: name: httpbin-route spec: http: - name: rule1 match: hosts: - local.httpbin.org paths: - /* upstreams: - name: httpbin-upstream
这样客户端在访问时,就会被 APISIX 代理到 Nacos 中注册的服务了。更多内容可参考文档。
支持代理外部服务
与上述功能类似,Apache APISIX Ingress v1.6 版本中还添加了对外部服务代理的能力。主要是为了便于用户对一些没有部署在 Kubernetes 中的外部服务进行代理。
最典型的场景比如说消息推送。业务为了保障服务的高可用,通常会选择多家供应商提供服务,但供应商也可能会出现一些异常的情况。这种时候就可以通过这个功能,在多个供应商提供的服务中进行动态调度了。
比如通过如下配置设置两个供应商的域名作为后端:
apiVersion: apisix.apache.org/v2 kind: ApisixUpstream metadata: name: notify-api spec: externalNodes: - type: Domain name: foo.com - type: Domain name: bar.com healthCheck: passive: unhealthy: httpCodes: - 500 - 502 - 503 - 504 httpFailures: 3 timeout: 5s active: type: http httpPath: /healthz timeout: 5s healthy: successes: 3 interval: 2s httpCodes: - 200
然后在 ApisixRoute 资源中进行引用:
apiVersion: apisix.apache.org/v2 kind: ApisixRoute metadata: name: notify-route spec: http: - name: rule1 match: hosts: - local.notify.app paths: - /* upstreams: - name: notify-api
这样,如果某个供应商的服务出现异常,则会根据健康检查的规则自动地代理到备用的服务上,从而保障业务的可用性。
同样的,如果业务中存在需要代理 ExternalName Service 的场景也可以使用这种方式进行代理。更多内容可参考文档。
其他
除了上述的这些功能外,在此版本中还添加了很多其他功能,包括:
- 支持 Ingress 资源中代理不同 namespace 中的后端服务;
- 原生的 MQTT 协议的代理支持;
- 允许为 4 层代理添加插件支持;
- 允许在 ApisixRoute 资源中使用 vars 进行条件匹配;
- 日志轮转支持;
更多详细的变更请查看 Release Note:https://github.com/apache/apisix-ingress-controller/blob/master/CHANGELOG.md#160

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
一文读懂 Kubernetes 存储设计
在 Docker 的设计中,容器内的文件是临时存放的,并且随着容器的删除,容器内部的数据也会一同被清空。不过,我们可以通过在 docker run 启动容器时,使用 --volume/-v 参数来指定挂载卷,这样就能够将容器内部的路径挂载到主机,后续在容器内部存放数据时会就被同步到被挂载的主机路径中。这样做可以保证保证即便容器被删除,保存到主机路径中的数据也仍然存在。 与 Docker 通过挂载卷的方式就可以解决持久化存储问题不同,K8s 存储要面临的问题要复杂的多。因为 K8s 通常会在多个主机部署节点,如果 K8s 编排的 Docker 容器崩溃,K8s 可能会在其他节点上重新拉起容器,这就导致原来节点主机上挂载的容器目录无法使用。 当然也是有办法解决 K8s 容器存储的诸多限制,比如可以对存储资源做一层抽象,通常大家将这层抽象称为卷(Volume)。 K8s 支持的卷基本上可以分为三类:配置信息、临时存储、持久存储。 配置信息 无论何种类型的应用,都会用到配置文件或启动参数。而 K8s 将配置信息进行了抽象,定义成了几种资源,主要有以下三种: ConfigMap Secret D...
- 下一篇
Weave GitOps 存在访问控制不当漏洞
漏洞描述 Weave GitOps 是对 Flux 的扩展,提供对应用程序的部署和监控以及提高 GitOps 持续交付的便捷性。 Weave GitOps 的本地 S3 存储桶用于同步应用于 Kubernetes 集群的文件,由于受影响版本中的 S3 存储桶端点没有阻止未经授权访问,未经过 S3 存储桶或目标 Kubernetes 集群身份验证的本地攻击者可查看和更改 S3 存储桶中的内容,进而将恶意负载通过 S3 存储桶注入到目标 Kubernetes 集群中并远程部署。 漏洞名称 Weave GitOps 存在访问控制不当漏洞 漏洞类型 - 发现时间 2023-01-10 漏洞影响广度 极小 MPS编号 MPS-2022-1935 CVE编号 CVE-2022-23508 CNVD编号 - 影响范围 github.com/weaveworks/weave-gitops@[0.0.1, 0.12.0) 修复方案 升级github.com/weaveworks/weave-gitops到 0.12.0 或更高版本 参考链接 https://www.oscs1024.com/hd/MPS...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Mario游戏-低调大师作品
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker快速安装Oracle11G,搭建oracle11g学习环境