kubernetes DeploymentSpec 中label 与 selector问题


在DeploymentSpec 结构体中有这两个字段:

// Label selector for pods. Existing ReplicaSets whose pods are
// selected by this will be the ones affected by this deployment.
// +optional
Selector *metav1.LabelSelector

// Template describes the pods that will be created.
Template api.PodTemplateSpec

在 api.PodTemplateSpec中又有

// Metadata of the pods created from this template.
// +optional
ObjectMeta

问题1: Selector *metav1.LabelSelector 这个字段是做什么用的?
问题2: 为什么要进行这个验证步骤?(我的理解是验证Selector 和ObjectMeta labels字段是否一致,如有误请指出)
// Validates the given template and ensures that it is in accordance with the desired selector and replicas.
func ValidatePodTemplateSpecForReplicaSet(template *api.PodTemplateSpec, selector labels.Selector, replicas int32, fldPath *field.Path) field.ErrorList {
已邀请:

要回复问题请先登录注册