kubernetes之requests和limits


說明

1.當集群中的計算資源不很充足, 如果集群中的pod負載突然加大, 就會使某個node的資源嚴重不足, 為了避免系統掛掉, 該node會選擇清理某些pod來釋放資源, 此時每個pod都可能成為犧牲品
2.kubernetes保障機制:

限制pod進行資源限額
允許集群資源被超額分配, 以提高集群的資源利用率
為pod划分等級, 確保不同的pod有不同的服務質量qos, 資源不足時, 低等級的pod會被清理, 確保高等級的pod正常運行

3.kubernetes會根據Request的值去查找有足夠資源的node來調度此pod
limit對應資源量的上限, 既最多允許使用這個上限的資源量, 由於cpu是可壓縮的, 進程是無法突破上限的, 而memory是不可壓縮資源, 當進程試圖請求超過limit限制時的memory, 此進程就會被kubernetes殺掉
對於cpu和內存而言, pod的request和limit是指該pod中所有容器的 Requests或Limits的總和,
例如: 某個節點cpu資源充足, 而內存為4G,其中3GB可以運行pod, 而某個pod的memory request為1GB, limit為2GB, 那么這個節點上最多可以運行3個這樣的pod
待調度pod的request值總和超過該節點提供的空閑資源, 不會調度到該節點node上;

示例

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 1
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.11
        ports:
        - containerPort: 80
        resources:
          limits:
            cpu: 2048m
            memory: 2Gi
          requests:
            cpu: 2048m
            memory: 2Gi


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM