Kubernetes v1.10接近完成,从运维和开发者角度审视新功能
Kubernetes v1.10正在筹备中,完成度为98%。有很多变化正在进行,包括集群运维的一些重要变化。
Kubernetes v1.10本该在3月21日发布。这个版本的特点是在多个功能领域的增强功能。这是Kubernetes成熟的现实证据,并且最近的版本不是由任何单一的大特性所主宰,而是建立在大多数自治团队所支配的许多组件的持续改进之上。该平台的稳定性及其企业生产就绪促成了CNCF决定将该项目退出孵化阶段。
作为Kubernetes用户,如果你是开发人员,集群运维人员或两者兼而有之,则1.10版本带来了我们认为值得预览的新功能和修复。当更改进入发行版时,它会反映在Kubernetes更改日志中。尽管日志是权威的更改来源,但它不包含正在进行的更改。要查找这些内容,请查看打开的Kubernetes问题列表,并按照里程碑分组。所有项目都标有Kubernetes特别兴趣小组(SIG)的名称,负责完成这些项目。例如,如果你想查找与Windows相关的工作,则可以通过“sig / windows”标签过滤项目。
Kubernetes问题列表:https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.10.md
那么Kubernetes v1.10有哪些新功能?
v1.10版本中的大部分工作对于集群运维来说比开发人员更重要。许多变化是错误修复和内部重构,旨在稳定Kubernetes核心并提高其他组件的发布速度。以下是我们从集群运营商和开发人员的角度看待亮点。
运维视角
此版本在Windows上为Kubernetes带来了功能奇偶校验和修复,并且还修复了一些关键的API。
Windows节点现在支持FlexVolume插件。FlexVolume卷类型允许你使用自定义存储驱动程序。另外,可以独立于集群生命周期管理驱动程序生命周期;无需停止并启动kubelets或kube-controller-manager来升级驱动程序。(请求在Windows节点上启用flexvolume)
v1.8中的从lpha到beta引入了kubelet config API。在此API之前,kubelets必须重新配置带外,但现在可以使用ConfigMaps进行配置。kube-proxy的类似API也正在从alpha到beta。审计API也是GA版本的毕业生。你可以使用此API为所有API请求生成审计日志,并将它们导出到可插拔的后端。
添加了一个新的节点shutdown taint。如果你的集群使用云提供商与你的云集成,你可能已经注意到Kubernetes不会从报告NotReady的节点上分离存储卷。Pods被重新调度到另一个节点,但不能在那里使用它们的存储卷。这是因为云提供商不知道从报告NotReady的节点分离的存储卷是否安全。一旦你的云提供商支持这种shutdown taint,它将使用它来确定何时分离(和重新连接)存储卷是安全的。
你将能够配置API服务器以使用自定义TLS密码套件(custom TLS cipher suite)。默认密码套件旨在平衡安全性和兼容性。如果你更喜欢接受一些安全性较低的密码,那么可以通过定义自己的密码套件来实现这一点。
最后但并非最不重要的,让我们看看“Action Required”项目。包含在每个版本的更改日志中,这些更改可能会向后与你的集群不兼容。到目前为止,在这个版本中,kubelet“-cloud-provider = auto-detect”功能被删除,webhooks不再跳过集群范围的资源。如果你尚未部署云控制器管理器组件,则计划尽快这样做。为了将云提供者实现与Kubernetes代码分离,他们将在即将发布的版本中从kube-controller-manager迁移到cloud-controller-manager,并最终移植到各个二进制文件中。
开发视角
开发人员会发现一些小的但受欢迎的改进,包括对ConfigMap中的二进制数据的支持,即“kubectl set volume”命令。没有主要特征,但另一方面也没有重大变化。
使用kubectl命令“kubectl set volume”做将卷添加或移除到的调度。“kubectl set”命令更新调度,从而触发滚动更新。过去的版本增加了对更新镜像,选择器,服务帐户,环境和资源配额的支持。未来版本将支持更新活跃性和准备就绪探测器,安全上下文和端口。 (请求添加新命令kubectl set volume)。
现在可以在ConfigMap中使用存储二进制数据。以前,如果想使用ConfigMap将Java密钥库(二进制文件)传递给应用程序,那么需要实现自己的Base64编码/解码。这种编码/解码现在内置于其中,易于使用:“kubectl create configmap -from-file”。
对于Kubernetes企业生产就绪情况,v1.10意味着什么?
新版本将通过以下方式提高生产就绪:
节点的Shutdown Taint提高了有状态工作负载的整体可靠性,减少了关闭卷后停滞卷的可能性。
安全
API审计日志记录功能的完善代表了Kubernetes可观察性的成熟,从而提高了对生产中的故障排除和审计的能力
“自定义加密套件”功能(见上文)使得安全配置的一个方面更加灵活
ConfigMap中的二进制数据支持提高了Kubernetes与生产型企业环境中普遍存在的Java的兼容性
由于对kubeadm工具进行了渐进式改进,操作简单性得到提高,该工具提供了易于使用的CLI来部署和管理集群生命周期。例如:56084是实现kubeadm部署多主机(HA)群集的一个步骤,58259提高了Kubernetes与更多外部云提供商的兼容性。