我有一个 GKE 集群,当特定部署需要更多资源时,该集群无法扩展。我检查了集群自动缩放程序日志,其中包含包含以下错误的条目:
no.scale.up.nap.pod.zonal.resources.exceeded
。该错误的文档说:
节点自动配置不会为此区域中的 Pod 配置任何节点组,因为这样做会违反资源限制。
我不太明白文档中提到了哪些资源限制以及为什么它会阻止节点池扩展?
如果我手动扩展集群 - 部署 Pod 会扩展并且一切都按预期工作,因此,似乎这不是项目配额的问题。
我已经按照本答案中的描述实现了N个元素的批处理: google dataflow管道中的数据存储输入是否可以一次处理一批N个条目?
package com.example.dataflow.transform;
import com.example.dataflow.event.ClickEvent;
import org.apache.beam.sdk.transforms.DoFn;
import org.apache.beam.sdk.transforms.windowing.GlobalWindow;
import org.joda.time.Instant;
import java.util.ArrayList;
import java.util.List;
public class ClickToClicksPack extends DoFn> {
public static final int BATCH_SIZE = 10;
private List accumulator;
@StartBundle
public void startBundle() {
accumulator = new ArrayList(BATCH_SIZE);
}
@ProcessElement
public void processElement(ProcessContext c) {
ClickEvent clickEvent = c.element();
accumulator.add(clickEvent);
if (accumulator.size() >= BATCH_SIZE) {
c.output(accumulator);
accumulator = new ArrayList(BATCH_SIZE);
}
}
@FinishBundle
public void finishBundle(FinishBundleContext c) {
if (accumulator.size() > 0) {
ClickEvent clickEvent = accumulator.get(0); …
Run Code Online (Sandbox Code Playgroud)