TOC
前言
我们很高兴推出 Contour 的 v1.24.0 版本,这是我们针对 kubernetes 集群的第7层 HTTP 反向代理.
主要更新
修复了重复 HTTPProxy include condition的处理
重复的 include condition 现在能够被正确识别, httpproxy 被标记状态为 IncludeError 和 reason 为 DuplicateMatchConditons.
以前 HttPProxy 处理器只是逐个元素比较相邻的 include 和 condition,而不是作为一个整体在一起比较.
此外,当识别出重复的 include condition 时,以前的行为是丢弃违规的 HTTPProxy 上所有的路由,包含有效路由.
因此,任何引用的子 HTTPProxy 都会被标记为孤儿,即使它们能够被正确的包含(即使子 HTTPProxy 的配置是没问题的).有了这个更改后,所有有效的 include 和 Route 规则都会在数据面中处理和编程,这和以前的版本有所不同.
如果一个 Include 和列表中位于它前面的 Include 具有完全相同的匹配条件,那么这个 Include 就会被认为是一个副本.
只有被复制的 Include 引用但是没有被其他任何有效 Include 引用的子 HTTPProxy 会被标记为孤儿 HTTPProxy.
添加对空前缀或者前缀路径匹配/的警告
---
apiVersion: projectcontour.io/v1
kind: HTTPProxy
metadata:
name: example
spec:
virtualhost:
fqdn: foo-example.bar.com
includes:
- name: example-child1
- name: example-child2
---
apiVersion: projectcontour.io/v1
kind: HTTPProxy
metadata:
name: example-child1
spec:
routes:
- conditions:
- prefix: /
services:
- name: s1
port: 80
---
apiVersion: projectcontour.io/v1
kind: HTTPProxy
metadata:
name: example-child2
spec:
routes:
- conditions:
- prefix: /foo
services:
- name: s2
port: 80
对包含和重复路由检测的更改
目前在 HTTPProxy include 条件树或单独的 HTTPProxy 中是没有检查重复路由条件的.这意味着您可以让 HTTPProxy 的路由列表后面列出的路由覆盖其他路由.
如果您有一个基于 Include 条件和 Route 件生成重复路由的路由效果,也会发生同样的问题.
如果您依赖于这种行为的话,那么在下一个版本中 Contour 将会进行更改.
我们将会提交一份设计文档来解决这个问题,因为这是一个重大的行为更好,并且鼓励社区参与进来. 当前的计划是完全验证重复路由匹配条件,因为它们是从 Include 和 Route 条件中生成出来的. 可能会对 HTTPRoutes 上设置的状态条件进行更改,以改进对这种无效配置的提示.
@sunjayBhatia - https://github.com/projectcontour/contour/pull/4931 - https://github.com/projectcontour/contour/pull/5017
Contour 支持 Gateway API v0.6.0
有关于Gateway API具体信息,请查看 Gateway API 的发布说明. 这个版本的API包含了一些与 Contour 用户相关的更改.
ReferenceGrant 资源升级到 v1beta1,ReferencePolicy已经从API中移除. v1alpha2 版本的 GatewayClass、Gateway和HTTPRoute已弃用. 为了保持一致性,各种资源的状态条件发生了重大变化: - 已向 Gateway 和 Gateway Listener 添加了 Condition 的支持 - 就绪条件被移动到扩展一致性,此时 Contour 不处理这个条件 - Scheduled condition 在 Gateway 中弃用
@sunjayBhatia - https://github.com/projectcontour/contour/pull/4944
移除 shutdown-manager sidecar容器的liveness 探针
@skriss - https://github.com/projectcontour/contour/pull/4967
次要更新
其他更新
文档更新
弃用和移除通知
兼容的 kubernetes 版本
Contour v1.24.0 针对 kubernetes 1.24 到 1.26 进行了测试.
感谢社区
我们非常感谢所有社区的贡献,使 Contour 变得更好!在此版本中,特别感谢以下贡献者:
您是 Contour 用户吗?我们很想知道!
如果您正在使用 Contour,并且希望将您的组织添加到我们的采用者列表中,请访问此页面.如果您希望保持您的组织名称匿名,但仍然向我们反馈您对 Contour 的使用和场景,请在这个 Github issue 中留言.
发布说明地址
https://github.com/projectcontour/contour/releases/tag/v1.24.0
微信公众号
扫描下面的二维码关注我们的微信公众号,第一时间查看最新内容。同时也可以关注我的Github,看看我都在了解什么技术,在页面底部可以找到我的Github。
温馨提示
本文还在持续创作中,如果你对本文主题感兴趣可以加我微信好友进行催更,博客下方可以找到我的微信联系方式 :)