Google已经通过几次更新对它的Kubernetes Engine (GKE)服务进行了升级。用户现在可以大规模使用GKE,并且目前除了使用kubectl命令对集群进行控制管理外,它还支持通过一个Web端的控制面板云控制台Cloud Console对集群进行管理。除此之外,GKE还可以通过使用Google最佳实践来运行Kubernetes集群,从而增强了安全性。
在12月初,Google宣布GKE的区域性集群(regional clusters)正处于测试中并且拥有更好的可扩展性。这就意味着,用户现在可以创建一个Kubernetes集群,它可以有多个master节点并且具有高可用的控制平面(control plane)。区域性集群的好处是,当升级master节点以及恢复单个区域出现错误时,可以减少宕机时间。对于GKE用户来说,新的云控制台可以更好地管理集群、排除故障以及执行各种修复。除此之外,Google还提供了几种运行Kubernetes集群的最佳实践。他们建议为各个节点、各个管理员使用尽可能少的特权账户并禁用Kubernetes Web UI (也就是Kubernetes Dashboard)和生产环境中的遗留授权。
在Kubernetes区域性集群中,master节点和其他节点分布在三个区域中,每个区域默认会有三个节点。这种master节点和其它节点的分布使得有一个区域出现故障时依然能保证集群可用。此外,通过增加每个区域中的节点数量(通过配置--num-nodes属性),可以进一步增强集群的可用性和可拓展性。可以从相关文档中找到关于区域性集群特性更详细的信息。
在测试GKE区域性集群这一特性期间,这一服务是免费的。最后,在对集群进行配置时,Google建议:
通过云控制台中的IAM来创建服务账户,在将它们与各个节点进行关联之前遵循原则。
当集群已经启动并运行时,禁用Kubernetes Web UI,因为它受控于一个拥有高度特权的账户。
禁用遗留授权,那是基于属性的访问控制(ABAC,Attribute-Based Access Control)。在Kubernetes 1.8中,ABAC默认是禁用的。
在Google Cloud Platform博客中可以找到完整的如何在GKE中运行Kubernetes集群的安全性推荐的有关详细内容。
目前三家公有云服务提供商(Google、Amazon、Microsoft)都在通过各自的服务来支持Kubernetes。Amazon和Microsoft在各自的平台上都与可用的通用容器配置工具。这两家云服务提供商目前都把精力主要集中于Kubernetes。Microsoft通过为Kubernetes使用一个专用的Azure容器服务(AKS)来对Kubernetes提供支持,该服务于去年10月推出,并可以在公开预览版中进行使用。Amazon在他们最近的re:Invent大会上也宣布了,他们将通过一项名为Amazon Elastic Container Service的服务来支持Kubernetes,这项服务目前也在公开预览阶段。
查看英文原文:Google Kubernetes Engine Upgrades: Regional Clusters, New Dashboard and Security Recommendations