【问题标题】:Is it possible to terminate faster a container in local, after a rollout in Kubernetes在 Kubernetes 中推出后,是否可以在本地更快地终止容器
【发布时间】:2019-11-13 09:02:25
【问题描述】:

当我在本地时,使用 minikube,我每次重建我的应用程序时都会检查它,并使用:

kubectl rollout restart deployment/api-local -n influx

容器持续 30 秒被终止。我在生产方面没有问题,但是在本地开发中,我最终会浪费很多时间等待,因为我可能会重建我的应用程序 100 次(= 每天损失 50 分钟)。

有什么技巧可以缩短这个终止时间吗?我知道这不是 k8s 最佳实践的一部分,但对我来说很有意义。

【问题讨论】:

    标签: kubernetes rollout


    【解决方案1】:

    在部署/pod 配置中设置terminationGracePeriodSeconds。根据reference docs,它是:

    ...pod 需要优雅终止的可选持续时间(以秒为单位)。 可以在删除请求中减少。值必须为非负数 整数。零值表示立即删除。如果这个值是 nil,将使用默认宽限期。宽限期 是在 pod 中运行的进程之后的持续时间(以秒为单位) 发送终止信号和进程被强制执行的时间 伴随着杀戮信号停了下来。将此值设置为比预期长 您的过程的清理时间。默认为 30 秒。

    例子:

    spec:
      replicas: 1
      selector:
        ...
      template:
        spec:
          terminationGracePeriodSeconds: 0
          containers:
          ...
    

    另外,来自here

    kubectl 删除命令支持 --grace-period= 选项允许用户覆盖默认值并指定他们的 自己的价值。值 0 force 删除 Pod。您必须指定一个 附加标志 --force 以及 --grace-period=0 以 执行强制删除。

    示例(如果需要,请指定命名空间):

    kubectl delete pod <pod-name> --now
    

    ...或

    kubectl delete pod <pod-name> --grace-period=0 --force
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-03
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多