尽管Kubernetes的最新版本的发布有些延迟,但新的Kubernetes 1.19版正式发布,并进行了一些更新来增强Kubernetes的生产就绪能力。新的改进包括Ingress和seccomp功能的普遍可用,安全性改进,比如对TLS 1.3支持等等。而且从从Kubernetes 1.19版本开始,支持周期将正式延长为一年。来一起了解下Kubernetes 1.19的变化。
Ingress和seccomp普遍可用
Ingress最初是作为Kubernetes 1.1测试版的API引入的。该特性允许用户控制对集群中服务的外部访问,以公开HTTP和HTTPS路由。它还可以帮助管理负载均衡、终止SSL/TLS并提供基于名称的虚拟主机功能。要使Ingress资源发挥作用,必须使用一个Ingress控制器。Kubernetes目前支持和维护GCE和nginx控制器。
在版本1.19中,Ingress升级为通用版本,并被添加到networking v1 api中。这次更新带来了v1 Ingress对象中的一些关键更改,包括模式和验证更改。
seccomp(安全计算模式)升级到了普遍可用。seccomp是Linux内核中的一个安全工具,它限制了应用程序可以进行的系统调用的数量。它最初是在1.3版本中作为Kubernetes特性引入的,但有一些限制。以前,在将seccomp概要文件应用到pods时,需要在PodSecurityPolicy上添加注释。
在此版本中,seccomp引入了一个新seccompProfile字段,该字段添加到了pod和容器securityContext对象中。为了确保Kubelet向后兼容,将以优先级顺序执行seccomp配置文件:特定容器字段,
特定容器注释,Pod-wide字段,Pod-wide注释。
在这次更新中,pod沙箱容器还配置了一个单独的运行时/默认seccomp配置文件
支持TLS 1.3
Kubernetes 1.19版本增加了对新的TLS 1.3密码的支持,可以与编排一起使用。
引入节点调试
Kubernetes 1.19引入了该kubectl alpha debug命令,现在可以在alpha中使用。这个命令将在主机OS名称空间中创建并运行一个新的pod,以排除节点故障。用户现在可以检查正在运行的pod,而不必重新启动它。此外,用户不再需要进入容器本身来检查系统或初始化操作,比如调试实用程序或来自pod网络名称空间的初始网络请求。这种增强消除了节点维护和调试对SSH的依赖
结构化日志
在1.19版本之前,Kubernetes控制平面中的日志记录功能无法保证日志消息以及日志内对于各Kubernetes对象的引用保持统一的结构。这导致日志记录的解析、处理、存储、查询及分析变得非常困难,也迫使管理员及开发人员在很大一部分情况下,只能通过自行编写的正则表达式临时解决问题。也正是这样的状况,导致Kubernetes上的各类基于日志的分析型解决方案难以实现、也难以维护。
功能增强远不止以上的变化,新版本包含了33项增强功能,其中12项已经迈进稳定版本,18项处于beta阶段,另有13项处于alpha阶段。重要的稳定版本变化包括:Seccomp,Kubelet客户端TLS证书轮替,限制节点对API的访问,Ingress毕业为V1稳定版,无需Docker构建Kubelet等等。