如何把应用转移到Kubernetes,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
Ben Sears
Kubernetes是时下最流行的管理和编排工具,它提供了一个配置驱动的框架,让我们可以通过定义和操作获得整个网络、磁盘和应用,并以可伸缩且易于管理的方式进行。
如果我们还没有完成应用容器化,那么把应用转移到Kubernetes上会是一件高强度的工作,目的则是介绍应用与Kubernetes集成的方法。
容器是可以独立运行的基本操作单元,不同于传统虚拟机依赖模拟操作系统,容器利用各种内核特性来提供与主机隔离的环境。
对于有经验的技术人员来说,整个容器化过程不算复杂——使用docker,定义一个包含安装步骤和配置(下载包、依赖等等)的dockerfile,最后构建一个可以让开发人员使用的镜像即可。
在我们把应用迁移到Kubernetes之前,需要确认向最终用户交付的方式。
传统web应用的多租户结构,是所有用户共享单个数据库实例和应用实例,这种形式在Kubernetes中工作没什么问题,但我们建议考虑把应用改造成多实例架构,以充分利用Kubernetes和容器化应用的优势特性。
采用多实例架构的好处包括:
稳定性——单点故障,不影响其他实例;
可伸缩——通过多实例架构,扩展也就是增加计算资源的事;而对于多租户架构,需要创建集群应用体系结构的部署可能会有些麻烦;
安全性——当您使用单个数据库时,所有数据都在一起,一旦发生安全漏洞,所有用户都会收到威胁,而采用多数据中心,只会有一个用户的数据面临风险;
为了获得成本效益,我们需要确定运行单个应用实例所需的CPU、内存和存储量。
我们可以通过设置限制,精确调整Kubernetes节点需要多少空间、确保节点过载或者不可用等等。
这需要我们反复的尝试和验证,也有一些工具可以替我们达成这一目的。
在确定资源分配之后,我们可以计算Kubernetes节点的最佳资源大小;
将每个实例需要的内存或CPU乘以100(节点可以容纳的最大Pod数),我们可以大概估计你的节点应该有多少内存和CPU;
对应用程序进行压力测试以确保它在满节点时顺利运行。
Kubernetes集群运行起来,我们会发现许多DevOps实践水到渠成——
自动缩放Kubernetes节点
节点用满时,通常需要配置更多的节点以便所有实力顺畅运行,自动缩放的Kubernetes节点便派上了用场。
自动缩放应用程序
根据使用情况,某些应用需要按比例缩放,Kubernetes使用可自动缩放部署的触发器来实现,命令:
kubectl autoscale deployment myapp --cpu-percent = 50 --min = 1 --max = 10
如上,当CPU百分比超过50时,将设置myapp部署扩展到10个容器。
在用户操作时自动配置实例
对于多实例架构,最终用户在Kubernetes中部署应用程序,而为了实现这一点,我们应该考虑将应用与Kubernetes API集成,或者使用第三方解决方案来提供请求实例的入口。
通过用户操作定义自定义主机名
最近越来越多的终端用户将其域名附加到应用程序中,而Kubernetes提供了一些工具来使这个过程变得更加简单,甚至到达自助服务的地步(用户按下一个按钮来设置域指向),我们可以使用Nginx Ingress等系统来完成此操作。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。