Configurando as tarefas de limpeza tempo e arquivo de contêiner imagem redundante

K8S de cluster em execução por um longo tempo, conduzirá inevitavelmente a um monte de espelho inútil e arquivo de contêiner, o que requer a limpeza freqüente.

Geralmente, o recipiente Docker padrão localizado no armazenamento de dados caminho path / var / lib / janela de encaixe local através df -h / var / lib / janela de encaixe comando para visualizar sua ocupação. Se mais de 80%, isso significa que precisam ser limpos.

Primeiro, limpar o comando

Os dados redundantes associadas com a limpeza do recipiente há dois comandos, a saber:

janela de encaixe de ameixa imagem - de
docker ameixa sistema -f

Em que o primeiro comando não é apenas o arquivo de imagem é usado para limpar um recipiente, remoção do excesso de dados segundo comando, compreendendo parar o recipiente, o espelho extra, o volume não utilizado, etc., que o primeiro comando que compreende Quanto mais conteúdo.

Acima de dois comandos podem ser executados por um clean.sh roteiro unificada:

#! / bin / festa

need_clean () {
    usados = ` df -h / var / lib / janela de encaixe | awk -F " [%] + "  ' / dev / {print $ 5} ' `
     se [[$ usado -ge 80 ]]; em seguida, 
        retornar 0 
    fi
    
    retornar 1

}

se need_clean; então 
    imagem janela de encaixe de ameixa - af
     se need_clean; em seguida, 
        ameixa seca sistema de janela de encaixe - f
     fi 
fi

Aqui para df -h O índice de ocupação na coluna por awk. -F "[%] +" significa que o número específico de espaços ou delimitadores%, pelo que a percentagem% excluídos.

Somente quando a taxa de ocupação superior a 80%, quando a execução do comando clara. Se, após o primeiro comando caiu abaixo de 80%, ele não tem de executar o próximo comando.

Em segundo lugar, criar uma tarefa agendada

Roteiro acabado, mas esperamos que a máquina pode executá-lo automaticamente no momento certo. Isso requer tarefa regular.

Criar uma tarefa agendada no linux é realmente muito simples. Se você executar um programa crond sistema, você só precisa criar um arquivo de usuário com seu nome na var / spool / cron diretório /, crond executá-lo automaticamente no momento certo.

Por exemplo, podemos criar um arquivo de raiz está em / var / spool / cron diretório como a máquina de gerenciamento de usuário root:

@daily festa /usr/local/bin/clean.sh

O script copiados para / usr / diretório / bin local (também, naturalmente, ser outro diretório), então crond irá executar o script todos os dias à meia-noite.

Em terceiro lugar, adicionar os bloqueios de arquivos

Um cenário provável é que, se o tempo é definido para executar a execução do script por minuto, é provável que apareça em um comando não foi executado, o próximo comando veio. Em seguida, ele irá causar confusão. Para lidar com esta situação, precisamos rebanho de comando, adicione um bloqueio para o arquivo. Então acima do arquivo raiz pode ser reescrita como:

@daily rebanho -n /tmp/.cleanlock -c " /usr/local/bin/clean.sh festa "

Que, / tmp / .cleanlock pode ser especificado facilmente. significativo -n se um bloqueio não for obtido, nenhuma acção. Claro que, como o dia de execução e, em seguida, devido a um período mais longo, você não pode adicionar um bloqueio de arquivo.

Através da operação acima, o sistema irá automaticamente de zero à noite todos os dias para verificar se você precisa limpar dados redundantes, garantir recursos suficientes para executar o cluster.

Acho que você gosta

Origin www.cnblogs.com/00986014w/p/12482591.html
Recomendado
Clasificación