51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

K8S 生态周报| Cilium 新版本发布默认开启 ICMP 策略防护

Thanos v0.27.0 正式发布

Thanos 从上个版本到现在也就不到 3 个月的时间,变化不算太大,如果想要升级则需要注意如下内容:

  • Ruler: 检查是否设置了 --eval-interval 参数,如果你没有设置这个参数,并且在生成规则的时候还依赖这个值的话,那么本次升级就会带来比较严重的影响。新版本中将这个值从 30s 调整到了 1 分钟,这是为了能更好的符合 Prometheus 告警生成器规范。https://github.com/prometheus/compliance/blob/main/alert_generator/specification.md#executing-an-alerting-rule
  • #5410: 在 Query 中添加了一些 defer qry.Close(),添加这个代码可以在每次查询结束后,自动调用 Close(),这可以在内存回收中减少一些波动;

此外,这个版本中还添加了一个比较有趣的特性,为 Receive 添加了一种新的哈希算法 #5408。之前的实现中默认都是使用 hashmod,现在可以通过 --receive.hashrings-algorithm=ketama 来使用 ketama 一致性哈希算法了。

这里简单来说下之前算法的问题,使用 hashmod 几乎是最为简单的分片方式,但是一旦副本数有调整的时候,这就会导致跳过某些分片。想要在生产环境中大规模使用此系统或者想要动态的使用此系统的时候,都是需要解决这个问题的。

ketama 算是一个可以比较好的解决扩/缩容场景,以及在平衡性方面表现还不错的算法了,在很多的系统中都可以使用类似的能力,比如设计缓存系统之类的。当然,后续也许还会增加其他哈希算法,但这终究还是要看实际的规模,以及在性能 & 资源 & 功能 方面的权衡了。

Cilium v1.12.0-rc3 发布

Cilium v1.12 即将正式发布,在 v1.12 版本中会将 Cilium Service Mesh Ingress 升级至 Stable ,算是一个大的飞跃了。关于此特性,可以查看我之前 Cilium Service Mesh 相关的文章。

我这里主要介绍一个值得关注的特性,在 #20174 中将 ICMP network policy 功能默认开启了。

其实 Cilium 在去年就已经支持在配置 CiliumNetworkPolicy 的时候配置 ICMP 协议了,但是由于 eBPF 程序 Size 的问题,默认没有启用。现在该问题已经解决,所以可以默认将它开启了, 该配置如下:

apiVersion: "cilium.io/v2"
kind: CiliumNetworkPolicy
metadata:
  name: "icmp-policy-deny"
spec:
  description: "ICMP policy deny"
  endpointSelector:
    matchLabels:
      id: app1
  ingressDeny:
  - fromEndpoints:
    - matchLabels:
        id: app2
    icmps:
    - fields:
      - type: 8

这可以用来提供更加安全的网络环境,避免攻击者利用 ICMP 了解你的网络,或者进行攻击。

额外一说,在配置中 icmps[].fields[].type 为 8 表示是 IPv4,如果是 IPv6 则是 128 。

此外,如果你使用的 CNI 是 Calico 的话,也是支持 ICMP 的 NetworkPolicy 配置的。我是 Calico 的社区大使,最近有篇对我的专访,有兴趣的小伙伴可以看看:https://sourl.cn/uG7bRn

cert-manager v1.9.0-beta.1 发布

cert-manager 想必大家不会太陌生,它是在 Kubernetes 和 OpenShift 集群中最简单的证书管理工具。

在 v1.9 版本中主要是进行一些项目的稳定性和质量提升,以及增加一些新功能和提升用户体验。

在这个版本中有几个比较值得注意的功能:

  • 为 Ingress 资源新增了一个 cert-manager.io/revision-history-limit annotation,这样可以控制 CertificateRequests 的历史记录;
  • 为 Ingress 资源添加了一组关于 private-key 相关的 annotation,比如 cert-manager.io/private-key-algorithm 之类的,可以控制其生成算法,编码格式,保存时间等。

其他的功能则包含一些 bugfix,以及一些新的 metrics 等。如果想升级到新版本,基本上是比较平滑的。

上游进展

最近社区还在 Kubernetes v1.25 版本的发布流程中,此版本中目前有 55 个跟踪的功能。

有个跨越了近一年的新特性目前还在 review 中,为 kubelet 提供 OpenTelemetry 的 tracing 能力。

这样可以更容易的去进行 kubelet 的问题定位,以及可以通过 OpenTelemetry 采集 CNI/CRI/CSI 等接口的调用情况等。希望它能顺利的在 v1.25 完成。


赞(3)
未经允许不得转载:工具盒子 » K8S 生态周报| Cilium 新版本发布默认开启 ICMP 策略防护