Kubernetes 1.14重磅来袭,多项关键特性生产可用

走过了突飞猛进的2018年,Kubernetes在2019年终于迎来了第一个大动作:Kubernetes 1.14版本的正式发布!Kubernetes 本次发布的 1.14 版本,包含了 31 项增强,其中 10 项为 GA,12 项进入 beta 试用阶段,7 个为全新的 alpha 功能。1.14 版本的主题是可扩展性,并且支持更多的业务场景,其中三个主要的功能具备生产可用,一个重要功能进入 beta 试用阶段。总体而言,1.14 版本相比之前的版本更着重于将更多的功能推进到稳定状态,尤其是部分关键功能对于用户来说具有重大的里程碑意义。

Windows节点支持:生产可用

截至目前,1.14版本Windows节点支持已经稳定,支持将Windows节点作为工作节点,并向其调度Windows容器。Windows容器支持的引入,允许用户通过Kubernetes的接口界面来体验Windows容器,并见证Kubernetes对于Windows容器的价值。在同一集群中同时编排Windows与Linux应用,对于拥有混合应用技术栈的企业,尤其是传统企业,具有里程碑式的意义。

Windows容器关键特性包含:

  • 支持Windows Server 2019作为工作节点
  • 支持与Azure-CNI、OVN-Kubernetes 和 Flannel等外置容器网络插件对接
  • 改进了对Pod、服务类型、工作负载控制器和 metric/quota 的支持,使Windows容器基本匹配Linux容器所提供的能力

随着1.14版本的发布,Kubernetes已经能为提供相对完善的Windows容器基础功能集,但如果考虑端到端商用落地Windows容器商用方案,用户仍然不得不关注以下方面的成熟度限制

1、操作系统版本限制:Windows容器对Windows系统以及docker版本都有更加严格的要求,例如Windows Server 2019/1809需要Docker EE-basic 18.09版本。

2、Hyper-V和Native容器的成熟度:整体相对弱于Linux容器,Native容器的安全隔离能有限,Hyper-V隔离方案仍然是alpha特性,需要持续完善;而对于依赖GPU、GUI的应用支持较弱,相关商用案例也较少。

3、Windows容器镜像生态:

  • 当前可用于Windows容器的base image有限,主要就是windowsservercore和nanoserver,针对实际场景的使用灵活度不高;
  • Windows容器的基础镜像尺寸较大,而微软的MCR服务(Microsoft Container Registry)尚未明确中国区CDN的上线时间,用户往往需要花费较长的时间下载镜像。

4、 网络方面:Windows容器目前支持5种不同的网络模式,虽然已有一些网络插件宣称可以满足基本的使用要求,但性能和成熟度仍需验证。

5、其他限制:

  • 控制面master节点目前不能部署在Windows系统中,这意味着Kubernetes集群必须包含使用Linux系统的主节点。
  • 目前 Windows 容器并不支持 Pod 优雅删除。并且在 Windows 容器环境中,对单文件映射、特权容器、大页内存支持、Node Problem Detection 等能力也都没有提供支持。

在1.14版本稳定之后,Kubernetes社区将继续完善对Windows容器支持,包括但不限于:

  • 优化使用kubeadm在Windows环境下安装节点
  • 支持Calico CNI网络
  • Hyper-V隔离模式下支持一个Pod内包含多个容器
  • 支持Pod优雅删除

kubectl插件机制宣布稳定,命令行插件生态蓬勃发展

kubectl插件机制GA

kubectl插件机制允许开发者已独立的二进制的形式发布自定义的kubectl子命令。这可以用于扩展kubectl具有更高级别的功能和附加的porcelain(例如添加set-ns命令)。
插件必须具有kubectl-的命名前缀,并保存在用户PATH中,为了GA,插件机制已经被大大简化了。目前有点类似Git的插件系统。

集成kustomize

kustomize(https://GitHub.com/Kubernetes-sigs/kustomize)是K8s社区命令行兴趣小组(SIG-CLI)的一个子项目,致力于为用户提供一种可以重复使用配置的声明式应用管理工具,让用户在配置工作中只需要管理和维护kubernetes的原生API对象,而不需要使用和管理复杂的模版。

在这次发布的版本中,kustomize提供声明式资源配置的创建修改等能力可以kubectl –k参数和kustomize子命令来执行。kustomize使用Kubernetes原生概念帮助用户创建和复用资源配置。用户可以利用 kubectl apply -k dir/将指定目录的kustomization.yaml提交到集群中。用户还可以直接将自定义的资源配置发送到标准输入,而不是通过 kubectl kustomize dir/应用。
更多的kustomize子命令将会在kustomize代码仓库中继续开发完善,用户可以通过更新独立的kustomize二进制文件来体检最新的kustomize特性。
 
据不完全统计,GitHub 上有超过 200 种 kubectl 相关的第三方命令行工具,随着 kubectl 插件机制稳定,相信这些工具很快会基于插件机制标准化,更好地与 kubectl 集成,给用户提供强大的扩展命令集。

随本次 Kubernetes 1.14 版本发布的,还有全新的 kubectl 文档及 Logo。社区重写了 kubectl 文档,并重点聚焦使用声明式的资源配置管理资源。目前 kubectl 文档已作为独立的站点上线,地址为:https://kubectl.docs.kubernetes.io,新的 kubectl Logo 及吉祥物(kubee-cuddle)也被启用。

\"\"

持久化本地存储卷:生产可用

历经漫长的改进,持久化本地存储卷特性终于在1.14版本中达到生产可用。

本地持久卷可以使用K8s节点上挂载的本地存储设备作为持久卷的来源。相对于远程磁盘来说,持久化本地存储拥有优越的性能,使用更少的系统开销,更加适合分布式文件系统以及数据库等场景。相比于云盘,本地SSD盘比远程磁盘就具有更好的IO性能。相比于裸机,除了性能以外,本地存储通常更加便宜,并且使用它是配置分布式文件系统的必要条件。

虽然本地持久卷特性达到生产可用,但是易用性仍然没有得到显著的改进。用户可以通过两种相对手动的方式来使用持久化本地存储特性:

  • 用户手动指定块设备的方式提供本地持久卷
  • 使用 sig-storage-local-static-provisioner 插件静态维护本地卷的生命周期。

根据Pod及PVC状态自动地维护各节点中本地持久卷的能力,仍然需要较长的时间在社区推进。

应用就绪状态判断的改进:Pod Readiness Gates (Pod Ready++)生产可用

对于Pod的状态,Kubernetes为用户提供了两项判断Pod运行情况的能力:Readiness(就绪状态)和Liveness(存活状态)。一个Pod被判断为Ready(就绪),意味着所有初始化相关的工作已经完成,Pod可以接收处理外部访问的请求。而Liveness则用于判断已就绪的Pod是否持续处于正常工作中。

然而在实际使用中,特别是针对大型应用,情况往往比较复杂。由于K8s中大量采用的异步机制、以及多种对象关系设计上的解耦,当应用实例数增加/删除、或者应用版本发生变化触发滚动升级时,系统并不能保证应用相关的Service、负载均衡器配置总是及时完成刷新。在一些情况下,往往只是新的Pod完成自身初始化,系统尚未完成Endpoint、负载均衡器等外部可达的访问信息刷新,老的Pod就立即被删除,最终造成服务不可用。这对用户来说是不可接受的。

Pod Ready++的引入正是为了修正Pod就绪状态的判断机制——用户可以通过 ReadinessGates 自定义Pod就绪的条件(如,从外部访问入口判断新建的Pod开始处理外部请求),当用户自定义的条件以及容器状态都就绪时,kubelet才会标记Pod准备就绪。

在1.14版本中,Pod ready++特性达到了稳定,用户可以在生产系统中直接使用该特性。需要注意的是:对于用户自定义的就绪条件,一定需要有自定义的控制器配合更新Pod状态,否则,Pod永远不会变成就绪状态。

Pod优先级与抢占式调度:生产可用

Pod优先级与抢占可以使K8s调度器在集群资源耗尽的情况下优先调度更加重要的Pod,并且驱逐集群中正在运行的相对不重要的Pod,为更重要的Pod腾出资源。Pod的重要性通过PriorityClassName定义,其中\u0026quot;system-node-critical\u0026quot; 和 “system-cluster-critical” 是两个特殊的最高优先级的关键词。优先级低的Pod在资源不足时,容易首先被驱逐,因而对于重要的daemonset或者重要的应用组件,用户可以设置较高的优先级防止被抢占。

要使用优先级与抢占,管理员必须开启Priority Admission Controller。用户在为Pod设置PriorityClassName时,必须指向集群中已创建的PriorityClass对象,否则Pod创建失败。

PID限制:beta试用阶段

进程ID (PID) 是Linux主机基本的资源,以往K8s没有任何措施限制容器内的进程创建PID,如果PID资源耗尽,即使其他的资源充足,也可能导致主机不稳定。在引入PID限制特性后,K8s管理员可以通过kubelet启动参数–pod-max-pids来设置每个Pod最大可启动的进程数目,并通过–system-reserved和–kube-reserved两项参数设置系统预留的PID数目。
PID限制特性带来的主要好处有:

  • 防止Pod因PID资源匮乏而不能正常运行
  • 隔离Pod之间以及Pod与node之间的PID资源

Kubeadm

  • 在高可用集群中自动执行控制面之间的证书复制。
  • *kubeadm join *命令使得用户自定义集群纳管节点的工作流程变为可能。

总结:核心趋于稳定,面向用户场景开枝散叶

结合最近几次版本发布来看,Kubernetes核心的发展越来越趋于稳定,1.14版本几乎没有引入大的新特性,而是把重点放在了让已有特性的稳定上。正如许多人会说,Kubernetes正在变得无聊,事实上放眼整个云原生生态,面向最终用户的各种落地场景,仍有巨大的发展空间,许许多多围绕Kubernetes的新项目仍然在如雨后春笋般地涌现,而K8s本身一些子项目的动态也开始进入人们的视野,不断地被商业落地。相信2019年会是Kubernetes和云原生技术面向用户场景开枝散叶的一年。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/275454.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

open ai gpt_让我们来谈谈将GPT-3 AI推文震撼到核心的那条推文

open ai gpt重点 (Top highlight)“设计师”插件 (The ‘Designer’ plugin) A couple days ago, a tweet shared by Jordan Singer turned the heads of thousands of designers. With the capabilities of GPT-3 (from OpenAI), he shared a sample of what he was able to c…

我历时3年才写了10余篇源码文章,但收获了100w+阅读

你好,我是若川。最近来了一些读者朋友,在这里简单介绍自己的经历,也许对你有些启发。之前发过这篇文章,现在修改下声明原创,方便保护版权。最近组织了源码共读活动1个月,200人,一起读了4周源码&…

第 8 章 容器网络 - 061 - flannel 的连通与隔离

flannel 的连通与隔离 测试 bbox1 和 bbxo2 的连通性: bbox1 能够 ping 到位于不同 subnet 的 bbox2,通过 traceroute 分析一下 bbox1 到 bbox2 的路径。 1) bbox1 与 bbox2 不是一个 subnet,数据包发送给默认网关 10.2.9.1&#…

计算机视觉笔记本推荐_视觉灵感:Mishti笔记本

计算机视觉笔记本推荐The Mishti Notebook is a project close to my heart, wherein I experimented with screen printing techniques at the Print Labs at the National Institute of Design, Ahmedabad. Dating back to the year 2012 when the NID Print Labs was first …

Google工程师:如何看待程序员普遍缺乏数据结构和算法知识?

出处:极客时间《数据结构与算法之美》很多技术人都很迷茫,觉得自己做的项目没有技术含量,成天就是卖苦力。技术的东西,日新月异,有些人总在忙于追求热点新技术,东学学、西学学,平时泛泛地看技术…

android guide 中文版,Sky Guide

Sky Guide是一款能让小伙伴们观察银河的手机软件,尤其是喜欢行星、星座的小伙伴们来讲,这款软件能很好的帮助小伙伴们观看这些,让小伙伴们体验不一样的观星乐趣,因此想要观看的小伙伴们,赶紧来试试吧。软件介绍&#x…

layui选项卡嵌套选项卡_在ProtoPie中使用嵌套组件构建选项卡栏

layui选项卡嵌套选项卡One of the powerful features of ProtoPie is the ability to build fully portable and interactive UI components. We are going to make use of nested components, SVG icons, and layout constraints to build a tab bar UI component that is sel…

50行代码串行Promise,koa洋葱模型原来这么有趣?

1. 前言大家好,我是若川,最近组织了源码共读活动《1个月,200人,一起读了4周源码》,感兴趣的可以加我微信 ruochuan12 参与,长期交流学习。之前写的《学习源码整体架构系列》 包含jQuery、underscore、lodas…

js 用迭代器模式优雅的处理递归问题

2019独角兽企业重金招聘Python工程师标准>>> 什么是迭代器 循环数组或对象内每一项值,在 js 里原生已经提供了一个迭代器。 var arr [1, 2, 3] arr.forEach(function (item) {console.log(item) })实现一个迭代器 var iterator function (arr, cb) {fo…

如何抓取html请求,请求获取网页的response,获取网页的html 怎么那么慢

HttpEntity multipart builder.build();httppost.setEntity(multipart);long start System.currentTimeMillis();// 发送请求response httpclient.execute(httppost);long end System.currentTimeMillis();System.out.println("查询upsfreight消耗的时间是(毫秒):&quo…

Serverless 究竟是什么?

大家好,我是若川。说起 Serverless,我想你应该并不陌生,作为一种云开发的架构模式,在近两年里,伴随着云原生概念的推广愈发火爆。作为一名 Serverless 的拥趸,在跟大家推荐的过程中,我经常能看到…

instagram.apk_评论:Instagram Reels vs.TikTok

instagram.apkWith all the attention to the newly debuted Instagram Reels from Facebook and the hilarious, bizarre world of TikTok, here’s a first impression on the two platforms and how they compare from a designer’s perspective.所有人都在关注Facebook新近…

240多个jQuery常用到的插件

概述 jQuery 是继 prototype 之后又一个优秀的 Javascript 框架。其宗旨是—写更少的代码,做更多的事情。它是轻量级的 js 库(压缩后只有21k) ,这是其它的 js 库所不及的,它兼容 CSS3,还兼容各种浏览器(IE 6.0, FF 1.5, Safari 2.…

华为首款鸿蒙设备正式入网,华为首款鸿蒙设备正式入网:麒麟9000+挖孔全面屏,价格感人!...

作为国内电子产品领域的巨头之一,华为这两年的快速发展是大众有目共睹的,除了手机业务外,华为的平板业务同样有亮眼表现,无独有偶,在近期各方媒体的不断披露之下,又有一款华为平板被基本确认,这…

myeclipse深色模式_完善深色模式的调色板

myeclipse深色模式Apps largely have a limited color palette which may already map well to dark mode. However, some colors produce optical vibrations when viewed on a dark background, straining the user’s eyes. So, certain apps need to map to a slightly des…

微软悄悄发布了 Web 版的 VsCode

大家好,我是若川,最近组织了源码共读活动《1个月,200人,一起读了4周源码》,感兴趣的可以加我微信 ruochuan12 参与,长期交流学习。在8月31日,微软发了一个介绍他们新发布的功能的帖子介绍&#…

figma设计_设计原型的最简单方法:Figma速成课程

figma设计It doesn’t matter if you haven’t used any prototyping tools before or you’re transitioning from other ones (like Sketch, Adobe XD); This guide is for beginners and professionals alike. So for a university assignment, I had to prepare a presenta…

初中级工程师如何快速成长和寻求突破

大家好,我是若川,最近组织了源码共读活动《1个月,200人,一起读了4周源码》,已经有超50人提交了笔记,群里已经有超1200人,感兴趣的可以加我微信 ruochuan12 参与。前言写这篇文章的初衷是因为看到…

ajax使用html()后样式无效,jquery.ajax使用字符串拼接后内联css样式失效

问题所在:是这样的,我使用ajax调用了一串json数据,使用字符串拼接的方法动态插入div容器.结果css并没有对动态插入的内容加css样式.代码描述:css使用的内联,在head部分, jquery使用外联,在body后.我尝试过:$(function(){}) //入口函数加载window.onload function(){} //原生do…

ios 按钮图片充满按钮_iOS有一些非常危险的按钮-UX评论

ios 按钮图片充满按钮I recently bought a cool thing off Amazon. It’s an adapter for iPhone, making it easy to transfer photos from your big bulky camera to your phone. The adapter itself is very easy to use: simply insert your SD card and plug the adapter …