软件开发架构师

Kubernetes 1.15发布,专注于持续改进和稳定性-InfoQ

运维 11 2019-09-02 23:16

Kubernetes 团队于 2019 年 6 月 19 日发布了 Kubernetes 1.15 ,这是 2019 年的第二个版本。根据发布公告,最新版本的目标是改进和扩展。Kubernetes 1.15 包含了一些新特性,比如基于自定义资源定义的清除,相对于之前的版本,新版本主要关注的是稳定性而不是增强。

对稳定性和可扩展性的增强主要是基于自定义资源定义 (Custom Resource Definition,CRD)。自定义资源是 Kubernetes API 的扩展,让用户可以向 Kubernetes 集群添加自定义对象。CRD 改进的目标是最小化自定义资源和核心 Kubernetes 资源接口之间的差异,并最终让自定义资源具有通用可用性。

为此,Kubernetes 团队引入了结构化模式来改进数据的一致性和行为。结构化模式是符合 OpenAPI V3 规范的 JSON 模式,它要求根节点、对象节点的每个声明字段和数组节点中的每个项都具有非空类型。只要符合结构化模式规范,就可以使用逻辑约束和验证。从 Kubernetes 1.15 开始,CRD 的任何新特性都需要一个结构化模式。

复制代码
type: object
description: "foo bar object"
properties:
foo:
type: string
pattern: "abc"
bar:
type: integer
metadata:
type: object
properties:
name:
type: string
pattern: "^a"
anyOf:
- properties:
bar:
minimum: 42
required: [ "bar"]

来自 Kubernetes 文档的结构化模式示例

结构化模式支持 CRD 的两个新的增强:数据清除和字段默认值。在定义自定义资源时包含默认字段值是通过 OpenAPI 验证模式来完成的。CRD 字段默认值在引入新字段时提高了 API 兼容性。与 OpenAPI 模式验证不一致的数据将被清除,这样可以改善数据质量和安全性问题。有关使用结构化模式的更多信息已添加到 Kubernetes 文档中。

稳定性也是 kubeadm 改进的目标之一。kubeadm 是一个用于启动最小可行集群的工具,为创建 Kubernetes 集群提供了一个“快速路径”。使用 kubeadm 自动创建动态高可用集群的功能已经升级到 beta 版。创建高可用性集群需要外部负载均衡器,这超出了 kubeadm 的范围,社区将提供几种常见的负载均衡器实现(如 HAProxy 和 Envoy 等)。证书管理在 1.15 中也得到了简化,因此 kubeadm 将在升级期间自动旋转证书。对 kubeadm 配置文件进行了重要的重构和测试,并将该特性带到 beta 阶段。

卷克隆功能已经作为测试版引入。卷克隆允许用户在提供新卷时将另一个持久化卷指定为“数据源”。卷克隆 API 让用户可以轻松地从现有卷复制状态,例如将数据从数据库复制到新的数据库实例。

其他特性包括:支持 Kubernetes 核心的 Go 模块,支持第三方监控节点插件,以及一个新的调度插件框架。要了解更多关于最新版本的信息以及如何升级到 Kubernetes 1.15,请查看发布说明

原文链接

Latest Kubernetes Release Focuses on Continuous Improvement and Stability

文章评论