первая метка предназначена для самого развертывания, она дает метку для этого конкретного развертывания.Допустим, вы хотите удалить это развертывание, а затем выполните следующую команду:
kubectl delete deployment -l app=nginx
Это удалит все развертывание.
вторая метка равна selector: matchLabels
, чтосообщает ресурсам (сервису и т. д.) о соответствии пакета согласно метке.Допустим, если вы хотите создать службу, в которой все модули имеют метки app=nginx
, тогда вы предоставите следующее определение:
apiVersion: v1
kind: Service
metadata:
name: nginx
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: nginx
Приведенный выше сервис будет искать модули matchLabels и bind, имеющие меткуapp: nginx
присвоено им
третья метка - это podTemplate
метки, template
на самом деле podTemplate
.Он описывает модуль, который запускается.Допустим, у вас есть две развёрнутые реплики, и k8s запустит 2 модуля с меткой, указанной в template: metadata: labels
.Это тонкое, но важное отличие, поэтому у вас могут быть разные метки для развертывания и модули, сгенерированные этим развертыванием.