gpt4 book ai didi

kubernetes - 达到内存限制后崩溃时 pod 不会自动重启

转载 作者:行者123 更新时间:2023-12-02 11:52:20 31 4
gpt4 key购买 nike

我在 GKE 上运行我的 elixir 应用

这是我的部署配置:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: myapp
namespace: production
spec:
replicas: 1
revisionHistoryLimit: 1
strategy:
type: RollingUpdate
template:
metadata:
labels:
app: myapp
tier: backend
spec:
securityContext:
runAsUser: 0
runAsNonRoot: false
containers:
- name: myapp
image: myimage
resources:
limits:
cpu: 3000m
memory: 2000Mi
requests:
cpu: 2500m
memory: 1000Mi
ports:
- containerPort: 80
args:
- foreground

如图所示,pod 达到了内存限制并崩溃了 pod

这些是我最后的日志:

erl_child_setup closed

Crash dump is being written to: erl_crash.dump...done

Shutting down..

Node is not running!

然后我的应用程序被卡住,我在尝试请求该应用程序时收到 502,

为了重新启动,我重新启动了 pod(kubectl delete pod),然后它再次运行,

我的问题是:为什么 pod 在达到内存限制时不自动重启?

最佳答案

您需要添加探测器来检查您的应用程序是否健康。

既然你提到了 502,我假设这是一个 Phoenix 应用程序,你可以添加一个健康检查端点:

livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 3
periodSeconds: 3

当此请求停止接收 200 时,Kubernetes Controller 将重启您的 pod。

关于kubernetes - 达到内存限制后崩溃时 pod 不会自动重启,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53819668/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com