Как войти в журнал kubernetes на узле Windows? - PullRequest
0 голосов
/ 16 апреля 2019

Согласно k8s в Microsoft , я развернул кластер windows k8s (версия 1.12.6), который имеет один главный узел на Linux Server и два рабочих узла на Windows19 Server. Однако файл журнала, созданный и заблокированный процессом kubeletkube-proxy, занял несколько ГБ дискового пространства. Что можно сделать, чтобы повернуть файл журнала, чтобы просто сохранить данные последних дней на Windows Server?

Я знаю, Stop и Start процесс kubeletkube-proxy поможет, но мой босс сказал нет! (

Я пробовал несколько способов:

  1. инструмент управления окнами
# logrotate config
"c:\k\log\kube-proxy.exe.iZcrhcz0q5s4ykZ.NT AUTHORITY_SYSTEM.log.INFO.20190416-162533.2272" {
    daily
    rotate 5
    size 100M
    copytruncate
    missingok
    ifempty
}
  1. powershell cmd
rm xxx.log
mv xxx.log
Clear-Content -Path $logFile -Force

Все не удалось!

Сообщение об ошибке: The process cannot access the file 'C:\k\log\xxx.log' because it is being used by another process.

У меня есть несколько вопросов:

  • 1: поддерживает ли система регистрации k8s logrotate в Windows?
  • 2: Предоставляет ли Windows Server механизм ротации журналов?

Спасибо за любой ответ!

1 Ответ

1 голос
/ 17 апреля 2019

kubelet / kube-proxy использует klog, klog вращается, когда размер файла> 1.8G


func (sb *syncBuffer) Write(p []byte) (n int, err error) {
    if sb.nbytes+uint64(len(p)) >= MaxSize {
        if err := sb.rotateFile(time.Now(), false); err != nil {
            sb.logger.exit(err)
        }
    }
    n, err = sb.Writer.Write(p)
    sb.nbytes += uint64(n)
    if err != nil {
        sb.logger.exit(err)
    }
    return
}

Вы можете просто удалить старые файлы.

...