La respuesta a esta pregunta la podemos encontrar en la sección Implementaciones de kubernetes.io
Entonces, ¿por qué necesitaré también los selectores?
Citas a continuación de la documentación para k8s v 1.14
.spec.selector
es un campo obligatorio que especifica un selector de etiquetas para los Pods a los que se dirige esta implementación.
.spec.selector
debe coincidir .spec.template.metadata.labels
, o será rechazado por la API.
En la versión de API apps / v1, .spec.selector y .metadata.labels no tienen el valor predeterminado .spec.template.metadata.labels si no se configuran. Por lo tanto, deben establecerse explícitamente . También tenga en cuenta que .spec.selector es inmutable después de la creación de la implementación en apps / v1.
Una implementación puede finalizar Pods cuyas etiquetas coincidan con el selector si su plantilla es diferente de .spec.template o si el número total de dichos Pods supera las réplicas .spec. Muestra nuevos Pods con .spec.template si el número de Pods es menor que el número deseado.
¿Los pods ya se están iniciando por separado, pero luego se han puesto bajo el paraguas de Deployment para ser administrados juntos?
Simplemente hablando, no
Nota: No debe crear otros pods cuyas etiquetas coincidan con este selector, ya sea directamente, creando otro Deployment
o creando otro controlador como a ReplicaSet
o a
ReplicationController
. Si lo hace, el primero Deployment
piensa que creó estas otras vainas. Kubernetes
no te impide hacer esto. Si tiene varios controladores que tienen selectores superpuestos, los controladores lucharán entre sí y no se comportarán correctamente.