Logo
Section 1 / 6

入门

资源使用管理概览及可分配资源检查方法

导入

入门

资源使用管理概览及可分配资源检查方法

简介

当我们的应用程序在 Kubernetes 工作节点上运行时,通常会竞争资源。我们可用的 CPU、内存和存储资源是有限的。并且在同一节点上运行着多个应用程序,因此某个容器失控并占用全部资源,可能会影响共享同一台机器的其他应用。

Kubernetes 提供了一些机制来防止这种情况发生。

检查可分配的资源

在开始之前,我们先检查一下本地集群中可用的资源。

Terminal

运行上述终端命令后,输入以下命令:

1kubectl describe nodes 2# ... 3# Allocatable: 4# cpu: 2 5# ephemeral-storage: 56453061334 6# hugepages-1Gi: 0 7# hugepages-2Mi: 0 8# memory: 1944636Ki 9# pods: 110 10# ... 11# ... 12# non-terminated pods: 13# namespace name cpu requests 14# --------- ---- ------------ 15# kube-system kube-apiserver... 250m (12%) 16# kube-system kube-controlle... 200m (10%) 17# kube-system kube-dns-86f4d... 260m (13%) 18# kube-system kube-scheduler... 100m (5%)

可以看到,我有两颗 CPU 和大约 2GB 的内存可用。这正是我在设置中定义的数值,但你的环境可能有所不同。

同时请注意,Kubernetes 自身也需要一些资源来运行,因此当前这个节点上,可供我们的 Pod 使用的资源大约只有 1.19 核 CPU(即 1190m)。

在接下来的示例中,我将始终以这些数值作为约束条件进行说明。当然,你也可以根据自己的机器实际情况进行调整。

使用命名空间组织资源

定义资源请求