[[Kubernetes]]のDeploymentで指定するラベルに以下の3種類がある。 - metadata.labels: 実際のdeploymentのラベル - spec.selector.matchLabels: Deploymentが適用するpodsはどれかを示す - spec.template.metadata.labels: Podsに適用するラベル matchLabelsとtemplate.metadata.labelsの2つあるのは、実装の依存の話らしい。 template.metadata.labelsは変更禁止になった。 - [Deploymentにlabel書く部分がやたら多いけどそれ必要? - Qiita](https://qiita.com/masahata/items/85421048744583c4b376) - [matchLabels, labels, and selectors explained in detail, for beginners | by Zane Hitchcox | Medium](https://medium.com/@zwhitchcox/matchlabels-labels-and-selectors-explained-in-detail-for-beginners-d421bdd05362) - [What is the purpose of a kubernetes deployment pod selector? - Stack Overflow](https://stackoverflow.com/questions/50309057/what-is-the-purpose-of-a-kubernetes-deployment-pod-selector) #### ラベルの変更方法 - [(k8s / openshift) リソースにlabelを後から設定する - zaki work log](https://zaki-hmkc.hatenablog.com/entry/2020/01/22/001716) - [kubernetes - Invalid spec selector after upgrading helm template - Stack Overflow](https://stackoverflow.com/questions/53998259/invalid-spec-selector-after-upgrading-helm-template) `kubectl delete deploy <deployment name>` してから kubectl apply -f podを再作成しないでラベルを付与できないのか?