Google compute engine GCE/防止吊舱被驱逐的Kubernetes;节点的计算资源不足。”;

Google compute engine GCE/防止吊舱被驱逐的Kubernetes;节点的计算资源不足。”;,google-compute-engine,kubernetes,Google Compute Engine,Kubernetes,对迄今为止文档中没有强调的方面进行的痛苦调查(至少从我谷歌搜索的内容来看) 我的集群的Kube代理被驱逐(+经验丰富的用户可能能够考虑面临的问题)。搜索了很多,但没有关于如何让他们重新站起来的线索 在描述相关pod之前,他给出了一个明确的理由:“节点的计算资源不足。” 在POD/部署和“物理”计算之间的资源平衡方面仍然没有经验,如何“确定优先级”(或类似方法)以确保特定POD永远不会处于这种状态 创建集群时使用了相当低的资源,目的是在保持低成本的同时让我们动手,并最终见证此类问题(gcloud容

对迄今为止文档中没有强调的方面进行的痛苦调查(至少从我谷歌搜索的内容来看)

<>我的集群的Kube代理被驱逐(+经验丰富的用户可能能够考虑面临的问题)。搜索了很多,但没有关于如何让他们重新站起来的线索

在描述相关pod之前,他给出了一个明确的理由:“节点的计算资源不足。”

在POD/部署和“物理”计算之间的资源平衡方面仍然没有经验,如何“确定优先级”(或类似方法)以确保特定POD永远不会处于这种状态


创建集群时使用了相当低的资源,目的是在保持低成本的同时让我们动手,并最终见证此类问题(
gcloud容器集群创建deemx——机器类型g1 small——启用自动缩放——最小节点=1——最大节点=5——磁盘大小=30
),使用g1 small是为了禁止吗

如果您使用的是基于iptables的kube代理(当前的最佳实践),那么kube代理被终止不会立即导致您的网络连接失败,但新服务和对端点的更新将停止工作。尽管如此,你的应用程序仍应该继续工作,但会慢慢降级。 如果您使用的是用户空间kube代理,则可能需要升级

错误消息听起来好像是由于机器内存压力造成的

当存在内存压力时,Kubelet尝试按从低到高的顺序终止事情

如果您的kube代理pod没有使用保证的资源,那么您可能需要改变这一点

其他需要注意的事项:

  • 如果kube代理突然使用了更多内存,它可能会被终止。如果您创建了大量的pod、服务或端点,这可能会导致它使用更多内存
  • 如果在不受kubernetes控制的机器上启动进程,则可能会导致kubelet对终止内容做出错误的决定。避免这种情况
  • 有可能在g1 small这样的小型机器上,保留的节点资源量不足,以至于在机器上投入了太多有保证的工作--请参阅。这可能需要调整

如果您使用的是基于iptables的kube代理(当前的最佳实践),那么kube代理被终止不会立即导致您的网络连接失败,但新服务和对端点的更新将停止工作。尽管如此,你的应用程序仍应该继续工作,但会慢慢降级。 如果您使用的是用户空间kube代理,则可能需要升级

错误消息听起来好像是由于机器内存压力造成的

当存在内存压力时,Kubelet尝试按从低到高的顺序终止事情

如果您的kube代理pod没有使用保证的资源,那么您可能需要改变这一点

其他需要注意的事项:

  • 如果kube代理突然使用了更多内存,它可能会被终止。如果您创建了大量的pod、服务或端点,这可能会导致它使用更多内存
  • 如果在不受kubernetes控制的机器上启动进程,则可能会导致kubelet对终止内容做出错误的决定。避免这种情况
  • 有可能在g1 small这样的小型机器上,保留的节点资源量不足,以至于在机器上投入了太多有保证的工作--请参阅。这可能需要调整

非常感谢您的建议,这是非常痛苦的,但我们现在最好是经历了这些问题。我必须说,我们仍在开始这一切;简单地说,您会建议严格调整分配给每个部署的资源(很抱歉,我正在讨论这个示例和下面的一行),还是我们应该更全面地了解它?建议您将内存请求设置得比您认为需要的多得多,并将其限制为2倍。然后对服务应用一些负载。在应用加载时运行。观察应用负载时使用量的增长。浸泡以检查是否有泄漏。根据这些数据,将内存请求更新到比观察到的最大使用量高20%,并限制在50%以上;我们已经启用了自动缩放,这两者之间有什么关系?起初,如果没有扩展的知识,我们可以简单地期望实例的数量会增长。感谢这些指针,这是非常痛苦的,但我们现在最好是经历了这些问题。我必须说,我们仍在开始这一切;简单地说,您会建议严格调整分配给每个部署的资源(很抱歉,我正在讨论这个示例和下面的一行),还是我们应该更全面地了解它?建议您将内存请求设置得比您认为需要的多得多,并将其限制为2倍。然后对服务应用一些负载。在应用加载时运行。观察应用负载时使用量的增长。浸泡以检查是否有泄漏。根据这些数据,将内存请求更新到比观察到的最大使用量高20%,并限制在50%以上;我们已经启用了自动缩放,这两者之间有什么关系?起初,如果没有扩展的知识,人们可以简单地期望实例的数量会增加