如何解决OOMKilled 德鲁伊干员如何在 examples/tiny-cluster.yaml 中添加资源
我正在我的企业 Kube 上部署 Druid-operator。我收到 OOM Killed 错误:
NAME READY STATUS RESTARTS AGE
druid-operator-c68cf5bc8-n6pzt 1/1 Running 0 107m
druid-tiny-cluster-brokers-0 0/1 OOMKilled 1 62s
druid-tiny-cluster-coordinators-0 0/1 OOMKilled 2 62s
druid-tiny-cluster-historicals-0 0/1 OOMKilled 1 62s
druid-tiny-cluster-routers-0 0/1 OOMKilled 1 62s
tiny-cluster-zk-0 1/1 Running 0 16h
error: error validating "examples/tiny-cluster.yaml": error validating data: ValidationError(Druid.spec): unkNown field "resources" in org.apache.druid.v1alpha1.Druid.spec; if you choose to ignore these errors,turn validation off with --validate=false
请建议如何在 tiny-cluster.yaml 中添加“资源”。
谢谢。
解决方法
您可以添加 resource requests 和 resource limits,如示例中所示:tiny-cluster-hpa.yaml。
我将为 requests
添加资源 limits
和 druid-tiny-cluster-brokers-0
以说明其工作原理。
正如您在开头所看到的,我没有配置任何资源 requests
和 limits
:
$ kubectl get pod druid-tiny-cluster-brokers-0 -n druid-operator
NAME READY STATUS RESTARTS AGE
druid-tiny-cluster-brokers-0 1/1 Running 0 66s
$ kubectl describe pod druid-tiny-cluster-brokers-0 -n druid-operator | grep -i "requests\|limits"
$
让我们为 requests
添加示例 limits
和 druid-tiny-cluster-brokers-0
:
注意:我只在 resources
部分中添加了 brokers
。
$ cat examples/tiny-cluster.yaml
...
nodes:
brokers:
# Optionally specify for running broker as Deployment
# kind: Deployment
nodeType: "broker"
# Optionally specify for broker nodes
# imagePullSecrets:
# - name: tutu
druid.port: 8088
nodeConfigMountPath: "/opt/druid/conf/druid/cluster/query/broker"
replicas: 1
runtime.properties: |
druid.service=druid/broker
# HTTP server threads
druid.broker.http.numConnections=5
druid.server.http.numThreads=10
# Processing threads and buffers
druid.processing.buffer.sizeBytes=1
druid.processing.numMergeBuffers=1
druid.processing.numThreads=1
druid.sql.enable=true
extra.jvm.options: |-
-Xmx512M
-Xms512M
resources:
requests:
memory: "2G"
cpu: "0.5"
limits:
memory: "2G"
cpu: "2"
...
然后应用更改:
$ kubectl apply -f examples/tiny-cluster.yaml -n druid-operator
druid.druid.apache.org/tiny-cluster configured
最后,我们可以检查一下 limits
和 requests
是否设置正确:
$ kubectl describe pod druid-tiny-cluster-brokers-0 -n druid-operator | grep -i -A 2 "requests\|limits"
Limits:
cpu: 2
memory: 2G
Requests:
cpu: 500m
memory: 2G
此外,请确保您的 Kubernetes 节点有足够的资源来运行您的应用程序,因为这也会导致问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。