云原生周报:第 3 期

本文首发于:微信公众号「云原生实验室」,公众号ID:cloud_native_yang。

这是云原生周报第 3 期,主要分享云原生社区最新开源项目和相关资讯。

如果你有什么优秀项目和资讯,欢迎向我投稿,投稿邮箱:[email protected]。如果你想与大牛一起探讨云原生相关技术问题,可以添加我的微信后拉你进入云原生交流群,我的微信号是:yangchuansheng572887。

1. 开源项目推荐

diving : 基于 dive 分析 docker 镜像,界面化展示了镜像每层的变动(增加、修改、删除等)、用户层数据大小等信息。便捷获取镜像信息和每层镜像内容的文件树,可以方便地浏览镜像信息。对于需要优化镜像体积时非常方便。

Wave : Kubernetes 的配置文件有两种,一种是 ConfigMap,用来存储明文;另一种是 Secret,用来存储密文。这两种配置文件应用都比较广泛,但遗憾的是,目前它们在大多数场景下都不支持热更新,只有当 ConfigMap 挂载为 Volume 时,才能支持热更新,其他场景均不支持。Wave 的做法比较机智,它向 API server 订阅来自指定的 Deployment(通过 annotations 识别) 的事件,一旦某个 Deployment 被执行了任何操作(Create/Read/Update/Delete),它就会通过算法来计算该 Deployment 中每个挂载的 ConfigMap and Secret 的 hash 值,如果挂载点发生了变化,或者挂载的数据发生了变化,都会改变 hash 值。由于该 hash 值被写到 Pod Template 的 Annotation 中,所以 hash 更新就会触发 Deployment 的滚动更新。

kube-eventer : Kubernetes 的核心设计思想是状态机。在 Kubernetes 中,事件分为两种,一种是 Warning 事件,表示产生这个事件的状态转换是在非预期的状态之间产生的;另外一种是 Normal 事件,表示期望到达的状态,和目前达到的状态是一致的。通过事件的机制,可以丰富 Kuernetes 在监控方面的维度和准确性,弥补其他监控方案的缺欠。kube-eventer 是为了弥补事件监控场景的缺失,支持将 Kubernetes 事件发送到钉钉机器人、SLS 日志服务、Kafka 开源消息队列、InfluxDB 时序数据库等等。

Kubernetes 修仙路径 : 目前云计算行业对于 Kubernetes 学习的需求日益增加,但市面上关于 Kubernetes 的资源良莠不齐,存在几个问题:

  • 官方文档缺少明确的"梯度",信息错综复杂
  • 资料较为分散,查找信息费时费力
  • Kubernetes 发展很快,书籍或者网上教程容易过时

为了给广大从业者提供一个 Kubernetes 学习路径,为大家提供一定的指引,才云科技(Caicloud) 推出了 Kubernetes 打怪升级指南,目标是让所有人剥茧抽丝般地了解 Kubernetes,不仅仅知道怎么用 Kubernetes,还知道 Kubernetes 各个功能是如何设计的。在学习路径后期,我们还可以很"自然"的联想到正确的设计思路。

YugaByte DB : YugaByte DB 是一个高性能、云原生的分布式 SQL 数据库。YugaByte DB 具有基于 Google Spanner 的存储架构和基于 PostgreSQL 的查询层,旨在为现代应用程序在云原生基础架构上提供分布式 SQL 中的体验(类似 Oracle)。完全开源之后,其工程团队将带领 YugaByte DB 比以往更快地向云原生模式发展。

GetEnvoy Project : 如果你的工作内容涉及到大型分布式系统,那你可能会听说过 Envoy,它是一款为云原生应用而设计、开源的边缘和服务代理,也是 Istio Service Mesh 默认的数据平面。但目前最痛苦的问题是 Envoy 很难编译,为了解决这个问题,Tetrate 的工程师(包括 Envoy 的核心贡献者和维护者)发起了 GetEnvoy 项目,目标是利用一套经过验证的构建工具来构建 Envoy,并通过常用的软件包管理器来分发,包括:aptyumHomebrew。下图是我通过 Homebrew 安装的 Envoy:

GRBAC : Grbac 是一个快速,优雅和简洁的 RBAC 框架。它支持增强的通配符并使用 Radix 树匹配 HTTP 请求。令人惊奇的是,您可以在任何现有的数据库和数据结构中轻松使用它。

ccheck : 一个用来验证 Kubernetes 资源配置的命令行工具。它通过使用 reg 查询语言来编写针对 yaml 文件的测试。

ceph-study : Ceph 是一个可靠、自动均衡、自动恢复的分布式存储系统,通常可用于对象存储,块设备存储和文件系统存储。 Ceph 在存储的时候充分利用存储节点的计算能力,在存储每一个数据时都会通过计算得出该数据的位置,尽量的分布均衡。ceph-study 是网友整理的一份 ceph 学习指南,写的十分详细,欢迎初学者浏览学习。

2. 博客推荐

到底要不要把数据库运行在 Kubernetes 中 : 如今越来越多的应用都跑在 Kubernetes 上,Kubernetes 已经成为云时代的 Linux 操作系统。尽管如此,数据库的部署方式并没有因为 Kubernetes 的浪潮而受到太多影响,因为要想容器化,就要考虑数据库能否自动重启、横向扩展,能否适应容器隔离技术的限制。本文将会通过合理的逻辑推理告诉你到底要不要把数据库运行在 Kubernetes。

Kubernetes 中的 Java 应用性能优化 : 在 Kubernetes 中部署应用并没有想象中那么简单,如果配置不恰当,就会遇到频繁的 oom kills 和 重启,尤其是 Java 应用需要特别关注。本文以一个 Spring Boot 微服务应用为例,分析应用启动消耗的 CPU 和内存资源,然后告诉我们如何调整资源的 requestslimits 来提高应用的启动速度,并防止因为 OOM 机制被 kill 掉。

K8S 避坑指南 - Deployment 更新 POD 内容器无法收到 SIGTERM 信号 : 正常情况下,在 Deployment 滚动更新时,当 pod 被 terminate 的时候,应用进程应该能够正确处理 SIGTERM 信号。如果应用不能正确处理 SIGTERM 信号,一般都是因为应用进程不是容器内的 1 号进程,需要调整容器的启动命令来解决问题。

为容器提供更好的隔离:沙箱容器技术概览 : Docker、LXC 以及 RKT 等传统容器都是共享主机操作系统核心的,因此不能称之为真正的沙箱。这些技术的资源利用率很高,但是受面积和潜在的影响都很大,在多租户的云环境中,不同客户的容器会被同样的进行编排,这种威胁就尤其明显。主机操作系统在为每个容器创建虚拟的用户空间时,不同容器之间的隔离是很薄弱的,这是造成上述问题的根本原因。基于这样的现状,真正的沙箱式容器,成为很多研发工作的焦点。多数方案都对容器之间的边界进行了重新架构,以增强隔离。本文覆盖了四个项目,分别来自于 IBM、Google、Amazon 以及 OpenStack,几个方案的目标是一致的:为容器提供更强的隔离。如果你想抓住即将到来的转型机会,不妨关注一下这些新项目。

解决在 Kubernetes 中删除 namespace 一直处于 terminating 状态的问题 : 作者在生产环境中删除某个 namespace 时一直处于 terminating 状态,最后发现是因为在 namespace 中通过 Finalizers 调用了 pre-delete hooks,所以一直卡在那边。具体的解决办法请查阅文章。

papers-notebook : 这是一篇论文阅读笔记,其中的论文一部分来自于在上海交通大学软件学院的研究生课上需要阅读的论文,这部分会比较偏安全和虚拟化。还有一部分论文是作者感兴趣,想去了解的,这部分可能比较偏虚拟化和分布式。论文笔记希望能够记录自己在读论文的时候的想法,其中包括但不限于论文的大致 idea,实现方式,以及自己对论文的评价等等。

从CNI到OVN : 本文主要介绍了 ovn ovs 怎么与 kubernetes 擦出火花。全文主要分为两个部分,第一部分先简单介绍 CNI 的工作原理,然后开始安装 OVS 和 OVN,并测试跨主机容器的连通性。第二部分主要介绍 Openflow 和 OVN 的工作原理和相关实践。

gRPC 服务发现与服务治理技术选型 : gRPC 服务发现与服务治理,目前常见解决方案有以下两种:

  • Nginx + consul + consul-template
  • Envoy

本文粗略讲解了两种方案的优缺点,最后总结相对于 nginx,更倾向于 envoy。首先 envoy 就是为微服务而生的负载匀衡工具,grpc 健康检查是微服务中重要的一环。但是 nginx 拥有活跃的社区,说不定不久将来也会有支持 grpc 健康检查的插件。

在 Golang 中操作 Istio 和其他 CRD : 本文以 Istio 为例,演示如何使用 Golang 来对 Kubernetes 中的 CRD 资源进行增删改查。

服务监听 pod id 在 istio 中路由异常分析 : 在 Istio 服务网格中,绝大部分场景下用户服务进程监听的 ip 是 0.0.0.0,这种服务可以透明加入 istio 服务网格,但是如果用户进程监听的本机具体 ip(pod ip),这种服务就无法直接加入当前 isito 服务网格,因为在 Envoy 的 inbound cluster 配置中,socket_address 被写死了,值为 127.0.0.1。本文描述了如何尝试修复这个问题。

使用 Kyverno 定义 Kubernetes 策略 : Kubernetes 的日常使用过程中,在对象提交给集群之前,我们会有很多机会,很多方法对资源的 Yaml 定义进行检查和处理。很多读者应该也会知道,资源提交之后,还有机会使用 Admission Controller 对资源动动手脚,这其中其实有很多可以提炼出来的标准动作,可以用统一的控制器来进行处理,Kyverno 就是这样一个工具。有了 Kyverno 的帮助,YAML 程序员可以根据条件对资源进行筛选。

3. 视频推荐

只有大气磅礴的 BGM,才配得上史诗级的《权力的游戏》。So,只有大气磅礴的 BGM,才配得上云原生时代的操作系统。

视频观看地址:https://www.yangcs.net/posts/cloud-native-weekly-3/

4. 电子书推荐

CIS Kubernetes Benchmark : 该文档提供了一份为 Kubernetes 1.13 创建安全配置的说明指南,主要用来帮助应用管理员、安全专家和平台部署人员规划在 Kubernetes 平台上开发部署应用的解决方案。

获取方式:公众号后台回复:kubernetes benchmark

5. 福利篇

ENFI下载器 : 这可能是最骚的百度网盘不限速下载器,不仅能为你提供高速下载,还能同时让你赚取收入,支持 Windows 和 MacOS 哦。来看看我赚的钱:

下载速度基本满速,具体取决于你的带宽:

测试链接:https://pan.baidu.com/s/1JlsJsTN0JpwzA3DUzvyeIA 提取码: 7uak

Pandownload 网页版 : 这可能是最没有存在感的百度网盘不限速下载工具。用过 Pandownload 的同学都知道,这是一款老牌的百度网盘第三方下载器。但是它只有 Windows 版本的客户端,macOS 用户只能无奈地摇摇头。最近 Pandownload 推出了网页版本,前段时间测试了一下确实好用,只需输入百度网盘下载链接和提取码,即可高速下载,亲测可以跑满带宽。相比之下,比下载各种客户端算是解决了 Mac 用户不支持的福利。

还嫌不够方便?没关系,热心网友开发了一款油猴脚本,可以将百度网盘分享链接自动跳转到 PanDownload 网页版去下载。脚本地址:百度网盘不限速直链下载

baidu-netdisk-downloaderx : 另一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac。又是 Golang 写的,不多介绍了,自己看吧。

原文地址:https://blog.51cto.com/12336103/2422234

时间: 2024-10-05 05:06:05

云原生周报:第 3 期的相关文章

云原生周报第 1 期 | 2019-06-24~2019-06-28

原文链接:云原生周报第 1 期 | 2019-06-24~2019-06-28 1. 前言 云原生不但可以很好的支持互联网应用,也在深刻影响着新的计算架构.新的智能数据应用.以容器.服务网格.微服务.Serverless 为代表的云原生技术,带来一种全新的方式来构建应用.笔者是一名云原生狂热信徒,长期以来我都不知道该怎么整理自己的收藏夹.最近想到,为了让大家能够掌握云原生最新资讯,我决定把我的收藏夹共享出来,大家一起嗨~~ 2. 开源项目推荐 kubeasy : 用来管理 Kubernetes

云原生生态周报 Vol. 2

摘要: Cloud Native Weekly China Vol. 2 业界要闻 Kubernetes External Secrets 近日,世界上最大的域名托管公司 Godaddy公司,正式宣布并详细解读了其开源的K8s外部 Secrets 管理项目:Kubernetes External Secrets,简称KES.这个项目定义了ExternalSecrets API,让开发者可以在K8s内部以和使用内部Secret相似的方式使用外部系统提供的Secrets,大大简化了开发者为了让应用获

云原生生态周报 Vol. 13 | Forrester 发布企业级容器平台报告

业界要闻 近日,全球知名市场调研机构 Forrester 发布首个企业级公共云容器平台报告.其中,阿里云容器服务的市场表现全球前三.中国第一,同时创造中国企业最好成绩,进入强劲表现者象限.报告显示,阿里云容器服务市场表现为中国第一,与谷歌云并列全球第三. Forrester 分析师认为:“阿里云容器服务提供了广泛的开发和应用服务支持能力,并且具备丰富的市场生态和合作伙伴体系,是企业在中国寻求完备容器云服务能力的最佳选择. Virtual Kubelet 开源项目发布第一个可商用 1.0 版本,本

云原生生态周报 Vol.9| K8s v1.15 版本发布

本周作者 | 衷源.心贵 业界要闻 1.Kubernetes Release v1.15 版本发布,新版本的两个主题是持续性改进和可扩展性.(https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.15.md#kubernetes-v115-release-notes) 2.Helm 这款包管理工具, 作为业界 Kubernetes 上应用分发的事实标准,其 v3.0.0-alpha.1 正式发布,这是 Helm 3 的第

独家解读 etcd 3.4版本 |云原生生态周报 Vol. 18

作者 | 酒祝.墨封.宇慕.衷源关注"阿里巴巴云原生"公众号,回复关键词 "资料" ,即可获得 2019 全年 meetup 活动 PPT 合集及 K8s 最全知识图谱. 业界要闻 etcd 发布 3.4 版本 etcd 发布了 3.4 版本,是最近性能提升最大的一次发布,相信各位已经期待已久了!这次升级带来稳定性和性能等方面诸多优化,例如底层存储优化,客户端优化等多个方面. 「阿里巴巴云原生」公众号将在下周带来更详细的解读分析. 阿里联合谷歌共同研发,raft l

Knative 暂时不会捐给任何基金会 | 云原生生态周报 Vol. 22

作者 | 新胜.心贵.进超.元毅.衷源 业界要闻 谷歌:不会向任何基金会捐赠 Knative 自 Knative 项目开始以来,一直存在关于是否将 Knative 捐赠给基金会(例如 CNCF)的疑问. Google 领导层已经考虑了这一点,并决定在可预见的未来不向任何基金会捐赠 Knative. containerd v1.3 正式发布 CNCF 毕业后首个版本,功能扩展主要包括对 Windows v2 runtime 的支持以及 Plugins 相关支持(如允许 Plugin 注册为一个 T

Ubuntu 19.10 发布 | 云原生生态周报 Vol. 24

作者 | 木苏.进超.冬岛.元毅.心水.衷源 业界要闻 1.云原生编程语言 Pulumi 1.0 pulumi ,一款中立的开源云开发平台,Pulumi 支持多语言.混合云环境.完全可扩展.初期支持 JavaScript.TypeScript.Python 和 Go 语言,支持 AWS.Azure.GCP 云平台,另外还支持所有兼容 Kubernetes 的公有云.私有云和混合云.Pulumi 实现了一种单一.一致的编程模型,一组编程工具,可管理所有以上环境,丰富的生态系统支持大量可复用的包.1

Canonical 开源 MicroK8 | 云原生生态周报 Vol. 25

作者 | 天元.进超.衷源 业界要闻 1.Canonical 开源 MicroK8 面向工作站和边缘/物联网的零运维 Kubernetes!MicroK8 是 Canonical 提供的一款功能强大的企业级 Kubernetes 发行版,我们认为它是市面上最小巧最快速的多节点 Kubernetes. 2.2019 中国开源年会即将开启 2019 中国开源年会(COSCon'19)为业界最具影响力的开源年度盛会,将于 11 月 2 日至 3 日在华东师范大学?(上海普陀区中山北路校区)由开源社举办

Helm 3 发布 | 云原生生态周报 Vol. 27

作者 | 墨封.元毅.冬岛.敖小剑.衷源 业界要闻 1.Helm 3 发布 美国时间 11 月 13 日,Helm 团队发布 Helm 3 第一个稳定版本.Helm 3 以 Helm 2 的核心特性为基础,改进了 chart 存储库.版本管理.安全性和 chart 库.在这个版本中,Helm 维护者整合了来自社区的反馈和请求,以更好地满足 Kubernetes 用户和广泛的云原生生态系统的需求.附:博客地址. 2.Github Octoverse 报告发布 报告显示,JavaScript 依然是