- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个内存限制的部署
resources:
limits:
memory: 128Mi
但是我的应用程序在接近内存限制时开始失败,那么,有什么方法可以在它达到内存限制的百分比之前重新启动 pod?
例如,如果限制是 128Mi,当它达到它的 85% 时重新启动 pod。
最佳答案
我将从 Kuberentes 方面来解决这个问题。
正如 arjain13 已经提到的,您想到的解决方案是行不通的,因为它违背了 Requests and limits 的想法。 :
If you set a memory limit of 4GiB for that Container, the kubelet (andcontainer runtime) enforce the limit. The runtime prevents thecontainer from using more than the configured resource limit. Forexample: when a process in the container tries to consume more thanthe allowed amount of memory, the system kernel terminates the processthat attempted the allocation, with an out of memory (OOM) error.
您还可以找到 Exceeding a Container's memory limit 的示例:
A Container can exceed its memory request if the Node has memoryavailable. But a Container is not allowed to use more than its memorylimit. If a Container allocates more memory than its limit, theContainer becomes a candidate for termination. If the Containercontinues to consume memory beyond its limit, the Container isterminated. If a terminated Container can be restarted, the kubeletrestarts it, as with any other type of runtime failure.
在您当前的用例中,我建议您尝试两件事:
调试您的应用程序以消除可能是此问题根源的内存泄漏。
使用 livenessProbe :
Indicates whether the container is running. If the liveness probefails, the kubelet kills the container, and the container is subjectedto its restart policy.
可以使用以下字段进行配置:
initialDelaySeconds
:容器启动后到启动事件或就绪探测之前的秒数。默认为 0 秒。最小值为 0。
periodSeconds
:执行探测的频率(以秒为单位)。默认为 10 秒。最小值为 1。
timeoutSeconds
:探测超时后的秒数。默认为 1 秒。最小值为 1。
successThreshold
:探测失败后被视为成功的最小连续成功数。默认为 1。必须为 1 才能活跃。最小值为 1。
failureThreshold
:当探测失败时,Kubernetes 会在放弃前尝试failureThreshold
次。在 liveness probe 的情况下放弃意味着重新启动容器。在就绪探测的情况下,Pod 将被标记为未就绪。默认为 3。最小值为 1。
如果您为 periodSeconds
、timeoutSeconds
、successThreshold
和 failureThreshold
设置最小值,您可以期望更频繁检查和更快的重启。
您将在下面找到一些有用的资源和指南:
关于kubernetes:如何在内存限制阈值上重启 pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66996065/
kubernetes的新手,希望了解使用不同kubernetes对象的最佳实践,并且很难理解“Pods”和“Static Pods”在功能上的主要区别(如果有)吗? 主要问题如下: 问题1:如果有功能
以下是 pods 文件的截图,其中不包含 AFNetworking 库。当我在终端中运行命令 pod install 时,它安装了 AFNetworking 库版本 3.0.1。我无法理解为什么会这样
在通过 pod lib create projectName 创建的目录中执行 pod init 是否受支持?它似乎对我不起作用,但否则如何指定他们正在创建的 pod 的上游依赖项? pod inst
我正在尝试制作一个 Pod::Simple::HTML 的简单子(monad)类用于 Pod::Simple::HTMLBatch .我希望使用 POD::Weaver 对所有 POD 进行预处理.但
根据定义here , POD 是一个简单的类,没有用户定义的构造函数、非静态成员,并且只包含简单的数据类型。 问题是,下面这两个类是否等同于 POD 类型(就内存占用而言): class pod {
使用 Airflow 在 AWS EKS 上运行 KubernetesPodOperator 获取 kubernetes.client.rest.ApiException: (400),指出版本\"v
据我了解,当 POD 与服务对话时,IP 表已由 CNI 提供商更新(这可能特定于某些但不是所有 CNI 提供商)。 iptables 基本上提供了一个虚拟 IP,然后循环或分发(以某种方式)到后端临
我有一个 pod 需要将数据持久保存到 pod 外部的位置。我认为persistentVolume 是一个好主意。名为 writerPod 的 pod 需要对该卷进行读写访问。 多个其他 Pod(我称
我想知道,如果 HPA 考虑一个 pod 中多个容器的 CPU 利用率的平均值,以便向上/向下扩展数量。 pod 。例如,如果我为具有 2 个容器的部署(pod)指定如下所示的 HPA。为了让 HPA
我有以下情况: 我有几个微服务,现在只有两个是相关的。 - Web 套接字服务 API - 调度服务 我们有 3 个用户,我们将分别称为 1、2 和 3。这些用户将自己连接到我们后端的 Web 套接字
我已经注意到,当使用kubectl时,您几乎可以互换使用 pod 和 pods 。是否有任何实例可以使用一个实例而不是另一个实例来获得不同的结果,或者您可以只使用其中一个而不用担心呢? 例如: kub
我尝试使用命令 pod update 更新我的 podfile但它需要永远。 我也按照这个问题做了所有的步骤 cocoapods - 'pod install' takes forever但什么都没有
我正在设置一个 Kubernetes 主节点。 只是主节点,暂时没有工作节点。 使用 this tutorial. 完成设置,没有任何问题现在, $kubectl get pods -o wide -
是否可以在 pod install 期间让一个 Pod 保持不变和pod update ? pod update 不是一个选项。 最佳答案 您实际上可以使用pod update [NAMES...]来
基本上,我有一个部署,它创建了 3 个自动扩展的容器:PHP-FPM、NGINX 和包含应用程序的容器,所有这些都设置了 secret 、服务和入口。该应用程序还在 PHP-FPM 和 NGINX 之
在为Kubernetes创建/添加节点时,我们还必须创建Canal pod。 当前,kubernetes在尝试调度Pod之前不会等待Canal Pod准备就绪,从而导致失败(错误如下) Error s
我正在寻找一个选项来从部署/复制中删除 pod 而不删除它。我找到了一个很好的解决方案 using selector and labels here ,但在我的情况下这是不可能的,因为我不是 pod/
来自 PodInterface两个操作Delete和 Evict似乎具有相同的效果:删除旧 Pod 并创建一个新 Pod。 如果两个操作效果一样,为什么删除一个Pod并创建一个新的Pod需要两个API
Kubernetes版本1.12.3。 kubectl排水是先移开 pods 还是先创建 pods 。 最佳答案 您可以在节点上执行维护(例如内核升级,硬件维护等)之前,使用kubectlrain安全
有没有办法通过主机名访问 pod? 我有一个主机名:my-pod-1需要使用主机名连接到另一个 pod:my-pod-2 . 在没有服务的情况下实现这一目标的最佳方法是什么? 最佳答案 通过您的描述,
我是一名优秀的程序员,十分优秀!