Kubernetes v1.18 新特性前瞻

本周,Kubernetes v1.18 即将发布!在正式发布新版本解读前,K8sMeetup 中国社区搜集了一些值得关注的新特性开发进展,在这里提前分享给大家。

#1393 为服务帐户令牌发行者提供 OIDC 发现

阶段:Alpha;功能组:身份验证

Kubernetes 服务帐户(KSA)可以使用令牌(JSON Web 令牌或JWT)对 Kubernetes API 进行身份验证,例如  kubectl --token <the_token_string>。但是,当前我们只能用 Kubernetes API 验证这些令牌。

由于无法从公共网络访问 Kubernetes API 服务器,某些工作负载必须使用单独的系统进行身份验证,比如跨集群进行身份验证。

上述新特性旨在提高 KSA 令牌的实用性,允许集群外服务把它作为身份验证的通用解决方案。API 服务器只需提供一个 OpenID Connect(OIDC)发现文档,其中包含令牌公共密钥以及其他数据,即可让验证者使用这些密钥来验证 KSA 令牌。

#853 HPA 可配置伸缩速率

阶段:Alpha;功能组:自动伸缩

HPA 可以自动伸缩 Pod 数量以调整工作负载的资源需求。但目前开发者只能定义全局伸缩速率,没法针对核心服务调节资源使用。

上述新特性允许开发者把以下代码添加到 HPA 配置中:

behavior:
scaleDown:
policies:
- type: Percent
value: 100
periodSeconds: 15
scaleUp:
policies:
- type: Pods
value: 4
periodSeconds: 60

根据以上示例,当需要增加时,Pod 现在每 15 秒数量加倍;当需要减少时,每分钟移除 4 个 Pod。

#1513 CertificateSigningRequest API

阶段:Beta 大修;功能组:身份验证

每个 Kubernetes 集群都有根证书颁发权限组件用于保护核心组件之间的通信,这些组件由 Certificates API 处理。

上述新特性旨在提高整个过程的安全性,注册中心现在不仅需要确认实际请求者提交了证书签名请求(CSR),还要确保请求者具有提交请求的适当权限。

Kubeflow 首次入选 GSoC

上周,Google Summer of Code 2020 正式启动报名。

GSoC 是谷歌组织的面向全球在读学生的在线编程项目,它旨在让学生们参与、熟悉开源社区,利用暑期时间贡献代码并获得丰厚报酬。由于项目含金量极高,它也被很多高校学生视为硅谷启蒙之路。

今年,GSoC 共入选了 200 个开源社区,有 30 个社区是历史上首次入选,其中最引人瞩目的是 Kubernetes 生态的开源机器学习平台 Kubeflow,它也是本次新入围的 30 个项目中唯一一个由中国企业(才云科技)开源并贡献的项目

Kubeflow 基于容器和 Kubernetes 构建,旨在为数据科学家、机器学习工程师、系统运维人员提供面向机器学习业务的敏捷部署、开发、训练、发布和管理平台,解决企业在落地机器学习和人工智能过程中的算力、算法和效率挑战。

据了解,CNCF 也将参加本届 GSoC,指导并收集学生们对 CoreDNS、Kubernetes、OPA、Prometheus、Rook 等项目的想法。GSoC 2020 的申请截止时间是 2020 年 4 月 1 日 2:00(中国标准时间),具体信息请见:

https://summerofcode.withgoogle.com/

K8s DevOps 工具书限时免费

日前,知名技术作者 Jeff Geerling 发表博客,宣布自己创作的两本热门 DevOps 工具书《Ansible for DevOps》《Ansible for Kubernetes》将从 3 月中旬起限时开放免费下载,为期一个月

Jeff Geerling 表示,作为一名 IT 从业者,2008 年的次贷危机让他深刻体会到了与技术发展保持同步的重要性。新冠疫情影响下,企业裁员无法避免,他希望自己的这两本书可以帮助学生、运维工程师和其他技术人员学习自动化和 DevOps 技术,进而提高谋生能力。

《Ansible for DevOps》:该书旨在帮助熟悉命令行和基本 Shell 脚本的开发者从零开始,使用 Ansible 配置、管理数千台服务器。《Ansible for Kubernetes》:该书旨在帮助开发者了解如何利用基础架构自动化工具 Ansible 和应用程序部署平台 Kubernetes 来自动化大规模、可扩展、高度可用的基础架构。

详情请见(内含电子书链接):

https://www.jeffgeerling.com/blog/2020/you-can-get-my-devops-books-free-rest-month

Docker 发布未来路线图

近日,Docker 在 GitHub 上公布了公司未来运营的新战略蓝图。

在博客中,Docker 产品副总裁 Justin Graham 指出当前开发人员关注的核心问题已经从 K8s 转为如何在容器中管理和部署代码

因此未来 Docker 团队会花更多资源去强化开发体验,使开发人员能更方便地把代码部署到多云应用 runtime 中。Docker  也将进一步发展基础 Docker 工具、Docker Desktop 以及 Docker Hub 以加速这个过程。

除了改善 Docker Desktop 的开发体验,Docker 还希望与生态系合作,使 Docker Hub 能整合、配置和管理构建应用和微服务所需的各类元件。Docker Hub 会向成为工具生态系统中心发展,提供各类工作流组件选项。

Justin Graham 表示,在 Docker 的未来规划中,开源将处于中心地位

本周 K8s 开源项目推荐

Reloader

  • github.com/stakater/Reloader
  • Reloader 是 Kubernetes 控制器,可监控 ConfigMap 和 Secrets 中的更改并触发 Pods 及其关联的 Deployment、StatefulSet、DaemonSet 和 DeploymentConfig 的滚动升级。

node-problem-detector

  • github.com/kubernetes/node-problem-detector
  • 这个项目旨在使集群管理堆栈的上游可以看到各种节点问题。

NodeWrecker

  • github.com/jaeg/NodeWrecker
  • NodeWrecker 允许你对集群 CPU、内存或磁盘负载进行压力测试,方便设计混沌工程实验。

kubectl-fzf

  • github.com/bonnefoa/kubectl-fzf
  • kubectl-fzf 为 kubectl 提供了快速而强大的 fzf 自动补全功能。

clair

  • github.com/quay/clair
  • clair 是一个开源项目,用于静态分析应用程序容器中的漏洞

DevOpsProdigy KubeGraf

  • grafana.com/grafana/plugins/devopsprodigy-kubegraf-app
  • 这是 Grafana APP 的更新版本,可以帮助开发者可视化和分析 Kubernetes 集群性能。 

GitHub 收购 NPM

上周,GitHub CEO Nat Friedman 宣布 GitHub 已签署收购 NPM(npm 背后的公司)的协议,并表示 npm 加入 GitHub 后会继续免费提供公共软件注册中心服务

npm 是 JavaScript 的包管理工具,也是世界上最大的软件注册中心,目前维护着 100 多万软件包。多年来,NPM 就 npm 的商业化进行了许多探索,但都进行得不是很顺利,甚至连维持运作都是大问题。

对于 GitHub 的这一收购行为,有开发者评论道:微软通过收购 GitHub 接管了整个开源生态系统,通过收购 NPM 接管了整个 JavaScript 生态系统,通过 Visual Studio Code 占领了大部分开发者的机器,通过 TypeScript 改变了开发者使用 JavaScript 的方式。因此可以认为,JavaScript 现在基本上是属于微软的。

而至于为什么不是“微软收购 npm”,这很大程度上与微软制定的不允许 Microsoft+GitHub 进行联合曝光的规定有关,微软希望保持 GitHub 的声誉和品牌的纯粹性

原文请点击:https://mp.weixin.qq.com/s/4Y2N0PuV8wEw3bendIqT1Q