如何旋转kubernetes';登录windows节点?
根据,我部署了一个WindowsK8S集群(版本1.12.6),它在Linux服务器上有一个主节点,在Windows19服务器上有两个工作节点。但是,由如何旋转kubernetes';登录windows节点?,windows,kubernetes,logrotate,Windows,Kubernetes,Logrotate,根据,我部署了一个WindowsK8S集群(版本1.12.6),它在Linux服务器上有一个主节点,在Windows19服务器上有两个工作节点。但是,由kubelet、kube proxy进程生成并锁定的日志文件占用了数GB的磁盘空间。如何旋转日志文件,以便仅在windows Server上保存最近几天的数据 我知道停止和启动kubelet、kube代理过程会有帮助,但我的老板拒绝了( 我试过一些方法: powershell cmd 都失败了 错误消息:进程无法访问文件“C:\k\log\xx
kubelet
、kube proxy
进程生成并锁定的日志文件占用了数GB的磁盘空间。如何旋转日志文件,以便仅在windows Server上保存最近几天的数据
我知道停止
和启动
kubelet、kube代理
过程会有帮助,但我的老板拒绝了(
我试过一些方法:
进程无法访问文件“C:\k\log\xxx.log”,因为另一个进程正在使用该文件。
我有一些问题:
- 1:k8s的日志系统是否支持Windows上的logrotate
- 2:Windows Server是否提供了旋转日志的机制
感谢您的回复!kubelet/kube代理使用klog,当文件大小>1.8G时,klog旋转
func(sb*syncBuffer)写入(p[]字节)(n int,err error){
如果sb.n字节+uint64(len(p))>=MaxSize{
如果错误:=sb.rotateFile(time.Now(),false);错误!=nil{
某人退出(错误)
}
}
n、 err=sb.Writer.Write(p)
sb.nbytes+=uint64(n)
如果错误!=零{
某人退出(错误)
}
返回
}
您可以只删除旧文件
# 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
}
rm xxx.log
mv xxx.log
Clear-Content -Path $logFile -Force