Responda a esta pergunta que podemos encontrar na seção Implantações do kubernetes.io
Então, por que vou precisar dos seletores também?
Citações abaixo da documentação para k8s v 1.14
.spec.selector
é um campo obrigatório que especifica um seletor de rótulo para os Pods segmentados por esta implantação.
.spec.selector
deve corresponder .spec.template.metadata.labels
ou será rejeitado pela API.
Na versão da API apps / v1, .spec.selector e .metadata.labels não assumem o padrão .spec.template.metadata.labels, se não estiver definido. Portanto, eles devem ser definidos explicitamente . Observe também que .spec.selector é imutável após a criação do Deployment em apps / v1.
Uma Implantação pode encerrar Pods cujos rótulos correspondam ao seletor se o modelo for diferente de .spec.template ou se o número total desses Pods exceder .spec.replicas. Ele exibe novos Pods com .spec.template se o número de Pods for menor que o número desejado.
Os pods já estão sendo iniciados separadamente, mas posteriormente colocados sob a égide do Deployment para serem gerenciados juntos?
Simplesmente falando, não
Nota: Você não deve criar outros pods cujos rótulos correspondam diretamente a esse seletor, criando outro Deployment
ou criando outro controlador, como a ReplicaSet
ou a
ReplicationController
. Se você fizer isso, o primeiro Deployment
pensa que criou esses outros pods. Kubernetes
não o impede de fazer isso. Se você tiver vários controladores com seletores sobrepostos, os controladores lutarão entre si e não se comportarão corretamente.
.spec.template.metadata.labels
? Qual é o objetivo disso, comospec
é definido de qualquer maneira abaixo,Deployment
para ficar claro quais Pods foram iniciados para a Implantação.