din*_*ina 2 kubernetes google-kubernetes-engine
我在 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
Run Code Online (Sandbox Code Playgroud)
这些是我最后的日志:
erl_child_setup closed
Crash dump is being written to: erl_crash.dump...done
Shutting down..
Node is not running!
Run Code Online (Sandbox Code Playgroud)
然后我的应用程序被冻结,我在尝试请求应用程序时收到 502,
为了重新启动,我重新启动了 pod(kubectl delete pod),然后它再次运行,
我的问题是:当达到内存限制时,为什么 pod 不会自动重启?
您需要添加探针来检查您的应用程序是否健康。
由于您提到了 a 502,我假设这是一个 Phoenix 应用程序,您可以添加一个运行状况检查端点:
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 3
periodSeconds: 3
Run Code Online (Sandbox Code Playgroud)
当此请求停止接收 时200,Kubernetes 控制器将重新启动您的 pod。
| 归档时间: |
|
| 查看次数: |
773 次 |
| 最近记录: |