Kubernetes 1.12出炉,大幅简化凭证设置工作

Kubernetes发布今年第3个版本1.12,这个版本继续专注内部功能改进,并让测试功能进入稳定阶段。 Kubernetes 1.12重点更新了安全性以及Azure相关功能,现在Kubelet TLS Bootstrap进入稳定版,并支持Azure虚拟机规模集(Azure Virtual Machine Scale Sets,VMSS)。

Kubernetes 1.12其中的一大更新重点便是Kubelet TLS Bootstrap达正式版本,官方提到,在Kubernetes 1.4中引入了一个向集群等级凭证颁发机构请求凭证的API,此API原本的目的是要为Kubelet提供TLS客户端凭证,允许Kubelet自动启动加入TLS保护的集群中。

而Kubelet TLS Bootstrap可以让Kubelet自动创建安全凭证,而不需要像以前一样手动设置,减少凭证设置的繁琐工作。官方提到,之前在Kubelet第一次执行的时候,必须要在集群启动期间,以带外(Out-of-band)程序为其提供客户端凭证。这项工作落在服务运营者身上,由于这项工作手动太繁琐,要使其成为自动化又太复杂,因此许多服务运营者干脆为所有Kubelet部署单一凭证或是单一身份,但这样的设置却阻挡部署节点锁定功能,像是节点授权器(Node Authorizer)或是NodeRestriction准许控制器(NodeRestriction Admission Controller)。

为了解决这个问题,SIG Auth替Kubelet加入了生成私钥和CSR的方法,以便提交为集群等级凭证签署程序,官方提到,Kubelet TLS Bootstrap v1正式版的意思,表示已经为产品阶段测试,并且准备好可以正式投入生产使用,保证长期以及向后兼容支持。

另外,Kubelet服务器凭证启动以及轮转功能进入Beta测试阶段,现在Kubelet首次启动时,会生成一个自签章的凭证对(Certificate Pair),来接收TLS连接,这个的功能采用了一个本机端生成密钥的程序,并向集群API服务器发出凭证签章请求,以获得由集群根凭证授权的凭证签章。当凭证快要过期的时候,也会使用相同的方法发出凭证更新请求。

在Azure相关功能更新,Azure虚拟机规模集(VMSS)还有集群自动扩展器(Cluster-Autoscaler)也都已经进入稳定阶段。 Azure虚拟机规模集可以让用户根据需求或是调度,自动增加或是减少同质虚拟机池,提供轻松管理、扩展和负载平衡多个虚拟机,进而提供高可用与应用程序弹性,适合以Kubernetes工作负载执行的大型应用程序。

借由这个功能,Kubernetes支持使用Azure虚拟机规模集扩展容器化应用程序,而这包括与集群自动扩展器集成,根据相同条件来自动调整Kubernetes集群大小。