一、相关概念
之前部署的应用都是无状态应用,每个Pod都是一样的,没有顺序的要求,应用不用考虑在哪个节点运行,可以随意进行伸缩和扩容(K8S会自动漂移),但是如下场景则需要考虑节点的启动顺序,如mysql的主从等。
StatefulSet有状态则通过网络标识符,持久存储等确保。
二、实验
使用StatefulSet构建有状态的应用
首先需要一个无头的Service(ClusterIp:none),然后声明一个Kind为StatefulSet
yml文件如下:
apiVersion: v1
kind: Service
metadata:
name: nginx
labels:
app: nginx
spec:
ports:
- port: 80
name