混合云环境中扩展Kubernetes的挑战及方案
admin
2023-04-11 09:03:19
0

引    言


假设您的业务是在线的:您拥有自己的数据中心,拥有用于运行您网站的私有云。您需要部署许多服务器来运行应用程序并存储其数据。


也许大多数时候,您的网站的整体流量非常稳定。但也许也有时候,网站的流量会面临突然的增长,这时您该如何应对?


首先,您需要能够扩展应用程序,以应对流量增加。若您不想在每年只使用几次的新硬件上额外花钱,您可以考虑转向混合云模式。


从私有云转向混合云,可以大大节省时间和成本。将应用程序(部分)扩展到公有云后,您就只需在使用它们时、仅为您所使用的资源付费。


但是,您该如何选择公有云?您可以选择多个公有云吗?


简短来说,回答是肯定的,您很有可能需要选择多个公有云提供商。您也许有不同的团队,需要处理不同的应用程序,有不同的要求,因此一个云提供商可能无法满足您的所有需求。此外,许多组织需要遵守某些法律、法规和政策,这些法律、法规和政策要求他们的数据必须实际驻留在某些特定地点。使用多个公有云的策略可以帮助组织满足这些严格的、多样化的要求。他们还可以从多个数据中心区域或可用区域中进行选择,以尽可能接近最终用户,从而为他们提供最佳性能和最小延迟。


跨云扩展的挑战


你已经决定使用云了,所以让我们回过头来思考一下最初的问题。您的应用程序具有针对您的应用程序的微服务部署架构,这一架构上运行着需要扩展的容器。而这,就是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/concepts/workloads/controllers/replicaset/

 

这三个组件的作用是扩展和调度容器。主组件指示调度和扩容的命令,然后节点相应地根据命令来编排pod。


混合云环境中扩展Kubernetes的挑战及方案


上述只是Kubernetes非常基础的概念,这篇《零基础入门│带你理解Kubernetes》可以带你更详细地理解Kubernetes。


尝试使用Kubernetes解决跨云扩展的问题时,会遇到一些关键挑战:


  • 难以管理多个云、多个集群,设置用户,设置策略

  • 安装和配置的复杂性

  • 不同环境的用户或团队会有不同体验


Rancher可以帮助您解决上述难题。Rancher是一个开源的容器管理平台,用于在生产中运行Kubernetes。Rancher的下述功能可以帮助我们管理和扩展我们的应用程序,无论计算资源是在本地托管还是在多个云上托管:


  • 跨多个集群和云的通用基础架构管理

  • 简单易用的Kubernetes配置和部署界面

  • 一键轻松扩展Pod和集群

  • 访问控制和用户管理(ldap,AD)

  • 工作负载、RBAC、政策和项目管理


在多云、甚至有可能是多个任何可以运行Kubernetes的基础架构上,Rancher都可以成为您的多个Kubernetes集群的单一控制点。


下面让我们看看我们如何管理两个不同区域的多个Kubernetes集群。


启动Rancher 2.0实例


首先,启动Rancher 2.0实例。具体方法可以参照这个快速上手指南:https://rancher.com/quick-start/


上手Rancher和Kubernetes


让我们在两个不同的地区的GCP中创建两个托管的Kubernetes集群。为此,您需要一个服务帐户密钥。


在Global选项卡中,我们可以看到所有可用的集群及其状态。从Provisioning状态开始,集群准备好后,状态会变成Active。 


混合云环境中扩展Kubernetes的挑战及方案
混合云环境中扩展Kubernetes的挑战及方案


现在我们已经从Kubernetes集群中为每个节点部署了许多pod。这些pod将由Kubernetes和Rancher的内部系统使用。


下面继续为两个集群部署工作负载。按顺序选择默认项目; 这将打开Workloads选项卡。单击Deploy,将第一个集群的名称及Docker镜像设置为httpd,第二个集群的设置为nginx,因为我们希望将我们的Web服务器暴露给Port映射区域。选择一个四层负载均衡中的Internet流量。 


混合云环境中扩展Kubernetes的挑战及方案
混合云环境中扩展Kubernetes的挑战及方案
混合云环境中扩展Kubernetes的挑战及方案
混合云环境中扩展Kubernetes的挑战及方案


如果单击nginx / httpd工作负载,您将看到Rancher实际上按照Kubernetes的建议创建了一个部署来管理ReplicaSet。您还将看到这个ReplicaSet创建的Pod。


扩展Pod和集群


Rancher实例正在管理两个集群:


  • us-east1b-cluster,运行5个httpd Pod

  • europe-west4-a cluster,运行1个 nginx Pod


单击Scale列下的“-”(减号图标),可以减少httpd Pod。我们很快就看到Pod数量减少了。 


混合云环境中扩展Kubernetes的挑战及方案
混合云环境中扩展Kubernetes的挑战及方案


若想要扩展pod,请单击Scale列下的“+”(加号图标)。完成后,您可以立即看到Pod正在被创建,以及ReplicaSet正在扩展事件。使用Pod的右侧菜单尝试删除其中一个pod,留意观察ReplicaSet如何重新创建它,以匹配所需的状态。 


混合云环境中扩展Kubernetes的挑战及方案
混合云环境中扩展Kubernetes的挑战及方案


如此一来,第一个集群的httpd Pod数从5个变到了2个,第二个集群的nginx Pod从1个变到了7个。现在,第二个集群看起来几乎耗尽了资源。

 

混合云环境中扩展Kubernetes的挑战及方案


通过Rancher,我们还可以通过添加额外的节点来扩展集群。下面尝试这样做一下,让我们将节点数编辑为5。 


混合云环境中扩展Kubernetes的挑战及方案


虽然是Rancher向我们展示了“协调集群”,但其实是Kubernetes在幕后升级集了群主服务器并调整节点池的大小。


混合云环境中扩展Kubernetes的挑战及方案


稍等一下,最终你应该看到5个节点启动并运行。 


混合云环境中扩展Kubernetes的挑战及方案


让我们检查一下Global选项卡,这样我们就可以对Rancher正在管理的所有集群有一个全局的了解。 


混合云环境中扩展Kubernetes的挑战及方案


现在我们可以添加更多Pod(如果我们想的话),因为现在我们有新的可用资源了。下面试着把pod数变为13。


混合云环境中扩展Kubernetes的挑战及方案


最重要的是,所有这些操作都是在没有停机的情况下完成的。在向上或向下扩展Pod或调整集群大小时,为httpd / nginx部署命中公有IP,HTTP响应状态代码始终为200。 


混合云环境中扩展Kubernetes的挑战及方案
混合云环境中扩展Kubernetes的挑战及方案


总    结


让我们回顾一下我们的Kubernetes集群缩放练习:


  • 我们使用Rancher创建了两个集群

  • 我们部署了含有1个 nginx  Pod和5个httpd  Pod的工作负载

  • 对这两个部署进行扩容和缩容

  • 调整了集群的大小


所有这些操作,都是通过在Rancher友好且直观的UI上,通过一些简单点击而完成的。当然,您也可以完全使用API完成这些操作。


在任何一种情况下,您都有一个中心点,您可以从中管理所有Kubernetes集群,观察其状态或根据需要扩展部署。如果您正在寻找一种工具来帮助您在混合/多云、多区域集群中进行基础架构管理和容器编排,那么开源的Rancher Kubernetes平台可能非常适合您。


相关内容

热门资讯

徐巧芯剖析赖清德:最怕自己丢掉... 海峡导报综合报道 大罢免投票一周年纪念活动26日举行,台北市长蒋万安出席并怒轰,民进党一年过后仍没有...
中国红十字会总会紧急向广东调拨... 记者从中国红十字会总会了解到,针对台风“红霞”给广东造成的灾情,中国红十字会总会启动四级应急响应,紧...
这些少年,正被“毒蛋”围猎 李梦抽了几口电子烟,吐出了白色的烟雾,有一股浓烈的水果香味。随后,她看着自己握电子烟的手,跟身边人说...
蒋万安号召“倒阁”,卢秀燕认为... 海峡导报综合报道 台北市长蒋万安27日抛出震撼议题,表示多名民代向他提议推动“倒阁”,要求台行政机构...
特朗普将在白宫会见两位重要客人 俄乌战争仍未结束,美伊冲突又有升级风险。在此背景下,美国总统特朗普将在白宫接见乌克兰和以色列领导人。...
新租客打扫卧室柜子上掉落4万元... 近日,莲前西路某小区内,张倩签下一套房子的租赁合同。当天上午,她带着12岁的大女儿周馨怡和11岁的小...
六部门通告:禁止涉军队退役报废... 关于禁止涉军队退役报废装备销售活动的通告近年来,部分经营者在线上线下公开销售涉及我军退役报废装备(指...
九寨沟景区发生泥石流,部分道路... 7月26日,九寨沟风景名胜区管理局发布泥石流灾害通报:2026年7月26日15时50分,九寨沟景区局...
空调26度不凉是什么原因 从空调内部元器件来说,不凉的原因有可能是温度传感器出现故障了,也有可能是空调压缩机或者铜管出现问题,...
鲸鸿动能携手香港国际机场、鸿蒙...   2026 年 7 月 25 日,十余位鸿蒙车主组成的车队从珠海出发,经港珠澳大桥通关抵达香港国际...