【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

云原生生态周报 Vol. 31:Kubernetes v1.17 版本解读

  • 2019-12-21
  • 本文字数:3904 字

    阅读完需:约 13 分钟

云原生生态周报 Vol. 31:Kubernetes v1.17 版本解读

前言

《云原生生态周报》由阿里云容器平台联合蚂蚁金服共同发布,每周一期。众多一线社区专家与您一起“跟踪动态,读懂社区”,分享云原生社区项目进展、活动发布、精选博客等信息。以下是第三十一期云原生生态周报的内容。

上游重要进展

1. Kubernetes v1.17 版本发布

功能稳定性是第一要务。v1.17 包含 22 个增强功能14 个增强功能已逐渐稳定,4 个增强功能已进入 beta 版,4 个增强功能已进入 alpha 版本

Major Theme

  • 云提供商标签达到 GA


这个自 1.2 版本就引入的 label,在 1.17 版本终于 GA。之前旧的 label 已经被废弃掉:以下 3 个旧的 label 已经被废弃掉了:


  • beta.kubernetes.io/instance-type (deprecated) -> node.kubernetes.io/instance-type

  • failure-domain.beta.kubernetes.io/region (deprecated) -> topology.kubernetes.io/region

  • failure-domain.beta.kubernetes.io/zone (deprecated) -> topology.kubernetes.io/zone

  • Volume Snapshot 进入 beta


在 1.12 版本中首次以 v1alpha 版本引入,在 1.13 中升级为 v2alpha(不兼容 v1alpha 版本),目前在 1.17 版本正式进入 beta 版;



从 1.14 开始迁移 alpha。

特性稳定


将 kube-scheduler 所关心的 Node 状态从 Conditions(例如:OutOfDisk\MemoryPressure)转化到 Taints。Taints 成为 kube-scheduler 判断 Node 状态的唯一来源,同时用户也可以在 Pod 上通过声明 Tolerations 来容忍调度到有这些 Taints 的节点。



Pod 内所有容器共享 PID Namespace 特性 GA。该特性将方便 Pod 内进程信号传递(如 Sidecar 容器中的日志进程完成日志轮转后,通知业务容器进程使用新的日志)以及 Pod 内僵尸进程回收等。



Damoneset 的 pod 的调度从 daemonset controller 迁移到 kube-scheduler 来做调度,从而支持 PodAffnity、PodAntiAffinit 等能力。



该特性是为了支持调度感知单个 Node 上可以挂载的 Volume 个数的上限,且每个 Node 的上限可由存储插件自己动态设置。一般云厂商提供的云主机对某些存储卷(如块存储)能挂载的数量有限制,该特性支持调度器在选择 Node 时排除那些挂载的存储卷已经超过该 Node 支持的 Maximum Volume Count 的 Node 节点。



通过 CSI 实现的存储插件支持存储拓扑调度感知特性,即可以通过 Pod 被调度到的 Node 对应的拓扑位置信息(如 Node 所属的 Region/Zone/Rack 等等)决定动态创建的云存储的拓扑位置,也可以通过 StorageClass 限制动态创建的存储的拓扑位置,还可以通过 Pod 使用的 PV 的拓扑限制决定 Pod 可被调度的 Node 节点。



subPath 用在单个 Pod 多个容器或者一个容器中多个 mountPath 在共享同一个 volume 时以建子目录的方式在同一个 Volume 上做目录隔离。而 subPathExpr 字段可以从 Downward API 环境变量构造 subPath 目录名,可更加灵活地动态生成对应的子目录名。



Custom Resource 目前缺乏 default 机制,而 default 值对 API 的兼容性影响重大。这个功能通过 OpenAPI v3 的校验机制来为 CRD 添加默认值。



Lease api 进入 GA 阶段,kubelet 使用 lease api 周期性汇报心跳,相比 NodeStatus,lease 对象更小,可以降低 kube-apiserver 压力。



kubernetes-test.tar.gz 之前打包内嵌了各个平台的二进制文件。现在发行的 Kubernetes-test 包将以平台为单位,分拆成多个包。



kube-apiserver 通过增加 Bookmark 事件通知 watcher 服务器端当前最新 resourceVersion,可以降低 watcher 重启时对 kube-apiserver 造成的压力。



一致性测试框架进行修改以支持定义行为测试。行为测试是一组基于经验,代码检查,API 模型为视角的测试定义。而测试本身是具体对行为进行验证。此功能让两者进行分离。



增加 finalizer 去做 Load Balancer 类型的 Service 删除保护,确保 Service 这种资源对象在 Load Balancer 被摘除之后才能被删除。



之前多个客户端 watch 同一个对象时,需要对同一个对象序列化多次,引入该特性后,同一个对象只需要序列化一次,在 5000 个节点的测试环境中,可以减少 5% 的 CPU 和 15% 的内存消耗。

重要变化

Add IPv4/IPv6 Dual Stack Support 添加 IPv4/IPv6 双协议栈支持。即允许将 IPv4 和 IPv6 地址分配给 Pods 和服务。预计会在 1.18 版本对 kube-proxy 支持 IPv4/IPv6 双协议栈,代码正在 review 中;

其他重要特性

2. Knative 变更


目前第一次启动时总是启动一个,用来检查用户代码是否正常工作,但在某些场景下不想启动任何实例。建议实现一个全局配置,并且可以在 revision 级别覆盖配置,如果不启动实例,则马上把状态设置为 ready,如果有流量过来按冷启动流程启动实例。



还没有足够的理由添加这些属性。



从 Broker/Trigger 模型中删除 ingress channel。当前 Broker 会创建 2 个 channels: trigger 和 ingress. ingress channel 用于接收 trigger 的响应结果,然后发送给 ingress service. 但是目前看起来是额外的多了一跳,引入了延迟和可靠性的问题,比较好的方式是直接将响应结果发送给 ingress service.

开源项目推荐

1. dive

一个 docker image 分析工具,帮助快速分析各 layer 的内容,有助于减小整个镜像的大小。

2. amazon-vpc-cni-k8s

aws 上基于 ENI 的网络插件。

3. Draino

负责 cordon 和 drain 节点,提供了 dry run 模式。

4. Apache Dubbo-go

dubbo 的 golang 实现。

本周阅读推荐

1、《A visual guide on troubleshooting Kubernetes deployments》


文章主要讲述了如何去定位一个 deployment 无法正常工作的问题。


2、《Kubernetes Audit: Making Log Auditing a Viable Practice Again》


本文提出了一种 Kubernetes 自动化审计日志分析器的愿景,但这一愿景远不止于此。使用机器学习之类的工具甚至可以实时地自动检测日志中潜在的威胁。此外,以用户可理解的方式汇总审核日志中的信息,使审核员可以快速验证已识别的模式,并帮助调查其他隐藏的可疑活动。


3、《How Kubernetes Has Been “Transformational” to Productivity and Culture at uSwitch》


很多人开始尝试把业务迁移到 Kubernetes 上,那么 Kubernetes 到底能带来哪些改变呢?通过 uSwitch 的这个案例研究,可以给你带来不一样的思考。


4、《Building Large Kubernetes Clusters》


随着集群越来越多,集群的搭建和管理是个很头疼的问题。LINE 分享了自研的一套框架 Caravan。


5、《Kubernetes is the future of Computing. What You Should Know About the New Trend》


越来越多的人开始使用 Kubernetes,有人说它是下一代的“操作系统”,“云计算的未来”。快通过这篇文章了解下这个大趋势吧。


相关阅读


云原生生态周报 Vol. 30:Rancher 新版本默认支持 Kubernetes 1.16


云原生生态周报 Vol. 29:Kubernetes 拟支持 Cgroup v2


云原生生态周报 Vol. 28:Mirantis 收购 Docker 企业业务


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


云原生生态周报 Vol. 26:2019 年容器生态统计报告发布


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


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


云原生生态周报 Vol. 23:全球首个开放应用模型 OAM 开源


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


云原生生态周报 Vol. 21:Traefik 2.0 正式发布


云原生生态周报 Vol. 20:Kubernetes v1.16 发布


云原生生态周报 Vol. 19:Helm 推荐用户转向 V3


云原生生态周报 Vol. 18:独家解读 etcd 3.4 新特性


云原生生态周报 Vol. 17 :Helm 3 发布首个 beta 版本


云原生生态周报 Vol. 16:CNCF 归档 rkt,容器运行时“上古”之战老兵凋零


云原生生态周报 Vol. 15:K8s 安全审计报告发布


云原生生态周报 Vol. 14:K8s CVE 修复指南


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


云原生生态周报 Vol. 12 |K8s 1.16 API 重大变更


云原生生态周报 Vol. 11 | K8s 1.16 早知道


云原生生态周报 Vol. 10 | 数据库能否运行在 K8s 当中?


云原生生态周报 Vol. 9 | K8s 1.15 后的性能提升


云原生生态周报 Vol. 8 | Gartner 发布云原生趋势


云原生生态周报 Vol. 7 | Docker 再爆 CVE


云原生生态周报 Vol. 6 | KubeCon EU 亮点汇总


云原生生态周报 Vol. 5 | etcd 性能知多少


云原生生态周报 Vol.4 | Twitter 从 Mesos 全面转向 Kubernetes


云原生生态周报 Vol. 3 | Docker Hub 遭入侵,Java 8 开始提供良好的容器支持


云原生生态周报 Vol. 2 | Godaddy 开源 KES、CNCF 提供免费云原生课程


云原生生态周报 Vol. 1 | Google 发布 Cloud Run,开源项目 Kubecost 让 K8s 花费一目了然


本文转载自阿里巴巴云原生微信公众号(ID:Alicloudnative),作者:徐迪、李传云、黄珂、汪萌海、张晓宇、何淋波 、陈有坤、李鹏。


2019-12-21 08:001732

评论

发布
暂无评论
发现更多内容

融云 x 天聊,用声音打造「无压力社交」栖息地

融云 RongCloud

Python3详细的数组基础操作-入门必备[列表的操作]

迷彩

数组 Python基础 列表 7月月更

2022-07微软漏洞通告

火绒安全

microsoft 安全 漏洞

我用开天平台做了一个城市防疫政策查询系统,你不试试?

华为云开发者联盟

开发 华为云 开天aPaaS 开天 城市防疫政策

ECCV2022 | 腾讯优图29篇论文入选,含人脸安全、图像分割、目标检测等多个研究方向

科技热闻

Kubernetes入坑篇

青柚1943

Kubernetes DevOps minikube

Web安全之Java反序列漏洞总结

网络安全学海

网络安全 安全 信息安全 渗透测试 漏洞挖掘

Chrome实现自动化测试:录制回放网页动作

和牛

测试

日志黑名单,真的能帮你省钱!

观测云

C 语言入门(四)

逝缘~

7月月更

泰凌微电子B91通用开发板合入OpenHarmony社区主干

科技汇

AIOps落地五大原则(三):架构路线

BizSeer必示科技

人工智能 AIOPS

从全球价值链视角看,京东云数智供应链对未来经济有何影响?

脑极体

拔掉电源会怎样?GaussDB(for Redis)双活让你有备无患

华为云开发者联盟

数据库 后端

小程序容器技术让混合App开发效率提升

Geek_99967b

小程序容器

ArkUI路由跳转概览

坚果

HarmonyOS OpenHarmony 7月月更

不要小看WebSocket!长连接、有状态、双向、全双工都是王炸技能

wljslmz

HTTP websocket 7月月更

Java 集合

Damon

7月月更

2022冲刺金九银十震撼发布!Java八股文+大厂面试真题,干货满满!

了不起的程序猿

Java java程序员 java面试

本周四晚19:00知识赋能第3期直播丨OpenHarmony智能家居项目之控制面板功能实现

OpenHarmony开发者

Open Harmony

在线SQL转XML工具

入门小站

工具

如何系统学习web前端技术知识

小谷哥

还不了解进程吗?就这一篇!

C++后台开发

网络编程 进程 通信 linux开发 C++开发

Python|制作词云,改变词云字体颜色

AXYZdong

Python 7月月更

Python图像处理丨图像腐蚀与图像膨胀

华为云开发者联盟

Python 软件 开发 图像处理

《Linux设备驱动开发详解》读书笔记

贾献华

7月月更

开鸿智谷 Niobe 407 正式并入OpenHarmony代码主干

科技汇

在线多行文本批量正则替换添加后缀工具

入门小站

工具

转行前端是自学好还是培训班好

小谷哥

新书上市 | C 语言经典教材配套“习题解答”,原书累计印数 10 万 +

图灵教育

C语言

StarRocks 成都见!企业如何打造极速统一的数据分析新范式,助力业务全方位升级

StarRocks

数据库 大数据 数据分析 国产数据库

云原生生态周报 Vol. 31:Kubernetes v1.17 版本解读_服务革新_徐迪_InfoQ精选文章