一 生产环境问题描述
keycloak是运行在jboss上面,并且部署到了容器里,在k8s上面进行编排,现在遇到gc在某个时刻垃圾回收速度变慢,CPU接近100%,容器导致存活探针失败,容器最后重启
二 问题分析与解决方案
这是一个典型的 JVM GC 问题导致的容器重启场景。让我分析一下你的配置和可能的原因:
2.1 问题分析
根据你的 devops.yaml 配置:- value: "-Xms1024M -Xmx1024M -XX:ConcGCThreads=13 -XX:ParallelGCThreads=13 -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -Djboss.bind.address.management=0.0.0.0"
复制代码- resources:
- limits:
- memory: 10Gi # 限制的内存量
- cpu: 2 # 限制的 CPU 核心数
- requests:
- cpu: 100m
- memory: 500m
复制代码- livenessProbe: #存活检测
- failureThreshold: 2 #探测失败的重试次数,重试一定次数后将认为失败,在 readiness 探针中,Pod会被标记为未就绪,默认为 3,最小值为 1
- initialDelaySeconds: 120 #容器启动后要等待多少秒后就探针开始工作,单位"秒",默认是 0 秒,最小值是 0
- periodSeconds: 10 #执行探测的时间间隔(单位是秒),默认为 10s,单位"秒",最小值是 1
- successThreshold: 1 #探针检测失败后认为成功的最小连接成功次数,默认为 1
- timeoutSeconds: 5 #探针执行检测请求后,等待响应的超时时间,默认为 1s,单位"秒",最小值是 1
- httpGet:
- path: /auth
- scheme: HTTP
- port: 8080
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |