Kubernetes 1.7 最受欢迎的 11 大新功能

2023年 7月 31日 29.6k 0

Kubernetes 是当前容器编排和管理的主流平台。在更注重稳定性的 1.6 之后,Kubernetes 1.7 带来了五十多个新功能,更侧重于联合、可扩展性、安全性以及部署、扩展和管理容器化应用的其他方式。

以下介绍一些使 Kubernetes 1.7 更稳定和更受欢迎的新功能。

Kubernetes 1.7 的主要功能

API 聚合:与 Kubernetes 1.6 相比,此功能的主要优点是可以与其他 Kubernetes API 聚合的由用户提供的 API 服务器。

聚合层使得可以在你的集群中安装更多 Kubernetes 样式的 API。这些 API 可以是预先构建的、已有的第三方解决方案,如服务目录,也可以是用户创建的 API,如 apiserver-builder。 API 聚合层在 kube-apiserver 中运行。

在扩展资源注册之前,聚合层不起作用。要注册 API,用户必须添加一个 API 服务对象,该对象在 Kubernetes API 中“声明” URL 路径。这时,聚合层将把任何发送到该 API 路径的东西(例如 /apis/myextension.mycompany.io/v1/...)代理到注册的 API 服务。

容器运行时接口(CRI):随着 CRI 的改进,Kubernetes 添加了新的 RPC 调用以及一些增强功能,例如改进的可调试性、增加的容器和镜像文件系统指标或统计信息,可以帮助你从容器运行时检索容器指标。在 1.7 中添加的指标调用不允许 Kubelet 从容器运行时收集指标。预计 Kubelet 可以在 1.8 版本中从 API 中选择使用容器指标。

可扩展外部访问控制:这是此版本中添加的 alpha 功能。添加此功能的主要动机是为 API 服务器添加自定义业务逻辑,以便在创建和验证策略时更改对象。管理员和集成商现在可以定义自己的策略来允许内容进入他们的 Kubernetes 集群。

这是一个 alpha 功能,因此默认情况下禁用。要启用它,你需要在启动 apiserver 时在 -admission-control 标志中包含 “GenericAdmissionWebhook”。如果你有多个 kube-apiserver 副本,那么应该设置相同的标志。

考虑一个用例,你的基础架构需要所有 Pod 资源拥有一组通用的标签,并且你不希望任何 Pod 持久存储到 Kubernetes。如果这些需求没有满足,你可以写自己的外部准入 webhook 来进行验证并作出相应的响应。

加密 etcd 中的 secret:etcd 是一个强大的、一致的和高度可用的密钥值存储库,被 Kubernetes 用于所有 API 对象的持久存储。以前,所有 secret 都以明文形式存储在节点上的 tmpfs 文件中。不幸的是,任何可以访问 Kubernetes API 的用户都可以看到所有的 secret。

在本版本中,Kubernetes 添加了加密机制,允许对存储在 etcd 密钥值存储中的敏感数据在数据存储级别进行加密。这允许Kubernetes 的用户不仅可以对磁盘上的数据进行加密,还可以加密 etcd 中的数据,以防止恶意方通过 Kubernetes API 进行读取。

这种模块化的方法用来存储系统中的敏感信息和证书。    

限制节点访问 API:这个新加的功能,用于限制节点对 secret 和仅在该特定节点上运行的其他 Pod 信息的访问。这将防止未授权的节点在集群中全局访问 secret,这些未授权的节点只能修改自己的 Node API 对象和绑定到自己的 Pod 对象。

这也是一个改进的安全功能,可帮助机构限制跨节点访问敏感信息。这将是为数据和以安全为中心的应用而使用 Kubernetes 的另一个优势。 

网络策略 API:这一功能在此版本更加稳定,将帮助你定义 Pod 组可以如何彼此进行通信以及如何与其他网络端点进行通信。它由网络插件实现。资源使用标签来选择 Pod,并定义用于指定哪些流量可以为选定的 Pod 所用的规则。

审核日志改进:在此版本中,API 服务器存储的审核日志可以更加定制化和可扩展,支持事件过滤和 webhook。它们还提供更丰富的数据用于系统审核。这将帮助你从大量数据中过滤出有用的日志信息,更快地调试问题。

本地存储:这是有状态应用最常要求的功能之一,此次作为 alpha 功能引入。 标准 PVC / PV 接口和 StatefulSets 中的 StorageClasses 可以帮助你访问本地存储卷。这将有助于机构管理因为性能要求而需要本地存储的应用程序。

StorageOS 插件:新的 StorageOS Volume 插件提供了来自本地或附加节点存储的、高可用的、在整个集群范围持续的卷。StorageOS 可以为 Kubernetes 集群提供存储。StorageOS 作为容器在你的 Kubernetes 环境中运行,使得 Kubernetes 集群中的任何节点都可以访问本地存储。可以复制数据以提供节点故障保护。在核心,StorageOS 提供块存储。你可以选择安装什么文件系统类型来使设备在容器内可用。

Kubernetes 1.7 的其他功能

Kubelet TLS 引导:此版本现在支持客户端和服务器证书轮换。

StatefulSet:这是 1.7 中的一个新的 beta 功能,它允许有状态应用(如 Kafka,Zookeeper 和 etcd)使用一系列更新策略(包括滚动更新)自动更新。我们可以期待更好的性能,因为不需要通过 Pod Management Policies 订购而可以为应用提供更快的扩展和启动。

弃用了什么?

第三方资源(TPR):Kubernetes 1.7 已经弃用第三方资源(TPR),替代为提供更整洁 API 的 Custom Resource Definitions(CRD)。这也有助于解决 TPR beta 期间出现的问题和受关注的用例。Kubernetes 社区已经预计在 1.8 版本中删除 TPR。因此,如果你使用 TPR beta 功能,请考虑将其迁移到 CRD。

 

Kubernetes 1.6 发布的重点是规模和自动化。Kubernetes 1.7 的目标是,提高安全性、存储和扩展功能,使 DevOps 程序更适合企业客户。这一最新版本显然正在为企业内部采用 Kubernetes 进一步打下基础。

相关文章

KubeSphere 部署向量数据库 Milvus 实战指南
探索 Kubernetes 持久化存储之 Longhorn 初窥门径
征服 Docker 镜像访问限制!KubeSphere v3.4.1 成功部署全攻略
那些年在 Terraform 上吃到的糖和踩过的坑
无需 Kubernetes 测试 Kubernetes 网络实现
Kubernetes v1.31 中的移除和主要变更

发布评论