【发布时间】:2019-06-15 06:16:59
【问题描述】:
我有一个在 pod 中运行的 docker 容器,当它超过内存使用量或 CPU 限制时,我需要重新启动 pod/容器。如何在docker文件中配置
【问题讨论】:
标签: docker kubernetes
我有一个在 pod 中运行的 docker 容器,当它超过内存使用量或 CPU 限制时,我需要重新启动 pod/容器。如何在docker文件中配置
【问题讨论】:
标签: docker kubernetes
在构建 docker 时无法给出 CPU 和内存限制,并且无法在 Docker File 中进行配置。这是一个调度问题。您可以使用带有不同标志的 docker run 命令运行 docker 来控制资源。有关docker run 的控制标志,请参阅Docker Official Document。
由于您的问题被标记为kubernetes,因此有kubernetes 方式来限制您的资源。您可能想在那些deployment 或pod yaml 的规范中添加resources。例如:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: your_deployment
labels:
app: your_app
spec:
replicas: 1
template:
metadata:
labels:
app: your_app
spec:
containers:
- name: your_container
image: your_image
resources:
limits:
cpu: "500m"
memory: "128Mi"
requests:
cpu: "250m"
memory: "64Mi"
...
requests 影响 docker pod 在节点上的调度方式。 Memory limit 确定 docker 何时会因 OOM 而被杀死,cpu limit 确定如何限制容器 cpu 的使用(不会杀死 pod)。
cpu 的含义因云服务提供商而异。更多信息请参考manage compute resources for Kubernetes
【讨论】: