kubernetes生態系統-Qos服務質量

本文作者:行癲

Qos在業內被叫做“服務質量等級”,但大多數人又稱爲“服務質量保證”,他是作用在pod上的一個配置,當我們使用kubernetes去創建pod時,默認會給我們的pod分配一個Qos等級。Qos的分類如下:

Guaranteed:Pod 裏的每個容器都必須有內存/CPU 限制和請求,而且值必須相等。
Burstable:Pod 裏至少有一個容器有內存或者 CPU 請求且不滿足 Guarantee 等級的要求,即內存/CPU 的值設置的不同。
BestEffort:容器必須沒有任何內存或者 CPU 的限制或請求。

這個配置不是通過一個配置項來配置的,而是通過配置 CPU/內存的 limits 與 requests 值的大小來確認服務質量等級的。
使用一下命令可以看到 pod 的配置輸出中有 qosClass

kubectl get pod -o yaml

注意:該配置的作用是爲了給資源調度提供策略支持,調度算法根據不同的服務質量等級可以確定將 pod 調度到哪些節點上。

例如,下面這個 YAML 配置中的 Pod 資源配置部分設置的服務質量等級就是 Guarantee。

spec:
  containers:
    ...
    resources:
      limits:
        cpu: 100m
        memory: 128Mi
      requests:
        cpu: 100m
        memory: 128Mi

下面的 YAML 配置的 Pod 的服務質量等級是 Burstable。

spec:
  containers:
    ...
    resources:
      limits:
        memory: "180Mi"
      requests:
        memory: "100Mi"

總結:(編者寄語)
關於kubernetes的Qos的配置很容易被kubernetes工程師忽略,但是這個配置關係的我們每個pod的質量。在我們寫yaml文件時,這些我們一般情況會使用默認值,爲了提高我們的資源利用率,爲了提升每個pod的質量,建議大家在去使用yaml文件創建pod時,根據企業或者項目需求合理定義自己每個pod的質量。

關於kubernetes的其他軟件,點擊下面的鏈接即可查看:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章