Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何旋转kubernetes';登录windows节点?_Windows_Kubernetes_Logrotate - Fatal编程技术网

如何旋转kubernetes';登录windows节点?

如何旋转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

根据,我部署了一个WindowsK8S集群(版本1.12.6),它在Linux服务器上有一个主节点,在Windows19服务器上有两个工作节点。但是,由
kubelet
kube proxy
进程生成并锁定的日志文件占用了数GB的磁盘空间。如何旋转日志文件,以便仅在windows Server上保存最近几天的数据

我知道
停止
启动
kubelet、
kube代理
过程会有帮助,但我的老板拒绝了(

我试过一些方法:

  • powershell cmd
  • 都失败了

    错误消息:
    进程无法访问文件“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