K8S中Pod为何未使用配置的CPU/内存请求值?
问题原因及解决办法
你看到的elastic-internal-init-filesystem是Elasticsearch Operator自动注入的初始化容器,用来完成文件系统权限配置、目录准备等前置工作,它的资源限制(100m CPU、50Mi内存)是Operator的默认值,和你在主elasticsearch容器里配置的资源请求完全是两回事。
你的配置文件里已经正确给主容器elasticsearch设置了资源请求:
containers: - name: elasticsearch resources: requests: cpu: 1 memory: 4Gi
要验证主容器的资源配置是否生效,你可以:
- 执行
kubectl describe pod <你的Pod名称> -c elasticsearch,查看主容器的Resources部分 - 或者用JSONPath直接提取:
kubectl get pod <你的Pod名称> -o jsonpath='{.spec.containers[0].resources}'
如果需要自定义这个自动注入的初始化容器的资源,你可以在CR的podTemplate.spec.initContainers里添加同名容器并指定resources,Operator会覆盖默认配置,示例:
podTemplate: spec: initContainers: - name: sysctl # 你的sysctl容器配置... - name: elastic-internal-init-filesystem resources: requests: cpu: 200m memory: 100Mi limits: cpu: 200m memory: 100Mi
内容的提问来源于stack exchange,提问作者Joey Yi Zhao
相关产品推荐
相关产品推荐

