kubernetes(k8s)有状态服务和无状态服务怎么理解呢?
无状态:deployment
有状态:SatefulSet
简单理解,说下各自应用场景。(1)无状态:比如某个应用需要部署2个节点,然后通过一个负载均衡器代理,供外部访问。这种情况采用Deployment部署,后端的两个节点通过Service(负载均衡)将服务暴露出去,默认使用轮询策略像两个节点转发请求,节点无优先级,pod名称后面会拼接类似随机字符串,名称不固定;(2)有状态:部署一主一从2个节点的MySQL数据库集群,从节点永远只能再主节点取数据然后同步过来,对外提供数据库服务,写操作只能指定到主节点,而读操作可以是两个节点轮询转发请求。这种情况下两个节点担负责任不一样,且有优先级。只能使用StatefulSet并配合无头服务,才能指定访问到后端的主节点。pod名称默认按照数字顺序,如:pod名称-0、pod名称-1、pod名称-2等,或者说你需要一个固定的pod名称这种需求。
找不到想要的答案?提一个您自己的问题。
0 声望
这家伙太懒,什么都没留下
无状态:deployment
有状态:SatefulSet
简单理解,说下各自应用场景。
(1)无状态:比如某个应用需要部署2个节点,然后通过一个负载均衡器代理,供外部访问。这种情况采用Deployment部署,后端的两个节点通过Service(负载均衡)将服务暴露出去,默认使用轮询策略像两个节点转发请求,节点无优先级,pod名称后面会拼接类似随机字符串,名称不固定;
(2)有状态:部署一主一从2个节点的MySQL数据库集群,从节点永远只能再主节点取数据然后同步过来,对外提供数据库服务,写操作只能指定到主节点,而读操作可以是两个节点轮询转发请求。这种情况下两个节点担负责任不一样,且有优先级。只能使用StatefulSet并配合无头服务,才能指定访问到后端的主节点。pod名称默认按照数字顺序,如:pod名称-0、pod名称-1、pod名称-2等,或者说你需要一个固定的pod名称这种需求。
你的答案