pho*_*360 2 amazon-web-services kubernetes
我在 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
Run Code Online (Sandbox Code Playgroud)
问题是,当我更新我的部署以假设我的映像的新版本时,Kubernetes将立即使用旧映像杀死两个 Pod,并使用新映像带来两个新 Pod。当新 Pod 启动时,我遇到服务中断。
由于rollingUpdate和livenessProbe我期望Kubernetes做以下事情:
livenessProbe我在这里遗漏了什么?
你需要的是readinessProbe。
Liveness初始延迟之前的默认状态是Success,而Readiness初始延迟之前的默认状态是Failure。
如果您希望在探测失败时终止并重新启动容器,请指定 aLivenessProbe和 a RestartPolicyof Alwaysor OnFailure。
如果您只想在探测成功时才开始向 Pod 发送流量,请指定一个ReadinessProbe.
有关更多详细信息,请参阅容器探针。
要具有您描述的滚动更新行为,请设置maxSurge为1(默认值)。这告诉部署“一次最多扩展一个副本”。有关更多详细信息,请参阅文档maxSurge。
| 归档时间: |
|
| 查看次数: |
930 次 |
| 最近记录: |