Kubernetes 库贝雷特斯异常现象:;在滚动升级时,旧的ReplicaSet和旧的POD仍然有效,新的ReplicaSet和新的POD仍然有效

Kubernetes 库贝雷特斯异常现象:;在滚动升级时,旧的ReplicaSet和旧的POD仍然有效,新的ReplicaSet和新的POD仍然有效,kubernetes,Kubernetes,当我使用Kubernetes restful api进行滚动升级时,升级后,会创建新的复制集,运行新的POD并获得所需的复制副本。但与此同时,旧的ReplicaSet和旧的POD仍在运行。部署的副本是3,当我在etcd中检查数据时,新ReplicaSet的副本是3,旧ReplicaSet的副本是2,我在controller manager日志中找不到任何错误信息 另一个问题:为什么kubectl不使用restful api进行滚动更新?kubectl进行滚动升级 我的代码: cli := rdc

当我使用Kubernetes restful api进行滚动升级时,升级后,会创建新的复制集,运行新的POD并获得所需的复制副本。但与此同时,旧的ReplicaSet和旧的POD仍在运行。部署的副本是3,当我在
etcd
中检查数据时,新ReplicaSet的副本是3,旧ReplicaSet的副本是2,我在controller manager日志中找不到任何错误信息

另一个问题:为什么kubectl不使用restful api进行滚动更新?kubectl进行滚动升级

我的代码:

cli := rdc.k8sClients
dp, err := cli.Extensions().Deployments(namespace).Get(deployment)
if err != nil {
    return
}

curImage := dp.Spec.Template.Spec.Containers[0].Image

ds := new(extensions.DeploymentStrategy)
ds.Type = extensions.RollingUpdateDeploymentStrategyType
ds.RollingUpdate = new(extensions.RollingUpdateDeployment)
ds.RollingUpdate.MaxUnavailable = intstr.FromInt(int(ROLLING_MAXUNAVAILABLE))
ds.RollingUpdate.MaxSurge = intstr.FromInt(int(ROLLING_MAXSURGE))

_, err = cli.Extensions().Deployments(namespace).Update(dp)

您使用什么命令进行滚动升级?
kubectl descripe rs/
的输出是什么?我使用restful api进行滚动升级:rclient.Extensions().Deployments(namespace).Update(deployment)要触发部署的滚动更新,需要更新部署的
.spec.template
。在您的代码中,我没有看到部署的模板正在更新。我与您有相同的异常现象。我使用命令'kubectl replace-f***.yaml'。但我发现一件奇怪的事情,旧的复制集将丢失字段“ownerReferences”。我认为该字段将用于连接旧的ReplicaSet和新的ReplicaSet。缩小旧吊舱的比例,增大新吊舱的比例。但我不知道为什么字段“ownerReferences”丢失了。这个消息能帮你吗?或者你已经解决了这个问题?