Kubernetes K8s吊舱亲和力&;反亲和力,软(首选DuringScheduling)在1.4中不受尊重?
我正在用k8s1.4pod亲和反亲和试验。我正试图让K8s尽可能多地将同一节点上相同服务的POD聚集在一起(即,如果不可能在服务已经存在的节点上放置更多内容,则只转到下一个节点)。为此,我需要设置:Kubernetes K8s吊舱亲和力&;反亲和力,软(首选DuringScheduling)在1.4中不受尊重?,kubernetes,Kubernetes,我正在用k8s1.4pod亲和反亲和试验。我正试图让K8s尽可能多地将同一节点上相同服务的POD聚集在一起(即,如果不可能在服务已经存在的节点上放置更多内容,则只转到下一个节点)。为此,我需要设置: 一种硬(requiredDuringScheduling)反亲和力,用于排除已在运行不同服务的情况下运行(pod\u label\u xyz不在[value-A]) 软(preferredDuringScheduling)亲缘关系,尝试在[value-A]中相同服务(pod\u label\u xy
requiredDuringScheduling
)反亲和力,用于排除已在运行不同服务的情况下运行(pod\u label\u xyz
不在[value-A]
)preferredDuringScheduling
)亲缘关系,尝试在[value-A]
中相同服务(pod\u label\u xyz
)的位置运行-重量100preferredDuringScheduling
)反亲和力,尝试在同一服务尚未运行的情况下不运行(pod\u label\u xyz
不存在)-重量100pod\u label\u xyz
&(value-a
,value-b
,value-c
)且每个服务都使用复制控制器创建了1个pod时,第一个pod将得到正确调度,并且当扩展其中任何一个时,K8s遵守第一个硬规则。但是,第二个和第三个(实际上是第二个的多余部分)不受尊重。我看到,当我扩大K8s的规模时,它会尝试将POD推送到空节点(其他任何服务都不会使用),即使在服务已经运行的地方有能力安排更多的时间。事实上,如果我进一步放大,就会在原始节点和新节点(以前未使用的节点)上创建新的pod
如果我遗漏了什么,请告诉我
多谢各位
这是我使用的注释
scheduler.alpha.kubernetes.io/affinity: >
{
"podAffinity":{
"preferredDuringSchedulingIgnoredDuringExecution":[
{
"weight":100,
"podAffinityTerm":{
"labelSelector":{
"matchExpressions":[
{
"key":"pod_label_xyz",
"operator":"Exists"
},
{
"key":"pod_label_xyz",
"operator":"In",
"values":[
"value-a"
]
}
]
},
"namespaces":[
"sspni-882-frj"
],
"topologyKey":"kubernetes.io/hostname"
}
}
]
},
"podAntiAffinity":{
"requiredDuringSchedulingIgnoredDuringExecution":[
{
"labelSelector":{
"matchExpressions":[
{
"key":"pod_label_xyz",
"operator":"Exists"
},
{
"key":"pod_label_xyz",
"operator":"NotIn",
"values":[
"value-a"
]
}
]
},
"namespaces":[
"sspni-882-frj"
],
"topologyKey":"kubernetes.io/hostname"
}
],
"preferredDuringSchedulingIgnoredDuringExecution":[
{
"weight":100,
"podAffinityTerm":{
"labelSelector":{
"matchExpressions":[
{
"key":"pod_label_xyz",
"operator":"DoesNotExist"
}
]
},
"namespaces":[
"sspni-882-frj"
],
"topologyKey":"kubernetes.io/hostname"
}
}
]
}
}
请注意,我仍然在使用“nodeSelector”,但是我再次测试的所有机器都满足“nodeSelector”,并且所有的服务吊舱都有相同的“nodeSelector”问题,我正在进行跟踪。我做了一些编辑,试图清理问题格式和语法。请注意,我仍然在使用“nodeSelector”但是我再次测试的所有机器都满足“nodeSelector”的要求,并且所有的服务吊舱都有相同的“nodeSelector”问题。我做了一些编辑,试图清理问题的格式和语法。