混合云环境中扩展混合云环境中扩展Kubernetes遇到的挑战及解决方案遇到的挑战及解决方案
引 言
假设您的业务是在线的:您拥有自己的数据中心,拥有用于运行您网站的私有云。您需要部署许多服务器来运行应用程序并存
储其数据。
也许大多数时候,您的网站的整体流量非常稳定。但也许也有时候,网站的流量会面临突然的增长,这时您该如何应对?
首先,您需要能够扩展应用程序,以应对流量增加。若您不想在每年只使用几次的新硬件上额外花钱,您可以考虑转向混合云
模式。
从私有云转向混合云,可以大大节省时间和成本。将应用程序(部分)扩展到公有云后,您就只需在使用它们时、仅为您所使用
的资源付费。
但是,您该如何选择公有云?您可以选择多个公有云吗?
简短来说,回答是肯定的,您很有可能需要选择多个公有云提供商。您也许有不同的团队,需要处理不同的应用程序,有不同
的要求,因此一个云提供商可能无法满足您的所有需求。此外,许多组织需要遵守某些法律、法规和政策,这些法律、法规和
政策要求他们的数据必须实际驻留在某些特定地点。使用多个公有云的策略可以帮助组织满足这些严格的、多样化的要求。他
们还可以从多个数据中心区域或可用区域中进行选择,以尽可能接近最终用户,从而为他们提供最佳性能和最小延迟。
跨云扩展的挑战
你已经决定使用云了,所以让我们回过头来思考一下最初的问题。您的应用程序具有针对您的应用程序的微服务部署架构,这
一架构上运行着需要扩展的容器。而这,就是Kubernetes发挥作用的地方。Kubernetes这一解决方案,可帮助您管理和编排
节点集群中的容器化应用程序。虽然Kubernetes将帮助您管理和扩展部署、节点和集群,但它无法帮助您轻松地跨云提供商
管理和扩展它们。这一点我们会在稍后详细介绍。
Kubernetes集群是一组机器(物理/虚拟),Kubernetes为集群提供资源以运行应用程序。首先,您需要了解的基本Kubernetes
概念是:
Pod是控制一个或多个容器的单元,它会作为一个应用程序来被调度。通常,您应该为每个应用程序创建一个Pod,以便您可
以单独扩展和控制它们。
节点组件是Kubernetes中的worker machine。节点可以是虚拟机(VM)或物理机,具体取决于集群。每个节点都包含运行pod
所需的服务,并由主组件管理。
主组件管理着Pod的生命周期。如果Pod死亡,Controller会创建一个新的Pod;如果你对Pod进行扩容或缩容,那么Controller会
创建/销毁你的Pod。有关Controller类型的更多信息,可以参阅此处:
https://kubernetes.io/docs/con ... aset/
这三个组件的作用是扩展和调度容器。主组件指示调度和扩容的命令,然后节点相应地根据命令来编排pod。