想基于K8s按需扩展应用程序,可从这几方面入手

马修·赫瑟(Matthew Heusser)

在花费了十年时间进行编程,测试和项目管理之后,Matt Heusser于2011年创立了自己的公司Excelon Development。该协会前董事会成员Matt还是软件测试人员,是德国波茨坦最具影响力的敏捷测试专业人员(MIATPP)的获得者,他是敏捷测试日会议的两次主要演讲人。Matt是“如何降低软件测试成本”一书的首席编辑,Matt还是由敏捷联盟赞助的技术债务研讨会的主要组织者。作为Excelon的常务董事,Matt目前的重点是DevOps和精益技术,以提高系统性能。

Kubernetes正在成为首选的容器协调器。如果您知道如何配置它,它甚至还具有按需扩展应用程序的能力。

在Docker提供了可以在您的笔记本电脑上运行的小型轻量级虚拟机之后,Kubernetes紧随其后提供了一个实际的生产集群。事实证明,运行生产集群是一项复杂的工作。例如,Kubernetes并非随身携带用于管理扩展的工具。

在本文中,我将讨论Kubernetes中的三个扩展级别。首先,我将使应用程序了解其资源,然后将Kubernetes配置为从云请求更多虚拟机,然后,最后,我将讨论高可用性和多个集群之间的平衡。

应用扩展

尽管Kubernetes能够按比例放大或缩小应用程序,但仍需要“弹性”配置工作。例如,Kubernetes可以跟踪任何一个应用程序将需要的资源,以确保它不会在虚拟机上抛出过多的资源。您可以定义应用程序的内存,CPU和网络带宽需求。为此,您需要在生产环境中对应用程序进行概要分析,以找出那些需求,然后在pod的配置中表达这些需求。如果没有该信息,调度程序将假定资源需求为零,并且很容易使虚拟机具有Pod。

假设应用程序是按比例缩放的,则可能需要运行多个Pod以实现高可用性。这样,您可以执行滚动升级并将正常运行时间保持在接近100%的水平。Kubernetes文档提供了有关扩展部署的教程,但这是手动扩展和缩减资源。的水平波德自动配置器可以监视CPU,存储器及其他指标,并添加,并根据需要除去吊舱。

集群本身将具有资源。如果它运行在按CPU计费的按分钟计费的云中,则希望将该数字保持尽可能小。这引入了一个新的问题,即如何使集群按需扩展。

集群扩展

开箱即用的Kubernetes不能也不可以提供自我扩展的工具。群集是一个群集,不知道其外部的其他资源。但是,可以编写一个监视利用率的中间件工具,该工具也连接到可以提供虚拟机的某些其他服务。这可以是公共云,私有云(如OpenStack)或使用VMWare等工具的虚拟机场。Microsoft,Amazon,IBM和Google都在其云中为Kubernetes用户提供了这种自动缩放技术,并且有开源的Autoscaler工具。

集群扩展的另一个选项是OpenShift,它是运行Kubernetes集群的Red Hat的Container Platform。OpenShift可以分配有资源,并且可以管理按比例放大和缩小这些资源。它还可以管理混合云环境,其中一些资源在内部,而其他资源在公共云中。

集群要求更多资源的想法是一回事。如果要运行多个集群怎么办?

多个集群

问题开始时就像将开发,测试和生产集群作为单独的实体一样简单。没有此限制(或专门的节流限制),弹性群集的性能/负载测试可能会取出生产群集。此外,还需要高可用性,这可能意味着云提供商中不同区域中的多个群集。然后,您将拥有不同的运营部门,在不同的国家/地区运行多个集群,并具有将客户路由到其大陆上的数据中心的功能。

IBM云平台的CTO Jason McGee解释说这是一个乘法问题。算一下,一个跨国公司可能会有数十个不同的Kubernetes集群。这使您对所发生的事情有了一个整体的了解,这是一个挑战-更不用说实际管理资源和成本了。

为了管理自己的22,000多个集群云,IBM构建了Razee,该工具后来可以作为开源提供。

其他选择

在历史的这一点上,应对扩展Kubernetes的挑战基本上是自愿成为一家全面的数字公司。这为亚马逊服务,将Web服务变成了74亿美元的业务。如果您的公司不是亚马逊公司,那么您可以考虑一下荷马·辛普森的话:“其他人不能这样做吗?”

作为另一种选择,您可以考虑群集的用途。您可能需要做一些非常具体的事情,而不是广泛进行,例如在Hadoop中进行大数据挖掘,或启用像Redis这样的NoSQL数据库。像Redis Labs这样的专业提供商已经开始创建托管服务产品,旨在处理一个应用程序并很好地处理它。Redis的产品推广员AlexMiłowski解释了公司如何理解这些扩展问题,并创建了一个操作员工具来管理运行Redis NoSql数据库的Kubernetes集群。该服务产品可以在云中的本地群集(内部部署)中作为云中的托管服务工作,甚至可以管理在裸机服务器上本地运行的Redis。

在未来的24个月中,我预计专业云服务将有所增长,随后这些服务将被主要的云服务提供商收购,或者由云服务提供商创建自己的竞争产品。

因此,请注意,不要眨眼。事情正在快速变化,您不想错过它。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/310556.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows环境下ELK平台搭建

背景 日志系统主要包括系统日志,应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器的软件,硬件信息,检查配置过程中的错误以及错误发生的原因。通常分析日志可以了解服务器的负荷,性能安全性,从而及时…

EntityFramework Core 3.x上下文构造函数可以注入实例呢?

今天讨论的话题来自一位微信好友遇到问题后请求我的帮助,当然他的意图并不是本文标题,只是我将其根本原因进行了一个概括,接下来我们一起来探索标题的问号最终的答案是怎样的呢?老规矩,首先我们定义如下上下文public c…

SpringCloud常见问题总结(一)

Eureka常见问题 Eureka注册服务慢 默认情况,服务注册到Eureka Server 的过程比较慢。在开发或者测试时候,如果能够加速注册的过程,从而提升工作效率。Spring Cloud官方文档详细描述了该问题的原因并提供了解决方案: //原文 Why…

[剑指offer]面试题21:包含min函数的栈

面试题21:包含min函数的栈 题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min、push及pop的时间复杂度都是O(1)。 栈内压入3、4、2、1之后接连两次弹出栈顶数字…

IO 模型知多少

1. 引言同步异步I/O,阻塞非阻塞I/O是程序员老生常谈的话题了,也是自己一直以来懵懵懂懂的一个话题。比如:何为同步异步?何为阻塞与非阻塞?二者的区别在哪里?阻塞在何处?为什么会有多种IO模型&am…

[剑指offer]面试题22:栈的压入、弹出序列

面试题22:栈的压入、弹出序列 题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1、2、3、4、5 是某栈的压栈序列,序列4、5、3、2、1…

Ubuntu上安装使用Docker

Docker简介 Docker是一个开源的容器引擎,他有助于更快的交付应用。Docker可以将应用程序和基础设施层做隔离,并且能将基础设施当做程序一样进行管理。使用Docker,可以更快的打包,测试以及部署应用程序,并且可以缩短从…

让 .NET 轻松构建中间件模式代码

让 .NET 轻松构建中间件模式代码Intro在 asp.net core 中中间件的设计令人叹为观止,如此高大上的设计何不集成到自己的代码里呢。于是就有了封装了一个简单通用的中间件模板的想法,以后有需要的时候就可以拿来即用。接口定义这里按执行的委托是同步还是异…

[剑指offer]面试题26:复杂链表的复制

面试题26:复杂链表的复制 题目:请实现函数ComplexListNodeClone(ComplexListNodepHead),复制一个复杂链表。在复杂链表中,每个结点除了有一个m_pNext指针指向下一个结点外,还有一个m_pSibling 指…

SpringCloud + Docker

Dockerfile构建Docker 镜像 注意这里说的Dockerfile是指的一个文本文件,类似txt,只不过名字是Dockerfile,里面编辑Docker的一些指令,指令作用在于描述构建镜像的细节。如下一个简单的案例,用上一节中下载的nginx镜像来…

红帽借“订阅”模式成开源一哥,首创者升任总裁

4 月 6 日,红帽公司宣布,产品和技术总裁 Paul Cormier 即日起任红帽总裁,并兼任首席执行官。Paul Cormier 是开源商业化“订阅”模式的提出者,这一模式促使红帽达成连续超70个季度的盈利,身价升至340亿美金&#xff0c…

Docker中数据管理

Docker数据管理 生产环境中,对数据进行持久化,或者需要在多个容器直接进行数据共享,这必然涉及到容器的一些数据管理的操作。容器中数据管理主要有两种方式: 数据卷(Data Volumes):容器内数据直…

C#两大知名Redis客户端连接哨兵集群的姿势

前言前面《Docker-Compose搭建Redis高可用哨兵集群》,我的思路是将Redis、Sentinel、Redis Client App链接到同一个网桥网络,这个网桥内的Redis Client App就可以使用ContainerIP访问网桥内任意redis节点。同一网桥网络访问规避了Docker上发生的NAT&…

Docker之Dockerfile详解

使用Dockerfile创建镜像 Dockerfile是一个文本格式的配置文件,我们可以利用Dockerfile来快速的创建一个自定义的镜像。 基本结构 Dockerfile由一行命令语句组成,并且支持以#开头的注释一般包括四个部分:基础镜像信息,维护者信息…

创业的N种死法

点击蓝字关注,回复“职场进阶”获取职场进阶精品资料一份互联网的江湖一直流传着大佬们的创业传奇。马云上厕所几分钟敲定几千万美金融资。王石走投无路靠倒卖玉米赚到上百万从此逆袭。扎克伯格为了获得哈佛美女照片,开发一个小玩意从此改变了世界。传奇…

Docker容器实战思维

Docker成功的基础 Docker的实现用到的基础技术(cgroups, namespace,分层文件系统)在Docker之前已经存在很多年,并且 Linux Containers(LXC)也在很多企业的环境中得到了大量的应用实践,并得到明…

dotNET Core 3.X 请求处理管道和中间件的理解

理解 dotNET Core 中的管道模型,对我们学习 dotNET Core 有很大的好处,能让我们知其然,也知其所以然,这样在使用第三方组件或者自己写一些扩展时,可以避免入坑,或者说避免同样的问题多次入坑。本文分为以下…

了解.NET中的垃圾回收

原文来自互联网,由长沙DotNET技术社区编译。尽管这是一篇来自2009年的古老的文章,但或许能够对你理解GC产生一些作用。 了解.NET中的垃圾回收一旦了解了.NET的垃圾收集器是如何工作的,那么可能会触及.NET应用程序的一些更为神秘的问题时&…

数据结构与算法--数组:二维数组中查找

数组 数组最简单的是数据结构,占据一整块连续的内存并按照顺序存储数据,创建数组时候,我们需要首先指定数组的容量大小,然后根据大小分配内存。即使我们只在数组中存储一个元素,亚需要为所有数据预先分配内存&#xf…

数据结构与算法--字符串:字符串替换

数据结构与算法–字符串:字符串替换 字符串的优化 由于字符串在编程时候使用的评率非常高,为了优化,很多语言都对字符串做了特殊的规定。下面我们讨论java中字符串的特性java中的字符数组以’\0’ 结尾,我们可以利用这个特性来找…