我很快就将2000个短期工作发送到了我的kube集群,我发现在创建一个作业和一个待开始工作的pod之间有几分钟的延迟。有没有人知道什么可能是瓶颈?
etcd可能成为瓶颈吗?
从10,000英尺的角度来看,过程是:
鉴于上述情况,延迟可能是:
ETCD瓶颈可能也是一个问题,但不太可能,如果你在创建工作时可能会注意到ETCD。
另外,值得一提的是节点对V1.14 no more than 100 pods per node can run at same time上每个节点可以同时运行的pod数量有限制,无论节点有多大,在这种情况下,你需要至少21个节点才能同时运行时间,20表示请求的pod和1个额外的节点来计算系统pod。如果您在云提供商中运行k8s,则每个提供商的限制可能会有所不同。
没有调查很难说问题出在哪里。
综上所述:
有一个工作队列可以保证集群的可靠性(API / scheduler / ETCD)并防止突发调用影响服务的可用性,在调度pod之后,节点运行时将下载映像并确保它运行PODs按照自己的时间需要。
如果问题是节点中同时运行的pod的限制,则可能会因为调度程序在运行另一个节点之前等待节点完成pod而减慢速度,因此添加更多节点将改善结果
This link详细介绍了k8s调度程序性能问题的一些示例。
This link在一些细节中描述了整个流程。