मैं मूल रूप से अपने क्लस्टर पर पॉड सीपीयू सीमा लागू करने की कोशिश कर रहा हूं। मैंने वहां अपने परिनियोजन.yaml (अतिरिक्त अनुरोध, सीमा) में संपादन किया और yaml लागू किया। नीचे अवलोकन हैं:

  1. जब मैं फ़ाइल लागू करता हूं तो मुझे कोई त्रुटि नहीं मिलती है (मेरा मौजूदा ऐप पॉड समाप्त हो गया है, एक नया काता गया है)
  2. जब मैं अपने पॉड पर वर्णन करता हूं तो मैं एक क्यूओएस वर्ग को लागू होते देख सकता हूं (क्यूओएस: बर्स्टेबल)
  3. मुद्दा यह है कि सीमाओं का सम्मान नहीं किया जा रहा है, जैसा कि मैं अपने मेट्रिक्स सर्वर में देख सकता हूं कि पॉड सीपीयू> 300 (जबकि सीमा सेट 200 मीटर है)
  4. मेरे पास पॉड से जुड़ा एक इस्तियो साइडकार कंटेनर है (लेकिन मैं केवल अपने ऐप की सीमा को लागू करना चाहता हूं न कि इस्तियो)

Yaml फ़ाइल का स्निपेट:

resources:
    limits:
        cpu: 200m
        memory: 100Mi
    requests:
        cpu: 50m
        memory: 50Mi

कोई भी विचार मुझे यहां और क्या जांचना है, मैंने सभी दस्तावेजों की जांच की और कोई त्रुटि नहीं मिली लेकिन सीमाएं लागू नहीं हो रही हैं। अग्रिम में धन्यवाद!

1
Contraboy 21 सितंबर 2020, 22:08

1 उत्तर

सबसे बढ़िया उत्तर

पॉड सीपीयू में पॉड के सभी कंटेनर शामिल होते हैं, जबकि आपके द्वारा निर्दिष्ट सीमाएं केवल ऐप कंटेनर पर लागू होती हैं।
अगर आप अकेले कंटेनर के लिए मेट्रिक की क्वेरी करते हैं, तो आप शायद पाएंगे कि यह उन सीमाओं का सम्मान कर रहा है जो आपने उस पर लागू की हैं।
यहां एक उदाहरण प्रोमेथियस क्वेरी है जिसका उपयोग आप कर सकते हैं यदि आप इसे अपने क्लस्टर पर चला रहे हैं, जो आपको प्रत्येक कंटेनर के वास्तविक CPU उपयोग और उसके CPU अनुरोधों के बीच के अनुपात को समझने की अनुमति देगा -

max(sum(irate(container_cpu_usage_seconds_total{container=~"<container_name>", image !="",namespace="<namespace>", pod=~"<Deployment_name>"}[5m])) by (pod, namespace)) 
/ 
max(sum(kube_pod_container_resource_requests_cpu_cores{namespace="<namespace>", container=~"<container_name>", pod=~"<deployment_name>"}) by (pod,namespace))
4
Yaron Idan 21 सितंबर 2020, 19:31