【发布时间】:2019-04-02 17:57:33
【问题描述】:
我正在尝试在 Kubernetes 中实现部署的滚动更新。我关注了很多文章,说停机时间为零,但是当我连续运行 curl 时。在得到回复之前,我的一些请求失败了。下面是部署文件。
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: myapp-deployment
spec:
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 0
maxSurge: 1
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp-container
image: my-image
imagePullPolicy: Always
ports:
- containerPort: 80
protocol: TCP
readinessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 5
periodSeconds: 5
successThreshold: 1
接下来我做的事情被添加了
MinReadySeconds:120
这可以解决这个问题,但它不是最佳解决方案,因为我们希望在下一个 Pod 开始服务请求并终止旧 Pod 时立即切换到它。我有两个问题-
- 是否存在一种情况,即两个 pod - 新的和旧的 运行并且都开始为流量提供服务?那也不会 也很理想。由于我们只希望一个 pod 以 时间。
- Kubernetes 是否提供了其他开箱即用的解决方案 进行滚动部署?
【问题讨论】:
标签: kubernetes kubectl kubernetes-deployment