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:
- port: 80
name: web
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web01-satefulset
namespace: default
spec:
serviceName: web01-satefulset
replicas: 3
selector:
matchLabels:
app: web01-satefulset
template:
metadata:
labels:
app: web01-satefulset
spec:
containers:
- name: web01-satefulset
image: nginx:1.14
ports:
- containerPort: 80
经查勘 有三个pod,每个都是唯一名称,无头的Service
deployment和statefulSet区别:有身份的(唯一标识的)
根据主机名+按照一定规则生成域名
每个Pod有唯一主机名
格式 主机名称.service名称.名称空间.svc.cluster.local
Web01-statefulset-().web01.default.svc.cluster.local