云原生一周动态要闻:
- Lens 5.0.0 发布
- GitHub 推出 AI 编程工具 GitHub Copilot
- Kubernetes 发布 2020 年社区年度报告
- Weaveworks 推出适用于 Kubernetes 的集成 GitOps 平台
- HashiCorp Boundary 0.4.0 发布
- 开源项目推荐
- 文章推荐
IT 从业人员想必都听说过 《深入理解计算机系统》 这本神书,也就是大名鼎鼎的 CSAPP(Computer Systems: A Programmer's Perspective),它将 硬件、系统、软件 这三者结合起来,形成一个统一的框架,从程序员的视角来理解计算机系统的运作模式。
这本书也是 CMU(Carnegie Mellon University),即卡内基梅隆大学的计算机系统入门教材,CMU 还录制了讲课视频,如果觉得看书难度比较大,可以先看一遍视频,再回过头来阅读教材,或者可以两者结合。当然,如果你的英文水平还不太理想,可以选择观看带中文字幕的视频,视频链接在 B 站。
云原生动态
Lens 5.0.0 发布
Lens 是一个强大的 kubernetes IDE。可以实时查看 kubernetes 集群状态,比如 Pod 实时日志查看、集群 Events 实时查看、集群故障排查等。有了 Lens,不再需要敲打很长的 kubectl 命令,只要使用鼠标点击几下,非常便捷。
Lens 为在 Kubernetes 中运行的所有内容提供完整的态势感知。它降低了新手的进入门槛,并提高了经验丰富的人的工作效率。
这个新版本的亮点是 Catalog、Hotbars 和 Spaces。
Hotbar 现在是主要导航,允许用户从目录中挑选最重要和最常用的功能(例如开放集群)并将它们分配给 hotbar。用户可以访问多个快捷栏,在它们之间快速切换并根据自己的喜好进行自定义以方便调用。
使用 Spaces 时,你可以选择共享对集群的访问权限。你还可以接受其他人的邀请以访问他们的集群。为了实现这一点,Lens 创建了一项全新的技术:集群连接。它允许 Lens 用户将他们的任何集群连接到 Spaces,而无需在防火墙上启用入站端口。它利用端到端加密来保护用户和集群之间的连接,消除对 VPN 的需求。这意味着无需通过 Internet 公开 Kubernetes API。开发人员和运营商可以从任何地方轻松访问和使用他们的 Kubernetes 集群。
GitHub 推出 AI 编程工具 GitHub Copilot
GitHub Copilot 不仅只是一个代码自动补全工具,其底层技术采用了由 OpenAI 打造的新 AI 系统——Codex,目前经过了数十亿行公开代码的训练,与大多数代码辅助工具相比,它可以理解更多的上下文。无论是文档、注释、函数名,还是代码本身,GitHub Copilot 都会基于开发者提供的上下文来合成匹配的代码。开发者可通过 GitHub Copilot 在编辑器中获取有关整行代码或完整函数的建议。
GitHub Copilot 运作流程如下图所示:
Kubernetes 发布 2020 年社区年度报告
受到 Apache 软件基金会的PMC 报告开放指南和 CNCF 项目年度报告的启发,Kubernetes 项目宣布了 Kubernetes 社区针对特殊兴趣组 (SIG) 和工作组 (WG) 的年度报告。在其旗舰版中,2020 年总结报告侧重于通过评估和促进上游社区内团体的健康来改善 Kubernetes 生态系统。
通过这份报告,Kubernetes 希望为最终用户社区提供信息,他们可以使用这些信息来确定他们可以支持项目的方式,并抢先了解即将推出的功能的路线图。
Weaveworks 推出适用于 Kubernetes 的集成 GitOps 平台
Weaveworks 首席运营官 Steve George 表示,Weave GitOps 聚合了 Weaveworks 一直在推进的开源软件开发工具,使它们更易于部署和使用。
Weaveworks GitOps 产品组合的核心是 Flux,这是一种开源工具,可自动确保集群状态与存储在 Git 存储库中的配置相匹配。它在集群中使用一个称为 Flagger 的操作符来触发将应用程序部署到 Kubernetes,而无需 IT 团队获取和部署专用的持续交付平台。
Flux 监控所有镜像存储库,检测新镜像,触发部署并相应地更新配置。在该核心平台之上,Weaveworks 添加了 Team Workspaces,这是一个工作流应用程序,用于跟踪对基于 Git 的部署的更改,可供多个 DevOps 团队使用。每个工作区还可以跨越多个 Kubernetes 集群,以简化跨 Kubernetes 集群队列的应用程序部署。
HashiCorp Boundary 0.4.0 发布
HashiCorp Boundary 是基础设施网格,使开发人员、DevOps 和 SRE 可以使用细粒度的授权来安全地访问基础设施服务(SSH 服务器、Kubernetes 集群),而无需直接访问网络,同时又禁止使用 VPN 或堡垒主机。
会话证书代理:HashiCorp Boundary 0.4.0 增加了一个 Vault 集成,用于将 Vault 秘密代理到 Boundary 客户端(命令行和桌面客户端)以用于 Boundary 会话。
Vault 机密的代理是 Boundary 更大的凭证管理故事的基础,用于无缝单点登录到基础架构目标。此功能引入了新的边界资源 -凭证存储、凭证库和凭证- 以支持将凭证与用户会话绑定,以及在命令行和 Boundary Desktop 中的会话初始化期间显示这些凭证。
boundary connect
凭证代理集成:此外,我们已经开始集成到边界连接助手中,在这个版本中从 Postgres 助手开始;如果凭据包含用户名/密码并且边界连接 postgres 是正在使用的帮助程序,则该命令将自动将凭据传递给 psql 进程。
会话安全改进:边界工作人员现在将在他们无法向工作人员发出状态请求时关闭他们正在处理的任何现有代理连接。此行为的超时当前为 15 秒。
开源项目推荐
eBPFSnitch
eBPFSnitch 是基于 eBPF 的 Linux 防火墙程序,eBPF 想必大家都知道是啥,这里就不赘述了。想用 eBPF 替代 iptables 作为防火墙还是有很大挑战的,每加一条规则就需要进行编码,极其不便,最好是能通过命令来添加和修改规则。有几个项目对这个方向进行了尝试,但已经很久不更新了,这里就不介绍了。eBPFSnitch 这个项目提供了一个 GUI 来添加和修改防火墙规则,可惜的是目前还没有命令行版本。
missing-container-metrics
Kubernetes 默认情况下使用 Cadvisor 来收集容器的各项指标,足以满足大多数人的需求,但还是有所欠缺,比如缺少对以下几个指标的收集:
OOM kill
容器重启的次数
容器的退出码
missing-container-metrics 这个项目弥补了 Cadvisor 的缺陷,新增了以上几个指标,集群管理员可以利用这些指标迅速定位某些故障。例如,假设某个容器有多个子进程,其中某个子进程被 OOM kill,但容器还在运行,如果不对 OOM kill 进行监控,管理员很难对故障进行定位。
podman-static
Podman 是 Red Hat 开源的容器运行时项目,它的功能与 Docker 几乎重合,甚至还有很多新增的功能,它与 Docker 等容器运行时最大的差异是不需要运行守护进程。
默认情况下,Podman 是不提供静态二进制文件的,你需要安装完整的依赖才能正常使用,而且只支持特定几个发行版,其他发行版需要自己从头编译。 podman-static 这个项目就是为了解决这个问题,它提供了 Podman 及其依赖的静态二进制文件,你只需要拷贝这几个二进制文件就能让 Podman 正常工作。想想你的 Openwrt 吧,这个项目就是你的救星。
FirefoxPWA
PWA 是渐进式网络应用程序(Progressive Web Apps)的缩写,旨在为跨平台的 HTML 网页带来类似于本地应用的用户体验,由 Google 在 2015 年推出。目前只有部分基于 chromium
内核的浏览器支持 PWA,FireFox 默认情况下是不支持的。FirefoxPWA 这个项目就是为了让 FireFox 支持 PWA,可惜目前还不支持 macOS,感兴趣的可以耐心等待一下。
文章推荐
为什么 Kubernetes 选择了 ETCD?
本文从源码的角度剖析了 Kubernetes 选择 ETCD 的优势,包含以下几个方面:
- EtcdServer 的工作原理
- bbolt 的工作原理
- 数据是如何持久化到 ETCD 中的
- MVCC 的原理
如何将 eBPF 添加到可观测性产品中
这篇文章是著名的性能大师 Brendan Gregg 的最新博文,探讨了如何快速将 eBPF 添加到商业可观测性产品中。
通过机器学习来优化 Kubernetes 中的应用
随着互联网应用架构的不断变更,通过手动的方式来优化 Kubernetes 上的应用是极其复杂的,需要大量的测试和监控工作,占用了无尽的工程时间。本文尝试通过机器学习来解决这个问题。
本文由博客一文多发平台 OpenWrite 发布!