Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >K8S 生态周报| Cilium 新版本发布默认开启 ICMP 策略防护

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

作者头像
Jintao Zhang
发布于 2022-12-07 06:28:48
发布于 2022-12-07 06:28:48
48000
代码可运行
举报
文章被收录于专栏:MoeLoveMoeLove
运行总次数:0
代码可运行

“「K8S 生态周报」内容主要包含我所接触到的 K8S 生态相关的每周值得推荐的一些信息。欢迎订阅知乎专栏「k8s生态」[1]。 ”

大家好,我是张晋涛。

你有没有考虑过,也许作为工程师,我们的设备可以更简单?

最近两周我进行了一些不开电脑的尝试。尤其是本周,我的大多数工作都是用 iPad 完成的。

具体而言,在写代码和测试方面,我使用了 GitHub 的 Codespaces, 这是 GitHub 推出的一个云端开发环境,与 Gitpod 比较类似。

主要的区别在于 Gitpod 是通过启动一个安全容器来提供环境,而 GitHub Codespaces 则是启动了一个新的 VM,所以这两者比较 而言,GitHub Codespaces 会更贵一些。

速度方面,Gitpod 号称自己更快,不过就目前的网络环境而言,我倒是没有明显的感觉。

体验方面,GitHub Codespaces 其实就是云端的 Visual Studio Code,我之前没怎么用过, 偶尔还是会继续我之前的习惯,直接在它的终端下就 Vim 编辑文件了。启动环境后默认是 4C8G,比我的电脑差很多, 但只是用来编码和运行测试也足够。

我觉得它做的比较好的点在于,启动环境后默认就进行了 Github 的授权,尽管代码仓库配置的都是 HTTPS 的连接, 但无需密码或者私钥均可直接提交代码。

其余方面 iPad 上的应用也都能支持。飞书的屏幕共享弱了些,只能全屏直播

总的来说,体验还不错,基本的需求可以满足,也不需要自己额外维护云端环境。弊端在于网络环境并不稳定,浏览器内进行操作,相比本地感觉慢了一点。而且我个人还是更喜欢直接用 Vim 能更快点。

但从我这次的尝试来看,也许之后将环境都迁移到云端后,使用的设备可以更加简单轻量。甚至用手机连到云端也可以完成很多事情。

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 的问题,默认没有启用。现在该问题已经解决,所以可以默认将它开启了, 该配置如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 完成。

感兴趣的小伙伴可以参考:KEP-2831: Instrumenting Kubelet for OpenTelemetry Tracing


参考资料

[1]k8s生态: https://zhuanlan.zhihu.com/container

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MoeLove 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
还在用 Swagger 生成接口文档?5分钟带你集成个更爽的!
JApiDocs是一个无需额外注解、开箱即用的SpringBoot接口文档生成工具。
一行Java
2023/02/23
9090
还在用 Swagger 生成接口文档?5分钟带你集成个更爽的!
无需注解的 SpringBoot API文档生成神器!
JApiDocs是一个无需额外注解、开箱即用的SpringBoot接口文档生成工具。
搜云库技术团队
2022/04/08
2.1K0
无需注解的 SpringBoot API文档生成神器!
干掉 Swagger (丝袜哥),试试这个新工具!
JApiDocs是一个无需额外注解、开箱即用的SpringBoot接口文档生成工具。
好好学java
2020/12/08
4770
干掉 Swagger (丝袜哥),试试这个新工具!
JApiDocs(自动生成接口文档神器)
注:官方文档中注明分组名称@description,但是实际应用中不需要加入注解,像下例所示,直接写注释即可。(类上写不写都行,方法上如果加上@description反而不显示) 例:
huofo
2022/03/18
1.3K0
JApiDocs(自动生成接口文档神器)
不想用 Swagger?可以试试这个神器!
在《芋道 Spring Boot API 接口文档 Swagger 入门》一文中,我们一起学习了如何使用 Swagger 生成接口文档。但是狗芳嫌弃需要在 Controller 上添加一堆 @ApiOperation、@ApiOperation 注解,对代码有一定的侵入性,就抱着艿艿的大腿,跪求有没其它解决方案。
芋道源码
2020/12/08
1.1K0
不想用 Swagger?可以试试这个神器!
Swagger之外的选择
swagger想必大家都用过吧,非常方便,功能也十分强大。如果要说swagger有什么缺点,想必就是注解写起来比较麻烦。如果我说有一款不用写注解,就可以生成文档的工具,你心动了吗?他就是我们今天的主角——JApiDocs。
Java旅途
2020/07/16
7440
Swagger之外的选择
swagger想必大家都用过吧,非常方便,功能也十分强大。如果要说swaager有什么缺点,想必就是注解写起来比较麻烦。如果我说有一款不用写注解,就可以生成文档的工具,你心动了吗?他就是我们今天的主角——JApiDocs。
Java旅途
2020/06/25
9680
3秒集成API接口文档
在ApiDoc输出目录V1.0里面的index.html打开即可看到类似下图的接口文档
暖月寒星
2020/12/09
1.2K0
JApiDocs —— 接口文档快速生成工具
如果源码路径没有全部识别出来,可以通过config.addJavaSrcPath来添加模块的源码路径,注意要添加到src/main/java这一级。
时间静止不是简史
2021/04/08
2.7K0
使用japidocs生成springboot api文档
将在C:\ProjectName\docs\V2.0\路径下生成文档文件 首页index.html效果如图
路过君
2020/10/28
1.1K0
使用japidocs生成springboot api文档
还在用Swagger?试试这款零注解侵入的API文档生成工具,跟Postman绝配!
在我们使用Swagger的时候,经常会需要用到它的注解,比如@Api、@ApiOperation这些,Swagger通过它们来生成API文档。比如下面的代码:
macrozheng
2021/11/10
1.1K0
还在用Swagger?试试这款零注解侵入的API文档生成工具,跟Postman绝配!
芋道 Spring Boot API 接口文档 Swagger 入门
目前,大多数系统都采用前后端分离。在享受前后端分离的好处的同时,接口联调往往成为团队效率的瓶颈,甚至产生前后端的矛盾。简单归结来说,有几方面的原因:
芋道源码
2020/05/19
3.7K0
芋道 Spring Boot API 接口文档 Swagger 入门
你还在用 swagger?试试这几款在线文档生成神器!!
点击关注公众号,Java干货及时送达 前言 最近公司打算做一个openapi开放平台,让我找一款好用的在线文档生成工具,具体要求如下: 必须是开源的 能够实时生成在线文档 支持全文搜索 支持在线调试功能 界面优美 说实话,这个需求看起来简单,但是实际上一点的都不简单。 我花了几天时间到处百度,谷歌,技术博客 和 论坛查资料,先后调研了如下文档生成工具: gitbook github地址:https://github.com/GitbookIO/gitbook 开源协议:Apache-2.0 License
Java技术栈
2022/03/03
3.7K0
swagger使用教程
swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RestFul风格的web服务,总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器断的代码,允许API来始终保持同步。
芈亓
2023/10/18
7470
SpringBoot整合Swagger生成接口文档
目前,大多数公司都采用了前后端分离的开发模式,为了解决前后端人员的沟通问题,后端人员在开发接口的时候会选择使用swagger2来生成对应的接口文档,swagger2提供了强大的页面调试功能,这样可以有效解决前后端人员沟通难的问题。
jwangkun
2021/12/23
4260
SpringBoot整合Swagger生成接口文档
Spring MVC中使用Swagger生成API文档
实际项目中非常需要写文档,提高Java服务端和Web前端以及移动端的对接效率。 听说Swagger这个工具,还不错,就网上找了些资料,自己实践了下。 一:Swagger介绍Swagger是当前最好用的Restful API文档生成的开源项目,通过swagger-spring项目实现了与SpingMVC框架的无缝集成功能,方便生成spring restful风格的接口文档,同时swagger-ui还可以测试spring restful风格的接口功能。 官方网站为:http://swagger.io/ 中文网站:http://www.sosoapi.com
Java架构师历程
2018/09/26
2.2K0
Spring MVC中使用Swagger生成API文档
Spring Boot(九)Swagger2自动生成接口文档和Mock模拟数据
在当下这个前后端分离的技术趋势下,前端工程师过度依赖后端工程师的接口和数据,给开发带来了两大问题:
磊哥
2018/11/22
3.6K0
Swagger2--自动生成接口文档工具学习
   在swagger2版本中,需要使用swagger2,并可以从浏览器中ui渲染,必须导入两个依赖 (这里放的是使用人数最多的依赖版本)
RAIN7
2022/09/26
2.9K0
Swagger技术(接口文档实时动态生成工具)
接口文档对于前后端开发人员都十分重要。 尤其近几年流行前后端分离后接口文档又变成重中之重。 接口文档固然重要,但是由于项目周期等原因后端人员经常出现无法及时更新, 导致前端人员抱怨接口文档和实际情况不一致。 很多人员会抱怨别人写的接口文档不规范,不及时更新。 当时自己写的时候确实最烦去写接口文档。这种痛苦只有亲身经历才会牢记于心。 如果接口文档可以实时动态生成就不会出现上面问题。 Swagger 可以完美的解决上面的问题。
时间静止不是简史
2020/07/24
12.2K1
Swagger技术(接口文档实时动态生成工具)
Gin 生成 Swagger 接口文档
后台服务通过接口(如 RESTful API)对外提供服务时,需要有明确的接口文档。
恋喵大鲤鱼
2023/02/23
2.4K0
Gin 生成 Swagger 接口文档
推荐阅读
相关推荐
还在用 Swagger 生成接口文档?5分钟带你集成个更爽的!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验