作者 | 禅鸣、进超、心水、心贵
业界要闻
- Docker 将 Docker Enterprise 卖给 Mirantis
Mirantis 是一家扎根于 OpenStack 的云公司,最近专注于 Kubernetes。该公司刚刚收购了 Docker 的企业部门,该业务部门包括 Docker Enterprise 技术平台及所有相关的知识产权、约 400 名员工中的 300 人、750 家企业客户以及所有企业伙伴关系。
- 红帽发布企业容器仓库开源项目
- 项目官网
- github 链接
Project Quay 包含一系列在 Apache 2.0 和其他开源许可证下许可的开源软件。它遵循一个带有维护者委员会的开源治理模型。
- 北美 KubeCon 正式开幕
KubeCon + CloudNativeCon North America 2019 于 11 月 18 日 在 San Diego 正式召开。
上游重要进展
KEP
- Supports PreSidecars and PostSidecars
主要为了解决以下问题:
- PreSidecars 将在普通容器之前启动,但在 init 容器之后启动,这样它们就可以在您的主进程开始之前准备好;
- PostSidecars 将在普通容器之后启动,以便它们在您的主进程启动后可以执行某些操作,例如更新 css 文件,转发日志等。
- Kubectl v2
主要为了解决以下问题:
- Client/Server 版本偏移;
- API 扩展支持;
- 提供更简单的选项来与 cli 工具进行集成(例如 jq);
- 提供与 unix cli 标准集成的接口(xargs/find -exec/globbing);
- 保留配置注释,结构等。
- Split IP address type into new IPv4 and IPv6
将`IP`地址类型分解为`IPv4` 和 `IPv6`。并逐步弃用原有地址类型,其在 1.17 中对新的 EndpointSlices 无效,然后在 1.18 中变得完全无效。
K8S PR
- Provided a mechanism to re-register hidden metrics
提供一种在 --show-enable-metrcis-for-version
设置时重新注册隐藏指标的机制。
- Use context to check client closed instead of http.CloseNotifier in processing watch request
有两个原因:
- 新版本中 http.CloseNotifier 已经被废弃;
- 如果请求协议为 HTTP/2.x,原始代码使用 http.CloseNotifier 的情况下,每一个 Watch 将多花费 1 个 goruntine。在大规模场景下,过多的 goruntine 对 API Server 是一个非常大的负担和性能瓶颈。
- Windows: Fixes /etc/hosts file mounting support for containerd
在 Windows 上使用 Containerd 时,将由 kubelet 管理“ C: Windows System32 drivers etc hosts”文件。
- service controller: add node event handlers for faster LB backend sync
为了减少 service controller 在节点有更新时,更新 backend 的延迟。
- Add ability to reload client certificates from disk
当提供客户端证书证书文件后,始终保持从磁盘重新启动证书文件以进行新连接,并在证书更改时关闭连接。
Knative
- Knative eventing 组件 Serverless 化
当前 Kubernetes 社区(Kubebuilder 和 Metacontroller)正在研究控制平面可伸缩性,认为虽然用于 Kubernetes 工作的”无服务器控制器”是一个思想实验,但距离我们并不远,并且在技术上也是可行的。
开源项目推荐
- Terway CNI Network Plugin
阿里云容器服务团队自研 CNI 网络插件,支持 VPC 和 ENI 等。
- Antrea
Vmware 开源基于 OVS 的 Kubernetes 网络方案。
- KubeSphere
KubeSphere 是在 Kubernetes 之上构建的以应用为中心的多租户容器管理平台,目前已经达到 GA 状态。
- CRI Resource Manager for Kubernetes
具有硬件资源感知工作负载放置策略的 Kubernetes Container Runtime Interface 代理服务。
本周阅读推荐
- 《Learning Concurrent Reconciling》
CRDs/controllers 是 Kubernetes 中重要的组件,它们会将集群内的各种资源调整到期望状态。学习 Reconciling 可以帮助我们更好的理解 CRDs/controllers 是如何工作的。
- 《不懂 OpenShift,不足以谈云计算!》
通过漫画的形式对 Openshift 及相关产品加以介绍,比较有趣。
- 《Docker是不是遇上麻烦了?》
随着时间的推移,Docker 开始根植于我们的日常生活当中。然而,Docker 一切辉煌的背后,技术社区中开始有不少人认为 Docker 正一路朝着沉没的方向前进。那么,这样的判断有没有依据?Docker 真的快要不行了吗?或者说,这只是技术领域当中部分小年轻们一厢情愿的偏执?
- 《Go 入门指南》
由于目前国内并没有比较好的 Go 语言书籍,而国外的优秀书籍因为英文的缘故在一定程度上也为不少 Go 语言爱好者带来了一些学习上的困扰。
为了加快扩散 Go 爱好者的国内群体,译者在完成 《The Way to Go》 一书的阅读后,决定每天抽出一点时间来进行翻译工作,并以开源的形式免费分享给有需要的 Go 语言爱好者。
- 《如何降低 Istio 服务网格中 Envoy 的内存开销?》
在 Istio 服务网格中,每个 Envoy 占用的内存也许并不算多,但所有 sidecar 增加的内存累积起来则是一个不小的数字。在进行商用部署时,我们需要考虑如何优化并减少服务网格带来的额外内存消耗。
- 《The Service Mesh: What Every Software Engineer Needs to Know about the World’s Most Over-Hyped Technology》
Buoyant 创始人、Service Mesh 技术的提出者、第一个 Service Mesh Linkerd 的作者 Willian Morgan 为您解析 Service Mesh 现状。
“ 阿里巴巴云原生微信公众号(ID:Alicloudnative)关注微服务、Serverless、容器、Service Mesh等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的技术公众号。”