当前位置: 首页 > 知识库问答 >
问题:

由于“没有匹配所有谓词的可用节点:MatchInterPodAffinity(1)”,Kubernetes-Pod调度失败。

咸高谊
2023-03-14
affinity:
    podAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
      - labelSelector:
          matchExpressions:
          - key: app
            operator: In
            values:
            - {{ .Values.albId }}
        topologyKey: "{{ .Values.topologyKey }}"
    podAntiAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
      - labelSelector:
          matchExpressions:
          - key: app
            operator: In
            values:
            - {{ .Values.name }}
        topologyKey: "{{ .Values.topologyKey }}"
Events:
  FirstSeen LastSeen    Count   From            SubObjectPath   Type        Reason          Message
  --------- --------    -----   ----            -------------   --------    ------          -------
  28s       13s     6   default-scheduler           Warning           FailedScheduling  No nodes are available that match all of the predicates: MatchInterPodAffinity (1).

请你帮忙。

共有1个答案

扈高逸
2023-03-14

从链接的文档中:

除了labelSelector和topologyKey,您还可以选择指定labelSelector应该匹配的名称空间的列表名称空间(这与labelSelector和topologyKey在定义的同一级别)。如果省略,则默认为出现关联/反关联定义的pod的命名空间。如果已定义但为空,则表示“所有命名空间”

以下是基于YAML的示例:

affinity:
podAffinity:
  requiredDuringSchedulingIgnoredDuringExecution:
  - labelSelector:
      matchExpressions:
      - key: app
        operator: In
        values:
        - {{ .Values.albId }}
    topologyKey: "{{ .Values.topologyKey }}"
    namespaces: [] # empty array
podAntiAffinity:
  requiredDuringSchedulingIgnoredDuringExecution:
  - labelSelector:
      matchExpressions:
      - key: app
        operator: In
        values:
        - {{ .Values.name }}
    topologyKey: "{{ .Values.topologyKey }}"
    namespaces: []
 类似资料:
  • 我创建了一个kubernetes集群进行测试。但不能创建RC。我得到错误:

  • 我们在一个3节点kubernetes集群上用3个pods运行我们的应用程序。当我们部署应用程序时,有时,pods被调度到同一个kubernetes节点。 我们希望我们的 Pod 以这样一种方式调度,即它将我们的 Pod 分布在节点上(同一应用程序的 2 个 Pod 不应该是同一个节点)。事实上,根据文档(https://kubernetes.io/docs/concepts/configurati

  • 在下面的spring cloud gateway配置中,我试图用匹配路径结束,但它不能匹配路径: spring cloud gateway打印以下日志:

  • 问题内容: 我正在尝试从Java Web Service中的Elastic Search中进行搜索,这是我现在使用的方式: 第一行可以正常工作,但是转到第二行时,将发生以下异常: NoNodeAvailableException [没有已配置的节点可用:[{#transport#-1} {TskPSVeBRR6CvCzP9EVhkQ} {192.168.10.150} {192.168.10.15

  • 问题内容: 我正在上它可为本地 我正在使用Elastic4s进行连接,尝试了以下方法,但是所有这些都给了我错误 和 错误是 我完整的代码是 问题答案: 9200是用于通过HTTP连接的端口,这就是为什么它可以在您的浏览器中工作的原因。如果检查堆栈跟踪的顶部,则可以看到通过传输客户端(即TCP)进行连接,因此需要使用端口9300。试试这个:

  • 我似乎有一项非常简单的任务,Matcher出于某种原因无法完成。 因此,任务听起来是这样的:您需要找到并显示字符串“aaabbb”中的所有子字符串,其中有成对的AA或BB,而它们可以排成一行或替换为“aabbbbaa”。可以单独使用“AAAA”或“BBBB”。 为了解决这个问题,我决定使用Pattern-Matcher,它应该搜索字符串中的所有匹配项。对于这项任务,我使用了模式:“(AA|BB)”