1、无状态和有状态区别
- 无状态:
- 认为Pod都是一样的
- 部署没有顺序要求
- 不用考虑在哪个node运行
- 随意进行伸缩和扩展
- (StatefulSet)有状态:
- 无状态的因素有需要考虑到
- 让每个Pod独立,保持Pod启动顺序和唯一性
- 唯一的网络标识符,持久存续
- 有序部署,比如Mysql主从
2、 部署有状态应用
- 无头Service
- ClusterIP: none
(1) 实例演示
apiVersion v1
kind Service
metadata
name web01-satefulset
labels
app web01-satefulset
spec
clusterIP None
selector
app web01-satefulset
ports
port80
name web
---
apiVersion apps/v1
kind StatefulSet
metadata
name web01-satefulset
namespace default
spec
serviceName web01-satefulset
replicas3
selector
matchLabels
app web01-satefulset
template
metadata
labels
app web01-satefulset
spec
containers
name web01-satefulset
image nginx1.14
ports
containerPort80
经查勘 有三个pod,每个都是唯一名称,无头的Service
deployment和statefulSet区别:有身份的(唯一标识的)
- 根据主机名+按照一定规则生成域名
- 每个Pod有唯一主机名
- 格式 主机名称.service名称.名称空间.svc.cluster.local
- Web01-statefulset-().web01.default.svc.cluster.local