【发布时间】:2016-07-12 04:56:13
【问题描述】:
我在 Kubernetes 中有以下部署:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
run: hello-node
name: hello-node
namespace: default
spec:
replicas: 2
selector:
matchLabels:
run: hello-node
strategy:
rollingUpdate:
maxSurge: 2
maxUnavailable: 0
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
run: hello-node
spec:
containers:
- image: <image>:<tag>
imagePullPolicy: Always
name: hello-node
livenessProbe:
httpGet:
path: /rest/hello
port: 8081
initialDelaySeconds: 15
timeoutSeconds: 1
ports:
- containerPort: 8081
protocol: TCP
resources:
requests:
cpu: 400m
terminationMessagePath: /dev/termination-log
dnsPolicy: ClusterFirst
restartPolicy: Always
securityContext: {}
terminationGracePeriodSeconds: 30
问题是,当我更新我的部署以假设我的映像的新版本时,Kubernetes 将立即用旧映像杀死两个 pod,并用新映像带来两个新 pod。在新 pod 启动时,我遇到了服务中断。
由于rollingUpdate 和livenessProbe 我期待Kubernetes 执行以下操作:
- 使用新映像启动一个 pod
- 等待基于
livenessProbe的新 pod 运行良好 - 用旧图像杀死一个 pod
- 重复直到所有 pod 都迁移完毕
我在这里遗漏了什么?
【问题讨论】:
标签: amazon-web-services kubernetes