V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
whileFalse

请问如何降低 K8s 调度 Pod 的速度

  •  
  •   whileFalse · Feb 2, 2021 · 2590 views
    This topic created in 1921 days ago, the information mentioned may be changed or developed.
    我司有七八十个微服务,大部分是 Java 。我们的测试环境运行在单个虚拟机上,128G 内存,4 核,MicroK8s 环境。

    现在的问题是在测试环境全新启动过程中会突发所有 Pod 同时被删除重启的问题,原因是 SandboxChanged 。
    > Warning FailedCreatePodSandBox 14m kubelet Failed to create pod sandbox: rpc error: code = Unknown desc = failed to setup network for sandbox "9070dfeabddbd48c08e36377868ed671240653ff4a9fd4fdf03b4af9c9b72dfe": context deadline exceeded
    > Normal SandboxChanged 14m (x2 over 16m) kubelet Pod sandbox changed, it will be killed and re-created.

    原因是 Node 短暂失联后恢复,导致所有 Pod 重新部署。

    > Warning ContainerGCFailed 31m kubelet rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial unix /var/snap/microk8s/common/run/containerd.sock: connect: no such file or directory"
    > Normal NodeNotReady 31m kubelet Node c7-test-env-11-206 status is now: NodeNotReady

    估计是太多服务同时启动,CPU 压力过高导致 Node 上的 API 超时,从而 kubelet 认为 Node 断联导致的。
    将 CPU 增加到 8 个后此问题再没有重现。但因为资源不足,某些测试环境暂时无法增加 CPU 。

    因此,有没有什么方法可以在系统负载过大时合理地降低 Pod 调度速度,从而减轻此问题呢?
    3 replies    2021-03-16 20:07:34 +08:00
    hzfyjgw
        1
    hzfyjgw  
       Feb 2, 2021
    测试环境 kubelet 与 api server 之间的心跳检测时间拉长试试
    Devopsre
        2
    Devopsre  
       Feb 24, 2021 via Android
    魔改 scheduler
    FingerLiu
        3
    FingerLiu  
       Mar 16, 2021
    PLEG?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3210 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 14:28 · PVG 22:28 · LAX 07:28 · JFK 10:28
    ♥ Do have faith in what you're doing.