Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services K8S吊舱在不同节点上具有两个副本_Amazon Web Services_Azure_Kubernetes - Fatal编程技术网

Amazon web services K8S吊舱在不同节点上具有两个副本

Amazon web services K8S吊舱在不同节点上具有两个副本,amazon-web-services,azure,kubernetes,Amazon Web Services,Azure,Kubernetes,我有两个副本的POD,k8s会同时重新安排两个副本的时间吗? 如果是,有没有办法避免 我猜(根据@Henry的回复)我需要使用或 拓扑学 但不确定如何配置以下内容: 1应用程序,其中包含2副本,例如 副本A在nodefo上运行 Replica B在NodeBar中运行假设您指的是部署,是的,Pod对象几乎同时创建和调度。如果希望按顺序创建内容,请使用StatefulSet。将副本配置为在不同节点上运行,可以使用。例如,在部署规范中: spec: template: meta

我有两个副本的POD,k8s会同时重新安排两个副本的时间吗? 如果是,有没有办法避免

我猜(根据@Henry的回复)我需要使用或

拓扑学

但不确定如何配置以下内容:

1
应用程序,其中包含
2
副本,例如

副本A
nodefo
上运行


Replica B
NodeBar

中运行假设您指的是部署,是的,Pod对象几乎同时创建和调度。如果希望按顺序创建内容,请使用StatefulSet。

将副本配置为在不同节点上运行,可以使用。例如,在部署规范中:

spec:    
  template:
    metadata:
      labels:
        name: my-app-label
    spec:
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchLabels:
                  name: my-app-label
              topologyKey: kubernetes.io/hostname

这基本上意味着,所有与标签
name=my app label
匹配的pod都应该在节点标签
kubernetes.io/hostname
不同的主机上运行。

通常,除非发生了不好的情况(OOM,节点死亡,…),否则不会重新调度它们。找出他们被重新安排的原因。@Henry-谢谢,我们正在检查。是否有方法告诉应用程序在两个不同节点上使用两个副本运行?为了最大限度地降低同时重新调度的风险,“在两个不同的节点上运行两个副本”:查看POD模板规范中的affinity:podAntiAffinity:。@Henry-谢谢我读了它,但是我在这里遗漏了什么,对于
特定的应用程序
如何告诉它两个不同的节点,您能提供一个例子作为答案吗?我相信在这种情况下,如果您希望在每个节点上运行一个副本,这可能是一个更好的选择。你怎么看?谢谢你的回答,我想我需要使用“affinity:podAntiAffinity”,但不确定一个应用程序如何指定两个不同的节点,每个应用程序副本都将转到不同的节点…有很多方法可以控制pod的分布方式。反亲和力是其中之一,pod拓扑扩展是另一个。这取决于您的需要和Kubernetes版本。如果您能提供一个pod拓扑/关联示例,即在两个不同节点中有两个副本的1个pod,那就太好了…谢谢,我不确定我是否理解它,您是如何告诉我在两个不同节点上运行的,你只放了“podAntiAffinity:”,但你没有告诉它在
节点X
节点Y
上运行,你能解释一下吗?你不需要定义
拓扑预设约束
?谢谢,只是为了验证我完全理解它。如果有
10个节点
,我使用
podAntiAffinity:
topologyKey
以及一个带有5个副本的应用程序,那么
5个pod的每个
实例将被安排在
不同的
节点中,因为每个节点都有不同的
kubernetes.io/hostname
,对吗?@JennyM是的,没错。没有两个吊舱将在同一个节点上运行。