文章目录
缩写: sts
通过 kubectl api-resources 可以查到:
NAME | SHORTNAMES | APIVERSION | NAMESPACED | KIND |
---|---|---|---|---|
statefulsets | sts | apps/v1 | true | StatefulSet |
web-sts.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx
labels:
app: nginx
spec:
ports:
- port: 80
name: web-sts-svc
clusterIP: None
selector:
app: nginx
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
spec:
serviceName: "nginx"
replicas: 2
updateStrategy:
rollingUpdate:
partition: 0
type: RollingUpdate
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80
name: web
创建sts
扩缩容
金丝雀发布
- 首先创建一个带有5个pod的sts
- 修改sts的更新策略
- 修改镜像,开始更新。
- 查看更新结果。
OnDelete 删除时更新
-
创建带有两个pod的sts
-
kubectl edit sts web 修改更新策略为OnDelete;edit命令是运行时修改,也可以在yaml提前改好。
-
kubectl edit sts web 修改镜像为1.9.1,保存退出。
-
再次检查pod的镜像信息,这个时候镜像还是老的,没有变化。
-
kb delete po web-0 删除pod web-0,并再检查新创建的pod-0的镜像信息。可以看到新创建的pod镜像是1.9.1