Kubernetes 库伯内特杀蜂吊舱

Kubernetes 库伯内特杀蜂吊舱,kubernetes,cgroups,Kubernetes,Cgroups,我有一个简单的容器,包含安装在Alpine上的OpenLDAP。它被安装为以非root用户的身份运行。我可以使用本地Docker引擎运行容器而不会出现任何问题。然而,当我将它部署到我们的Kubernetes系统时,它几乎立即被杀死。我试着在没有任何改变的情况下增加记忆。我还查看了pod的内存使用情况,没有发现任何异常 服务器以slapd-d debug-h启动ldap://0.0.0.0:1389/ -u 1000-g 1000,其中1000分别是uid和gid 节点跟踪显示此输出: May 1

我有一个简单的容器,包含安装在Alpine上的OpenLDAP。它被安装为以非root用户的身份运行。我可以使用本地Docker引擎运行容器而不会出现任何问题。然而,当我将它部署到我们的Kubernetes系统时,它几乎立即被杀死。我试着在没有任何改变的情况下增加记忆。我还查看了pod的内存使用情况,没有发现任何异常

服务器以slapd-d debug-h启动ldap://0.0.0.0:1389/ -u 1000-g 1000,其中1000分别是uid和gid

节点跟踪显示此输出:

May 13 15:33:44 pu1axb-arcctl00 kernel: Task in /kubepods/burstable/podbac2e0ae-9e9c-420e-be4e-c5941a2d562f/7d71b550e2d37e5d8d78c73ba8c7ab5f7895d9c2473adf4443675b9872fb84a4 killed as a result of limit of /kubepods/burstable/podbac2e0ae-9e9c-420e-be4e-c5941a2d562f
May 13 15:33:44 pu1axb-arcctl00 kernel: memory: usage 512000kB, limit 512000kB, failcnt 71
May 13 15:33:44 pu1axb-arcctl00 kernel: memory+swap: usage 0kB, limit 9007199254740988kB, failcnt 0
May 13 15:33:44 pu1axb-arcctl00 kernel: kmem: usage 7892kB, limit 9007199254740988kB, failcnt 0
May 13 15:33:44 pu1axb-arcctl00 kernel: Memory cgroup stats for /kubepods/burstable/podbac2e0ae-9e9c-420e-be4e-c5941a2d562f: cache:0KB rss:0KB rss_huge:0KB shmem:0KB mapped_file:0KB dirty:0KB writeback:0KB inactive_anon:0KB active_anon:0KB inactive_file:0KB active_file:0KB unevictable:
May 13 15:33:44 pu1axb-arcctl00 kernel: Memory cgroup stats for /kubepods/burstable/podbac2e0ae-9e9c-420e-be4e-c5941a2d562f/db65b4f82efd556a780db6eb2c3ddf4b594774e4e5f523a8ddb178fd3256bdda: cache:0KB rss:44KB rss_huge:0KB shmem:0KB mapped_file:0KB dirty:0KB writeback:0KB inactive_anon:
May 13 15:33:44 pu1axb-arcctl00 kernel: Memory cgroup stats for /kubepods/burstable/podbac2e0ae-9e9c-420e-be4e-c5941a2d562f/59f908d8492f3783da587beda7205c3db5ee78f0744d8cb49b0491bcbb95c4c7: cache:0KB rss:0KB rss_huge:0KB shmem:0KB mapped_file:0KB dirty:0KB writeback:0KB inactive_anon:0
May 13 15:33:44 pu1axb-arcctl00 kernel: Memory cgroup stats for /kubepods/burstable/podbac2e0ae-9e9c-420e-be4e-c5941a2d562f/7d71b550e2d37e5d8d78c73ba8c7ab5f7895d9c2473adf4443675b9872fb84a4: cache:4KB rss:504060KB rss_huge:0KB shmem:0KB mapped_file:0KB dirty:0KB writeback:0KB inactive_a
May 13 15:33:44 pu1axb-arcctl00 kernel: [ pid ]   uid  tgid total_vm      rss pgtables_bytes swapents oom_score_adj name
May 13 15:33:44 pu1axb-arcctl00 kernel: [69022]     0 69022      242        1    28672        0          -998 pause
May 13 15:33:44 pu1axb-arcctl00 kernel: [69436]  1000 69436      591      454    45056        0           969 docker-entrypoi
May 13 15:33:44 pu1axb-arcctl00 kernel: [69970]  1000 69970      401        2    45056        0           969 nc
May 13 15:33:44 pu1axb-arcctl00 kernel: [75537]  1000 75537      399      242    36864        0           969 sh
May 13 15:33:44 pu1axb-arcctl00 kernel: [75544]  1000 75544      648      577    45056        0           969 bash
May 13 15:33:44 pu1axb-arcctl00 kernel: [75966]  1000 75966   196457   126841  1069056        0           969 slapd
May 13 15:33:44 pu1axb-arcctl00 kernel: Memory cgroup out of memory: Kill process 75966 (slapd) score 1961 or sacrifice child
May 13 15:33:44 pu1axb-arcctl00 kernel: Killed process 75966 (slapd) total-vm:785828kB, anon-rss:503016kB, file-rss:4348kB, shmem-rss:0kB
我很难相信它真的没有记忆了。它是一个简单的LDAP容器,目录树中只有8-10个元素,pod在仪表板上没有显示内存问题。我们还有其他阿尔卑斯山的图片,但没有这个问题

我对Kubernetes比较陌生,所以我希望so上的用户能给我一些关于如何调试的指导。我可以提供更多的信息,一旦我知道什么是有用的。正如我提到的,增加内存没有影响。我计划从burstable切换到Guaranted deployment,看看这是否会有所不同

====更新-正在运行=====

我认为我混淆了资源限制和请求的含义。在发表原创文章之前,我一直在尝试这些东西的几种变体。在阅读了所有响应后,我现在已使用以下设置部署pod:

  resources:
    limits:
      cpu: 50m
      memory: 1Gi
    requests:
      cpu: 50m
      memory: 250Mi

从镜头中的内存占用来看,它的使用率稳定在715Mi左右。这比我们的其他豆荚高出至少25%。也许LDAP服务器只需要更多。无论如何,我感谢你们所有人的及时帮助。

检查您的部署或pod规范以了解资源限制

如果您的应用程序需要的内存超过了允许的范围,那么kubernetes将对其进行oomkille

...
resources:
  limits:
    memory: 200Mi
  requests:
    memory: 100Mi
...
等效JAVA JVM标志,以更好地理解此概念

请求=Xms

极限=Xmx

阅读更多:


检查您的部署或吊舱规格以了解资源限制

如果您的应用程序需要的内存超过了允许的范围,那么kubernetes将对其进行oomkille

...
resources:
  limits:
    memory: 200Mi
  requests:
    memory: 100Mi
...
等效JAVA JVM标志,以更好地理解此概念

请求=Xms

极限=Xmx

阅读更多:

我希望SO上的用户能给我一些关于如何调试的指导

在开始调试之前,您可以检查并改进yaml文件。 您可以为容器设置默认内存请求和默认内存限制:

版本:v1 种类:有限范围 元数据: 名称:mem限制范围 规格: 限制: -默认值: 内存:512Mi 默认请求: 内存:256Mi 类型:集装箱 请求是对容器将需要的最小资源量的出价。它并没有说你将使用多少资源,只是说你需要多少资源。您正在告诉调度程序您的容器需要多少资源来完成它的工作。请求由Kubernetes调度器用于调度。对于CPU请求,它们还用于配置Linux内核如何调度容器

限制是容器将使用的最大资源量。限制必须大于或等于请求。如果仅设置限制,则请求将与限制相同

如果您想在pod中放置一个容器,可以设置内存限制:

版本:v1 种类:豆荚 元数据: 名称:default-mem-demo-2 规格: 容器: -名称:default-mem-demo-2-ctr 图片:nginx 资源: 限制: 内存:1Gi 如果指定一个容器的限制,但不指定其请求,则在这种情况下,不会为该容器分配默认内存请求值256Mi

您还可以在pod中放置一个容器并设置内存请求:

版本:v1 种类:豆荚 元数据: 名称:default-mem-demo-3 规格: 容器: -名称:default-mem-demo-3-ctr 图片:nginx 资源: 请求: 内存:128英里 但是在这种情况下,容器的内存限制设置为512Mi,这是名称空间的默认内存限制

如果你想调试一个问题,你应该知道它为什么会发生。通常情况下,可能会出现问题,例如,由于限制过多或达到容器限制,我知道您有1个容器,但您应该知道在其他情况下如何继续。你可以读到关于它的好文章

您可能会发现运行集群监视是一个好主意,例如使用。下面是如何使用普罗米修斯设置库伯内特斯监控。您应该对公制容器\u内存\u失败感兴趣。你可以阅读更多关于它的内容

您还可以阅读有关在Kubernetes集群中设置oomkill警报的内容

我希望SO上的用户能给我一些关于如何调试的指导

在开始调试之前,您可以检查并改进yaml文件。 您可以设置默认值 内存请求和容器的默认内存限制:

版本:v1 种类:有限范围 元数据: 名称:mem限制范围 规格: 限制: -默认值: 内存:512Mi 默认请求: 内存:256Mi 类型:集装箱 请求是对容器将需要的最小资源量的出价。它并没有说你将使用多少资源,只是说你需要多少资源。您正在告诉调度程序您的容器需要多少资源来完成它的工作。请求由Kubernetes调度器用于调度。对于CPU请求,它们还用于配置Linux内核如何调度容器

限制是容器将使用的最大资源量。限制必须大于或等于请求。如果仅设置限制,则请求将与限制相同

如果您想在pod中放置一个容器,可以设置内存限制:

版本:v1 种类:豆荚 元数据: 名称:default-mem-demo-2 规格: 容器: -名称:default-mem-demo-2-ctr 图片:nginx 资源: 限制: 内存:1Gi 如果指定一个容器的限制,但不指定其请求,则在这种情况下,不会为该容器分配默认内存请求值256Mi

您还可以在pod中放置一个容器并设置内存请求:

版本:v1 种类:豆荚 元数据: 名称:default-mem-demo-3 规格: 容器: -名称:default-mem-demo-3-ctr 图片:nginx 资源: 请求: 内存:128英里 但是在这种情况下,容器的内存限制设置为512Mi,这是名称空间的默认内存限制

如果你想调试一个问题,你应该知道它为什么会发生。通常情况下,可能会出现问题,例如,由于限制过多或达到容器限制,我知道您有1个容器,但您应该知道在其他情况下如何继续。你可以读到关于它的好文章

您可能会发现运行集群监视是一个好主意,例如使用。下面是如何使用普罗米修斯设置库伯内特斯监控。您应该对公制容器\u内存\u失败感兴趣。你可以阅读更多关于它的内容


您还可以阅读有关在Kubernetes集群中设置oomkill警报的信息。

Hello@Jim。这方面有什么进展吗?谢谢你在这个主题上提供了非常好的参考资料。我现在正在工作,他似乎不好意思地说,这只不过是一个需要更大内存的吊舱。我将用当前设置更新原始帖子。你好@Jim。这方面有什么进展吗?谢谢你在这个主题上提供了非常好的参考资料。我现在正在工作,他似乎不好意思地说,这只不过是一个需要更大内存的吊舱。我将用当前设置更新原始帖子。