Helm: 从 k8s 1.5 -> 1.6 将 statefulset 关联从 annotation 升级到 spec.affinity 失败

创建于 2017-09-18  ·  3评论  ·  资料来源: helm/helm

问题

我刚刚将我的集群从 k8s 1.5 迁移到 1.6,我必须升级我的 zookeeper 图表以使用 spec.affinity 而不是 1.5 注释。

Error: UPGRADE FAILED: StatefulSet.apps "zk" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas' and 'containers' are forbidden.

问题

如何在不删除现有 zookeeper 集群的情况下继续升级图表?

annotations:
    scheduler.alpha.kubernetes.io/affinity: >
      {
        "podAntiAffinity": {
          "requiredDuringSchedulingIgnoredDuringExecution": [
            {
              "labelSelector": {
                "matchExpressions": [
                  {
                    "key": "app",
                    "operator": "In",
                     "values": ["zk-headless"]
                  }
                ]
              },
              "topologyKey": "kubernetes.io/hostname"
            }
          ]
        }
}

affinity:
  podAntiAffinity:
        requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
                - key: "app"
                  operator: In
                  values: 
                  - zk-headless
  topologyKey: "kubernetes.io/hostname"
questiosupport

最有用的评论

另外,StatefulSets 是一个 alpha 对象(现在是 1.8 的 beta 版),因此不能保证这些资源可以通过 helm 可靠地升级。 我们试图让升级 kubernetes 中不稳定的资源变得容易,但有时由于向后不兼容的更改,这只是我们无法控制的,这就是野兽的本性。 对不起!

所有3条评论

另外,我知道https://github.com/kubernetes/features/blob/master/release-1.6/release-notes-draft.md#scheduling在 1.6 中通过注释继续使用亲和性,但这个问题仍然存在当我想升级到 1.7 时存在

这是升级 statefulset 关联的上游问题,因此不幸的是,我们在这里无能为力。 很抱歉,我们无法在此为您提供帮助,但我建议您打开一个票证或在https://github.com/kubernetes/kubernetes上搜索现有票证以解决此问题。 谢谢!

另外,StatefulSets 是一个 alpha 对象(现在是 1.8 的 beta 版),因此不能保证这些资源可以通过 helm 可靠地升级。 我们试图让升级 kubernetes 中不稳定的资源变得容易,但有时由于向后不兼容的更改,这只是我们无法控制的,这就是野兽的本性。 对不起!

此页面是否有帮助?
0 / 5 - 0 等级