【问题标题】:Purge unused containers kubernetes清除未使用的容器 Kubernetes
【发布时间】:2016-06-13 16:05:09
【问题描述】:

我正在寻找在所有节点上使用 kubernetes 清除所有未使用容器的标准方法。现在我正在这样做。

purge.sh

#!/usr/bin/env bash
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
#  Author:  Ali Said Omar
#  Created: '01/03/2016'
NODES=


function get_nodes(){
    # --label-columns=NAME does not filter on NAME column
    NODES=`kubectl get nodes --label-columns=NAME --no-headers | awk '{print $1}'`
}

function purge_on_nodes(){
    for NODE in $NODES
    do
        glcoud compute ssh $NODE -A "sudo docker ps -aq | xargs sudo docker rm"
    done
}

get_nodes
purge_on_nodes

【问题讨论】:

    标签: google-cloud-platform kubernetes


    【解决方案1】:

    没有标准的方法可以做到这一点,因为系统旨在为您处理它。您需要这样做有什么特别的原因吗?还是系统出现某种故障?

    【讨论】:

    • 当我的 pod 无法启动时,我需要在重试之前清除所有失败的 pod。
    • 你是如何确定的?尝试创建新错误时是否遇到错误?如果是这样,错误是什么?
    • 我终于找到了根本原因,但是日志 kubectl logs 没有显示任何内容。
    • 根本原因是什么?它是系统中的错误吗?我们可以提供额外的文档或帮助文本吗?您可以提供的任何额外细节都将帮助我们改进:)
    • 我的应用程序是 celery 应用程序,不会以 root 用户启动。我更新了 yaml 以设置这里提到的环境 stackoverflow.com/questions/20346851/running-celery-as-root
    【解决方案2】:

    使用Kubernetes Garbage collector。有一些设置 (minimum-container-ttl-duration),可以帮助您清除旧容器。

    【讨论】:

    • 谢谢,但仍在寻找强制垃圾的方法或使用带有 yaml 文件的选项(文档不是很清楚)
    猜你喜欢
    • 2021-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 2019-11-18
    • 1970-01-01
    相关资源
    最近更新 更多