我怎么知道我的Kubernetes Pod有多少RAM?

时间:2018-12-17 09:23:22

标签: kubernetes kubectl google-kubernetes-engine

我想知道RAM的当前限制。 (未明确配置限制/请求。)

如何查看现有吊舱的当前配置?

[编辑]该配置不仅包括现在正在使用多少内存,还包括最大限制(关闭该点的时间)。

(实际上用巨大的字符串炸毁堆显示了大约4 GB的限制,而Cloud Console显示了5.4 GB的崩溃(当然包括比Python解释器更多的崩溃),但是我不知道这在哪里来自节点。最大为10 GB。)

我尝试过kubectl get pod id-for-the-pod -o yaml,但它没有显示任何有关内存的信息。

我正在使用Google Container Engine。

6 个答案:

答案 0 :(得分:4)

使用kubectl top命令

router.post('/', ensureAuthenticated, function(req,res,next) { var query = {course: req.body.coursename}; db.collection('courses').find(query).toArray((err, results) => { if (err) { throw err; } else { db.collection('DefaultUser').updateOne({_id: '5c17161d3347e79410ff29ba'}, { $push: { classes: req.body.coursename } }) console.log(results) res.render('search', {courses: results, title: 'search'}) } }) });

  

kubectl top -帮助

     

显示资源(CPU /内存/存储)的使用情况。

     

top命令使您可以查看节点的资源消耗   或豆荚。

     

此命令要求正确配置Heapster并使其正常工作   在服务器上。

     

可用命令:节点显示资源   节点pod的(CPU /内存/存储)使用情况显示资源   (CPU /内存/存储)容器的使用情况

     

用法:kubectl top [标志] [选项]

答案 1 :(得分:1)

您可以使用

  

kubectl顶部吊舱POD_NAME

它将显示内存和CPU使用情况。

答案 2 :(得分:1)

正如社区已经回答的那样,您可以运行“ kubectl top pod POD_NAME”来获取您的pod正在使用的内存量。最大限制实际上取决于节点的可用内存(通过运行“ kubectl描述节点”,可以了解节点的CPU请求和CPU限制)。此外,窗格的最大限制还取决于其配置中定义的memory requests and limits(“资源”下的“请求”和“限制”规范)。您还可以阅读与此相关的link

答案 3 :(得分:1)

问题中的编辑询问如何查看现有Pod的最大内存限制。这个架子做:

async function executeTask (driver, url) {
    try{
        await driver.get(url);
        let result = await AxeBuilder(driver).analyze();
        return Promise.resolve(result);
    } 
    catch(err) {
        return Promise.reject(err);
    }
}

function iterateThroughUrls(urls) {
    urls.forEach(url => {
        var driver = new WebDriver.Builder().forBrowser('firefox').build();
        executeTask(driver, url).then(result => {
            console.log(result);
        }).catch(err => {
            //handle errors
        });
    });
}

参考:https://www.kernel.org/doc/Documentation/cgroup-v1/memory.txt

在QoS类为BestEffort的情况下(在kubectl -n <namespace> exec <pod-name> cat /sys/fs/cgroup/memory/memory.limit_in_bytes kubectl -n <namespace> get pod <pod-name> -o yaml的输出中看到),可能没有限制(运行Pod的节点上的可用内存除外) ),因此返回的值可以是一个较大的数字(例如9223372036854754771712-有关说明,请参见here)。

答案 4 :(得分:0)

在Kubernetes集群中部署Metrics Server(已弃用堆),然后使用

  

kubectl前POD_NAME

获取pod CPU和内存使用情况。

答案 5 :(得分:0)

@Artem Timchenko的评论答复:kubectl -n NAMESPACE describe pod POD_NAME | grep -A 2 "Limits"