hurutoriya

kubernetes デプロイ時に `MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable` エラーが出た際に対処方法

k8s で manifest file を編集して実行したら以下のようなエラーが出て実行できなかった。

Exception ( Monitor Deploy ) Deploy failed: The Deployment “—” is invalid: spec.selector: Invalid value: v1.LabelSelector{MatchLabels:map[string]string{“app”:“—”}, MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable

調べてみたところ、

once deployed the label selectors of kubernetes service can not be updated until you decide to delete the existing deployment

ref: MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutabl #508

らしく、一度デプロイされたk8s service の label selector は、既存のdeployment を削除しないとアップデートは不可能らしい。

なので、field is immutableというエラー文は正しいわけですね。

そのdeployment を削除しても良い状態なら、以下のコマンドを実行後再度デプロイすれば、k8s service のlabel selector は実行されます。

kubectl delete deploy <deployment-name>

もしくは、k8s service のlabel selectorの変更を諦めて既存のまま運用するのがもう一つの正解でしょうか。

References

関連しているかもしれない記事

Support

記事をお読みくださりありがとうございます。 このウェブサイトの運営を支援していただける方を募集しています。 もしよろしければ、Buy Me a Coffee からサポート(投げ銭)していただけると、記事の執筆、情報発信のモチベーションに繋がります✨

--

記事を楽しめましたか? RSSで更新情報を配信しているので、お好きなフィードリーダーで購読してみてください。
また、記事へのリアクションやコメントなどを、以下のGitHub を利用したコメントシステムからしていただけると執筆の励みになります。

#kubernetes