Как войти в журнал Kubernetes на узле Windows?

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

Я знаю Stop и Start процесс _5 _ 、 _ 6_ поможет, но мой босс сказал нет! :(

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

  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 механизм ротации журналов?

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


person Jimmy Zhang    schedule 16.04.2019    source источник


Ответы (1)


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


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
}

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

person jxiewei    schedule 17.04.2019