我正在GKE上运行我的长生不老药应用程序
这是我的部署配置:
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
这些是我最近的日志:
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不能自动重启?
答案 0 :(得分:3)
您需要添加探针,以检查您的应用程序是否正常。
由于您提到了502
,所以我假设这是Phoenix应用程序,您可以添加运行状况检查端点:
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 3
periodSeconds: 3
当此请求停止接收200
时,Kubernetes Controller将重新启动您的pod。
答案 1 :(得分:1)