【问题标题】:Delay kubernetes pod creation for zero downtime延迟 Kubernetes pod 创建以实现零停机
【发布时间】: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 时立即切换到它。我有两个问题-

  1. 是否存在一种情况,即两个 pod - 新的和旧的 运行并且都开始为流量提供服务?那也不会 也很理想。由于我们只希望一个 pod 以 时间。
  2. Kubernetes 是否提供了其他开箱即用的解决方案 进行滚动部署?

【问题讨论】:

    标签: kubernetes kubectl kubernetes-deployment


    【解决方案1】:

    试试这个。这应该适合你。尝试更新您的图像。

    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: nginx
            imagePullPolicy: Always
            ports:
              - containerPort: 80
                protocol: TCP
            readinessProbe:
              httpGet:
                path: /
                port: 80
              initialDelaySeconds: 5
              periodSeconds: 5
              successThreshold: 1
    

    为了您更好地理解,请查看link

    【讨论】:

    • 那么有必要创建副本吗?我真的不想创建副本,因为我的用例并不真正需要它。
    • 1 个副本和 maxunavailable 设置为 0 应该也适用于零停机时间部署。
    • 我试过了。它不完全是零停机时间。它在再次得到响应之前错过了几个请求。
    • 尝试将 minReadySeconds 添加到 10 并将 maxsurge 添加到 2
    • 遇到了同样的问题。尝试使用副本进行部署时:1. 有人对此有解决方案吗?
    猜你喜欢
    • 2017-12-18
    • 1970-01-01
    • 2019-07-16
    • 2012-04-26
    • 1970-01-01
    • 2020-08-14
    • 2023-03-11
    • 1970-01-01
    • 2016-02-04
    相关资源
    最近更新 更多