介绍
用于部署无状态的服务,如Web服务、API服务等。它提供了应用程序的副本管理、自动扩展、滚动升级等功能。具体来说,Deployment通过ReplicaSet实现副本管理,确保指定数量的Pod副本正在运行,并处理Pod的创建、删除和更新。此外,Deployment还可以实现无缝迁移、自动扩容缩容、自动灾难恢复以及一键回滚等功能
Deployment 示例
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
progressDeadlineSeconds: 600 # 用于定义Deployment升级过程中的最大时间。具体来说,如果Deployment的升级过程超过了这个时间还没有完成,那么Kubernetes会判断该Deployment进程已经卡住,并可能会进行回滚或其他相应的操作
revisionHistoryLimit: 10 # 默认保留RS旧的revision的个数
strategy:
rollingUpdate:
maxSurge: 25% # 可以超过期望值的最大Pod数,可选字段,默认为25%,可以设置成数字或百分比,如果该值为0,那么maxUnavailable不能为0
maxUnavailable: 25% # 指定在回滚或更新时最大不可用的Pod的数量,可选字段,默认25%,可以设置成数字或百分比,如果该值为0,那么maxSurge就不能为0
type: RollingUpdate # 更新deployment的方式,默认是RollingUpdate
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
yaml 关键字解释
- revisionHistoryLimit: 10 # 默认保留RS旧的revision的个数
- progressDeadlineSeconds: 600 # 用于定义Deployment升级过程中的最大时间。具体来说,如果Deployment的升级过程超过了这个时间还没有完成,那么Kubernetes会判断该Deployment进程已经卡住,并可能会进行回滚或其他相应的操作。
- maxSurge: 25% # 可以超过期望值的最大Pod数,可选字段,默认为25%,可以设置成数字或百分比,如果该值为0,那么ma