k8s sts(StatefulSet)学习
应用程序存在“有状态”和“无状态”两种类别,因为无状态类应用的Pod资源可按需增加、减少或重构,而不会对由其提供的服务产生除了并发响应能力之外的其他严重影响。Pod资源的常用控制器中,Deployment、ReplicaSet和DaemonSet等常用于管理无状态应用。但实际情况是,应用本身就是分布式的集群,各应用实例彼此之间存在着关联关系,甚至是次序、角色方面的相关性,其中的每个实例都有其自身的
常用命令
kq get sts
kq describe StatefulSet StatefulSet名称
或 kq describe sts sts名称
kq edit sts sts名称
分类
应用程序存在“有状态”和“无状态”两种类别,因为无状态类应用的Pod资源可按需增加、减少或重构,而不会对由其提供的服务产生除了并发响应能力之外的其他严重影响。Pod资源的常用控制器中,Deployment、ReplicaSet和DaemonSet等常用于管理无状态应用。但实际情况是,应用本身就是分布式的集群,各应用实例彼此之间存在着关联关系,甚至是次序、角色方面的相关性,其中的每个实例都有其自身的独特性而无法轻易由其他实例所取代。
-
象限A中是那些具有读写磁盘需求的有状态应用程序,如支持事务功能的各种RDBMS存储系统;另外各种分布式存储系统也是此类应用程序的典型,如Redis Cluster、MongoDB、ZooKeeper和Cassandra等。
-
象限B中包含两类应用程序:一类是那些具有读写磁盘需求的无状态应用程序,如具有幂等性的文件上传类服务程序;另一类是仅需只读类I/O访问的无状态应用程序,例如,从外部存储加载静态资源以响应用户请求的Web服务程序。
-
象限C中是无磁盘访问需求的无状态应用程序,如地理坐标转换器应用。
-
象限D中是无磁盘访问需求的有状态应用程序,如电子商城程序中的购物车系统。
不过,用户拥有放置应用程序的部分自由度,例如,使用购物车的电子商城系统中,一般需要确保购物车里的物品在整个会话期间均保持可用状态,因此它可能不允许使用纯内存的解决方案。另外,设计有状态应用程序时需要着重考虑的另一个方面是数据持久存储的位置,在应用程序所在的节点发生故障后依然需要确保数据可被访问的场景就需要一个外部的持久存储系统,否则使用节点本地存储卷即可。
StatefulSet与Deployment的区别
StatefulSet与Deployment还是有显著不同的,StatefulSet能够确保以下几点。
●Pod的名字是可预知和保持不变的。
●DNS主机名是可预知和保持不变的。
●卷的绑定是可预知和保持不变的。
更多推荐
所有评论(0)