gcloud - kubectl 滚动更新有几秒钟的停机时间

标签 gcloud kubernetes google-kubernetes-engine

我在使用 Kubernetes 0.20.2 的集群中使用 Google Container Engine。

在这个集群中,我有 1 个复制 Controller (2 个副本)1 个服务,其规范类型定义为 LoadBalancer (基本设置)。

这里一切正常; 然后我想使用 kubectl 命令滚动更新到不同的图像:

kubectl rolling-update my-rc \
  --image=gcr.io/project/gcloudId:my-image-updated \
  --update-period=0m

据我了解,运行此命令应该可以实现零停机时间。不幸的是,我一直在循环使用 curl 命令进行一些测试,但仍然有几秒钟的停机时间。 知道为什么会这样吗?

最佳答案

--update-period 标志告诉 Kubernetes 在滚动更新的每个 pod 之间等待多长时间。将更新周期设置为 0 时,Kubernetes 将一次性更新所有 Pod,导致新 Pod 启动时出现短时间不可用。您应该将 --update-period 设置为至少与每个 pod 初始化所需的时间一样长。如果您不想考虑的话,默认值(1 分钟)应该适用于几乎所有情况。

关于gcloud - kubectl 滚动更新有几秒钟的停机时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31526113/

相关文章:

apache-spark - Spark on Kubernetes 驱动程序 pod 清理

docker - 大三角帆-Kubernetes-找不到Docker容器

mysql - 使用密码时无法连接到Kubernetes上的mariadb

postgresql - 输入是 PostgreSQL 自定义格式转储。使用 pg_restore 命令行客户端将此转储恢复到数据库。

ssh - gcloud ssh -- 没有可用的受支持的身份验证方法(服务器发送 : publickey)

google-cloud-platform - gcloud compute ssh 停止

google-kubernetes-engine - 403 试图签署提供的字节 : The caller does not have permission

environment-variables - 如何将环境变量注入(inject)到 gcloud 计算实例创建的启动脚本中?

kubernetes - 为ACS群集创建了两个资源组

kubernetes - 使用 Terraform 管理 GKE 及其部署