我正在尝试理解k8s中的内存请求。我观察到,当我为pod设置内存请求(例如,nginx,等于1Gi )时,它实际上只消耗了1Mi (我用kubectl top pods检查了它)。我的问题。我在节点上有2GiRAM,并将pod1和pod2的内存请求设置为1.5Gi,但它们实际上只消耗了1Mi内存。我启动了pod1,应该启动它,因为节点有2Gi内存,pod1请求只有1.5Gi。但是,如果我尝试在那之后启动pod2,会发生什么呢?会开始吗?我不确定,因为pod1只消耗了1Mi内存,但是有1.5Gi的请求。pod1的内存请求对pod2的执行有影响吗?k8s将如何控制这种情况?
我希望在不过度或不足分配的情况下对CPU核心进行优化配置。如何测量给定容器所需的CPU毫微核?它还带来了一个问题,即代理将根据CPU消耗将其发送到任何给定pod的流量,以便我们可以优化使用计算。 目前我用发送请求和监控, kubectl top pod 有没有什么工具可以测量一段时间内的请求、CPU和内存,并为pods提供最佳的CPU建议。
首先,正如这里所描述的,Kubernetes: Pods and cpu limits当我们没有指定CPU的限制时,一个pod可以使用节点的所有CPU。这也适用于内存吗?意味着当我们不指定限制时,pod是否会在需要时开始使用所有内存? 其次,假设我们有一个2 2GB内存的工作节点,我们在上面部署了8个pod,将256Mi的请求和限制分配给这8个pod中的每一个是正确的吗?是否建议对所有pod应用相同的限制? 第三,如果我想创建一个具有相同请求和限制256Mi的新pod,会发生什么情况?它会一直处于挂起状态吗?
我正在尝试使用API获取分配给pod的实际内存和内存总量。虽然我可以使用metrics服务器api获取实际的内存消耗。如何使用指标服务器API获取分配给pod的总内存?
我正在开发一个仪表板,其中我需要展示豆荚内存和cpu.The用户界面图形有输入,实际和总金额。我可以获取kubectl get --raw /apis/metrics.k8s.io/v1beta1/namespaces/default/pods/命令使用的实际内存,但是如何获取pod的总内存?