Je viens de migrer mon cluster de k8s 1.5 à 1.6 et je dois mettre à niveau mon graphique zookeeper pour utiliser spec.affinity au lieu de 1.5 annotations.
Error: UPGRADE FAILED: StatefulSet.apps "zk" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas' and 'containers' are forbidden.
Comment puis-je procéder à la mise à niveau du graphique sans supprimer le cluster zookeeper existant ?
de
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"
De plus, je suis au courant de https://github.com/kubernetes/features/blob/master/release-1.6/release-notes-draft.md#scheduling pour continuer à utiliser l'affinité par annotations dans 1.6, mais ce problème persistera existe quand je voudrai passer à la 1.7
Il s'agit d'un problème en amont avec la mise à niveau des affinités de statefulset, nous ne pouvons donc rien faire ici, malheureusement. Je suis désolé que nous ne puissions pas vous aider ici, mais je suggère d'ouvrir un ticket ou de rechercher des tickets existants sur https://github.com/kubernetes/kubernetes pour résoudre ce problème. Merci!
Pour ajouter, les StatefulSets sont un objet alpha (maintenant bêta pour 1.8), il n'y a donc aucune garantie que ces ressources puissent être mises à niveau de manière fiable avec helm. Nous essayons de faciliter la mise à niveau des ressources instables dans kubernetes, mais parfois, cela échappe simplement à notre contrôle en raison de modifications incompatibles avec les versions antérieures et c'est juste la nature de la bête. Pardon!
Commentaire le plus utile
Pour ajouter, les StatefulSets sont un objet alpha (maintenant bêta pour 1.8), il n'y a donc aucune garantie que ces ressources puissent être mises à niveau de manière fiable avec helm. Nous essayons de faciliter la mise à niveau des ressources instables dans kubernetes, mais parfois, cela échappe simplement à notre contrôle en raison de modifications incompatibles avec les versions antérieures et c'est juste la nature de la bête. Pardon!