Kubernetes 学习23 helm入门

一、概述

  1、我们此前在使用kubernetes中,无论我们使用无状态的应用程序,比如myapp,nginx。以及有状态的tomcat,redis,etcd,...等等,他们部署在k8s之上会有这样的问题。首先对无状态应用我们首先使用deployment控制器来实现控制以后其规模伸缩极其容易。这也是k8s带给我们的最重要的需要。但是如果是有状态的应用,若是有状态的单一实例的应用,我们使用deployment控制它并限制他不能够进行规模的伸缩是没有任何问题的,照样能够使用持久存储来完成数据的持久存储能力。但是一旦我们需要将有状态应用扩展至多个副本这么一来就会导致不同的应用程序他的扩展方式是不尽相同的。比如tomcat,我们扩展至多个实例,如果我们需要去追踪用户状态而且允许用户上传数据的话就没有问题。同样的,redis,如果我们配置的是redis主从和配置的是redis cluster很显然他们就是不同的分布方式,同样的etcd等等也是一样的。这就会导致大量用户在配置和部署时面对这种有状态应用面对着极大的困难。所以我们说过没有足够实力想把有状态的应用部署在k8s之上真的不是一件轻松的事。不过阿里或蚂蚁金服这种大佬公司除外。我们也说过如果要去部署有状态应用我们可以可以看到比如prometheus他们就可以借助于opertor来实现,我们讲过运维工程师本身就可以理解为opertor,因此opertor也就是封装了对应的分布式系统的运维需求到一个相应的k8s组件中,让这个组件代为执行我们日常的运维工作,但你要充分调试出所有问题来确保没有问题。这俨然就是一种开发。

猜你喜欢

转载自www.cnblogs.com/Presley-lpc/p/11434333.html