一、Pod的升级
当集群中的某个服务需要升级时,需要停止目前与该服务相关的所有Pod,然后下载最新版本的镜像并创建新的Pod。如果集群比较大,这样服务将变成了一个挑战。如果全部服务先停止然后再逐步升级的方式会导致教长时间服务不可用。Kuberntes提供滚动升级功能解决这些问题。
如果Pod通过Deployment创建的,则用户可以在运行时修改Deployment中的Pod定义(spec.template)或者镜像名称,并应用到Deployment对象上,系统可以完成Deployment的rollout动作,rollout被视为Deployment的自动更新或者自动部署动作。如果更新过程中发生错误,可以通过回滚操作恢复Pod版本。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 3
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9