K8S运维经验分享

K8S-OPS

1. namespace资源限制:CPU、内存、Pod、Service

命名空间设置了CPU或内存资源配额后,创建工作负载时,必须指定CPU或内存的请求值(request)和限制值(limit)

apiVersion: v1
kind: ResourceQuota
metadata:
  name: quota-test
  namespace: test
spec:
  hard:
    requests.cpu: "2"
    requests.memory: 2Gi
    limits.cpu: "4"
    limits.memory: 4Gi
    requests.nvidia.com/gpu: 4
    pods: "3"
    services: "6"

2. pod的资源限制,Requests 和 limits

  • requests:需求,最低保障, 保证被调度的节点上至少有的资源配额

  • limits:限制,硬限制, 容器可以分配到的最大资源配额

  • JAVA内存估算参考:堆内存(1G) + 线程数 * 线程栈 (500*1M) + 永久代(metaspace)(256M) + 堆外内存(512M) = limits:2.25G

  • 重要服务请设置limit == request, 这样确保容器不会因为内存的使用量超过request但是没有超过limit的情况下被意外


版权声明:本文为starsliao原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。