Google Kubernetes Engine 升级:区域性集群、新控制面板和安全建议

  • Steef-Jan Wiggers
  • 罗远航

2017 年 12 月 27 日

话题:Google语言 & 开发架构

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)和生产环境中的遗留授权。

图片来源:https://cloudplatform.googleblog.com/2017/12/Manage-Google-Kubernetes-Engine-from-Cloud-Console-dashboard-now-generally-available.html

在 Kubernetes 区域性集群中,master 节点和其他节点分布在三个区域中,每个区域默认会有三个节点。这种 master 节点和其它节点的分布使得有一个区域出现故障时依然能保证集群可用。此外,通过增加每个区域中的节点数量(通过配置--num-nodes属性),可以进一步增强集群的可用性和可拓展性。可以从相关文档中找到关于区域性集群特性更详细的信息。

图片来源:https://cloudplatform.googleblog.com/2017/12/with-Google-Kubernetes-Engine-regional-clusters-master-nodes-are-now-highly-available.html

在测试 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

Google语言 & 开发架构