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

为pod分配的默认内存是多少

翟俊名
2023-03-14

我正在我的google kubernetes引擎上设置一个pod say test-pod。当我部署pod并使用google控制台查看工作负载时,我能够看到100mCPU默认分配给我的pod,但我无法看到我的pod消耗了多少内存。内存请求部分总是显示0在那里。我知道我们可以在部署YAML中限制内存限制和初始分配。但是我想知道当没有通过YAML指定值时,pod会分配多少默认内存,它可以使用的最大限制是多少?

共有3个答案

黎震博
2023-03-14

可以使用metrics-server服务和kubectl top pod命令查看库伯内特斯pods的CPU和内存使用情况:

$ kubectl top --help
...
Available Commands:
...
  pod         Display Resource (CPU/Memory/Storage) usage of pods
...

Minikube中的示例如下:

minikube addons enable metrics-server

# wait 5 minutes for metrics-server to be up and running

$ kubectl top pod -n=kube-system
NAME                               CPU(cores)   MEMORY(bytes)   
coredns-fb8b8dccf-6t5k8            6m           10Mi            
coredns-fb8b8dccf-sjkvc            5m           10Mi            
etcd-minikube                      37m          60Mi            
kube-addon-manager-minikube        17m          20Mi            
kube-apiserver-minikube            55m          201Mi           
kube-controller-manager-minikube   30m          46Mi            
kube-proxy-bsddk                   1m           11Mi            
kube-scheduler-minikube            2m           12Mi            
metrics-server-77fddcc57b-x2jx6    1m           12Mi            
storage-provisioner                0m           15Mi            
tiller-deploy-66b7dd976-d8hbk      0m           13Mi            

此链接包含更多信息。

华星文
2023-03-14

>

如果不是,则可以对整个命名空间设置限制

默认,没有限制

但也有一些滴答声:

这是一个非常好的视图:

https://blog.balthazar-rouberol.com/allocating-unbounded-resources-to-a-kubernetes-pod

在Kubernetes集群中部署pod时,在资源分配方面通常有两种选择:

在pod级别定义CPU/内存资源请求和限制

使用LimitRange在命名空间级别定义默认CPU/内存请求和限制

从Docker文档(假设您使用Docker runtime):

默认情况下,容器没有资源约束,可以使用主机的内核调度器所允许的任意多的给定资源

https://docs.docker.com/v17.09/engine/admin/resource_constraints/

阳建弼
2023-03-14

如果pod上没有资源请求,则可以在任何地方进行调度,即使是集群中最繁忙的节点,就好像您请求了0内存和0 CPU一样。如果您没有资源限制,并且可以使用其节点上的所有可用内存和CPU。

(如果不明显,现实的资源请求和限制是最佳实践!)

 类似资料:
  • 我定义了一个StatefulSet,里面有一个容器,它会启动。列出了CPU限制和请求,但我从未为内存指定相同的限制。我现在正在运行pod,但我不知道它们占用了多少内存。不管是什么,它都太多了,所以我想降低它。我如何知道它是什么?

  • 我正在我的程序中编写一个自定义内存分配器,并试图更好地理解什么是被分配的内存与未分配的内存。我被告知,对于一个基本的、“朴素的”内存分配器,对的调用必须提供与16字节对齐的大小(倍数)。这意味着,如果我需要分配5字节的内存,则应用操作(5+(16-1))&~(16-1)),在本例中,该操作最多舍入为16。如果请求的大小是17而不是5,那么它将舍入为32。 这意味着为了对齐,我们从操作系统返回的字节

  • 问题内容: 如果我点击了呼叫的页面。我需要等待多长时间,以便刷新页面时获得新的会话ID? 问题答案: 检出php.ini,为session.gc_maxlifetime设置的值是ID生存时间(以秒为单位)。 我相信默认值为1440秒(24分钟) http://www.php.net/manual/zh/session.configuration.php 编辑: 正如一些评论所指出的,上述内容并不完

  • 问题内容: 当未设置相同名称的环境变量时,是否可以确保将GOMAXPROCS设置为1? 此代码显示值: 并像这样运行它: 显示在这种情况下为1,但我在这里寻找一些确认。 问题答案: UPDATE 2018: 默认情况下,Go程序在将GOMAXPROCS设置为可用内核数的情况下运行;在以前的版本中,它默认为1。 从Go 1.5开始,默认值为核心数。如果您在较新的Go版本中对此不满意,则只需要显式设置

  • 问题内容: 使用以下Java选项启动Apache Tomcat(Atlassian Confluence)实例: 但是,我看到启动后,它很快就耗尽了虚拟服务器上可用的1GB内存中的大部分。 总消耗的内存(堆+ PermGen)是否不应该保持在使用- Xmx指定的值以下?这引起的问题之一是我无法使用关闭脚本关闭服务器,因为它试图生成具有256MB内存的JVM,该JVM因不可用而失败。 问题答案: T

  • 问题内容: http://selenium.googlecode.com/svn/trunk/docs/api/dotnet/html/M_OpenQA_Selenium_Chrome_ChromeDriver__ctor_4.htm 有人知道chromedriver commandtimeout的默认值是什么吗?做了谷歌搜索,但找不到任何东西。 问题答案: 记住Selenium是开源的。 您可以