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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
webpack打包原理 ? 看完这篇你就懂了 !
入口起点(entry point)指示 webpack 应该使用哪个模块,来作为构建其内部依赖图的开始。
null仔
2020/03/02
1.3K0
前端性能优化——包体积压缩82%、打包速度提升65%
压缩项目打包后的体积大小、提升打包速度,是前端性能优化中非常重要的环节,笔者结合工作中的实践总结,梳理出一些 常规且有效 的性能优化建议
@超人
2023/05/12
2.9K0
前端性能优化——包体积压缩82%、打包速度提升65%
Element UI 源码中学到的技巧
导语:Element UI[1] 是世界级最优秀的UI框架之一。这个优秀的框架有哪些我们能学习的优点呢?这篇文章将分享作者在查看这个框架仓库源码中认为值得参考的技巧,建议配合element[2]源码食用更佳。
@超人
2021/07/29
5270
Element UI 源码中学到的技巧
为什么大厂都要开发自己的脚手架?
每个初入大厂的前端同学,在真正投入开发之前的第一件事可能就是熟悉公司的脚手架,从那一刻起,你就抛弃了熟悉的cra、vue-cli、vite等,成为了合格的大厂人(误)
winty
2024/04/18
5510
为什么大厂都要开发自己的脚手架?
TS 4.5 最新发布!新的扩展名、新语法、新的工具类型
TypeScript 4.5 已于 10.1 发布 beta 版本,本文将介绍部分其中值得关注的新特性与变更,如新增 .mts / .cts 扩展名、新的类型导入语法、新增内置工具类型等,你也可以阅读 devblog[1] 原文了解更多。
落落落洛克
2021/12/01
1.5K0
TS 4.5 最新发布!新的扩展名、新语法、新的工具类型
浏览器隐身模式下的你,仍然没有任何隐私
你以为你浏览器开了隐身模式,你就真的"隐身"了吗?No!No!No!今天带你从前端的视角来看了解浏览器的隐身模式。
程序员鱼皮
2021/08/23
3.6K0
浏览器隐身模式下的你,仍然没有任何隐私
大前端中如何更优雅的编写网络请求层逻辑
最近公司部分前端工程转 typeScript 的实践中,也尝试了 ts 的写法,诸如依赖注入、控制翻转、注解等。这些概念在 Java 等后端开发中应用可能更为广泛,但也不影响在前端领域的尝鲜。最终的写法如下;
coder_koala
2021/12/15
6890
大前端中如何更优雅的编写网络请求层逻辑
【tauri开发】windows管理员身份开机启动
最近遇到个bug,问题一路捋上来,查到了windows权限相关,即我需要将应用改成默认使用管理员身份运行
微芒不朽
2024/06/25
4340
【tauri开发】windows管理员身份开机启动
前端模块化-总结_前端模块化规范
先说说什么是模块化,就是将独立的功能代码封装成一个独立的文件,其他模块需要使用,在进行引用。
全栈程序员站长
2022/11/17
6720
前端模块化-总结_前端模块化规范
每日优鲜供应链前端团队微前端改造
我所在团队是做 toB 业务的,技术栈是 Vue,团队目前有十多个典型的 toB 业务(菜单+内容布局),这些业务都是服务于一个大平台的,因为历史原因,每个业务都是独立的,都有一个 html 入口,所以当用户在这个大平台上使用这十多个业务的时候,每当切换系统时,页面都会刷新,体验很差;在开发层面,这十多个业务又有太多共同之处,每次修改成本都很高。
ConardLi
2019/10/31
1.6K0
每日优鲜供应链前端团队微前端改造
聊一聊面试中经常被问到的Tree Shaking
天下武功,唯快不破!最新版的 antd 以及 vue 都对 Tree Shaking 提供了支持。我们内部的组件在支持这部分功能时,也专门梳理了相关的特性。这是四月份写的文章了,长时间不用就会忘,复习一下!
前端迷
2020/08/28
2.1K0
聊一聊面试中经常被问到的Tree Shaking
webpack 最简静态资源打包及运行时分析
我们使用 webpack 打包两个文件,index.js 与 sum.js,并通过脚本文件 build.js 进行打包。
山月
2022/11/02
1K0
webpack 最简静态资源打包及运行时分析
Webpack完整打包流程分析
webpack 在前端工程领域起到了中流砥柱的作用,理解它的内部实现机制会对你的工程建设提供很大的帮助(不论是定制功能还是优化打包)。
gogo2027
2022/10/21
9860
webpack学习笔记
原始开发模式各种js文件引入,顺序不能乱,引入的数据太大,各种js之间有关联,可以考虑所有文件复制到一个js文件里,但又有作用域问题、文件太大、可维护性差
kif
2023/02/27
2730
webpack学习笔记
一行 Object.keys() 引发的血案
有一天上线后大佬反馈了一个问题,他刚发的动态在生成分享卡片的时候,卡片底部的小程序码丢失了,然而其他小伙伴都表示在自己手机上运行正常。事实上大佬也说除了这条动态以外,其它都是正常的。
coder_koala
2021/12/22
8080
一行 Object.keys() 引发的血案
手摸手实现一个webpack
在平时的工作和学习过程中,webpack 是一个重要的知识点,本文通过分析 webpack 的打包原理,最终带大家实现一个简易版的 webpack。
astonishqft
2022/05/10
4250
面试官: 你了解过Babel吗?写过Babel插件吗? 答: 没有。卒
了解过抽象语法树,又称AST,有学习过,也写过一个基于AST的乞丐版模板引擎,先是词法解析token,然后生产抽象语法树,然后更改抽象语法树,当然这是插件做的事情,最后根据新的AST生成代码。
落落落洛克
2021/08/25
5400
面试官: 你了解过Babel吗?写过Babel插件吗? 答: 没有。卒
学不动了,Vercel 推出比 Vite 快 10 倍的打包器 Turbopack
Vercel 是由 Guillermo Rauch 创立的云服务公司,前身为 Zeit,有 Next.js、Node.js 的 websocket 框架 socket.io 和 MongoDB 客户端 mongoose 等知名开源项目为大众所知。Next.js 为了实现后端渲染,重度使用了 JS 生态中的打包构建工具 webpack。
桃翁
2022/12/18
3.9K0
学不动了,Vercel 推出比 Vite 快 10 倍的打包器 Turbopack
前端架构思考,Vue or React?领域设计、文件结构、数据管理、主题替换
其实写到这里,相信大家已经明白我的价值倾向了。在没有企业包袱的角度来看,大厂都是 react 为先😯, 我更加推荐使用 vue,原因如下👇
winty
2023/10/26
3670
前端架构思考,Vue or React?领域设计、文件结构、数据管理、主题替换
吐血整理的webpack入门知识及常用loader和plugin
在这个内卷为王的时代,内卷文化已经渗透到工作和生活的方方面面。不在知识的海洋里翱翔,就会在知识的海洋里溺亡。作为一名新生代农民工,在智商与勤奋已经被工友大佬们双重碾压的同时,面对日新月异的搬砖(编程)技能,学习的速度已经赶不上遗忘的速度,可是还得强忍泪水拥抱变化、不断打怪升级。
腾讯新闻前端团队
2022/06/10
1.7K0
推荐阅读
相关推荐
webpack打包原理 ? 看完这篇你就懂了 !
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验