क्या k8s \ openhift में पॉड्स \ कंटेनरों के लिए डिफ़ॉल्ट मेमोरी अनुरोध और \ या सीमाएं हैं?

Jan 24 2021

हेलो साथी देवओप्स लोग,

मैं यह समझने की कोशिश कर रहा हूं कि क्या k8s या Openshift में एक आधार अनुरोध और \ या प्रति पॉड \ कंटेनर की सीमा है, जैसा कि वे आज हैं या यदि आप इसके बारे में भविष्य में कोई बदलाव जानते हैं।

मैंने यह उत्तर देखा है: एक फली के लिए तय की गई डिफ़ॉल्ट मेमोरी क्या है जो कि कोई भी नहीं है, कम से कम Google के k8 के कार्यान्वयन के लिए और मैं k8s की वर्तमान स्थिति के लिए भी सुनिश्चित करना चाहता हूं और ऑन-प्रिमाइसेस में ऑपेंशफ़्ट।

वर्तमान में चल रहा उद्यम 3.11.16 क्लस्टर खोलता है और जल्द ही 4.6.4 में स्थानांतरित हो रहा है, इसलिए मेरा सवाल रेडहैट के डिफ़ॉल्ट k8s (Openshift) के ऊपर निर्माण के कार्यान्वयन के बारे में भी है।

क्या कंटेनर / पॉड के लिए कोई आधार अनुरोध या सीमा मूल्य हैं?

EDIT: इसके अलावा एक तरीका है k8s या खुलने का समय कंटेनर मेमोरी अनुरोध का अनुमान लगाएगा जो कि एप्लिकेशन डेवलपमेंट लैंग्वेज या एनवायरनमेंट वेरिएबल्स पर तैनाती के लिए सेट है (जैसे जावा कंटेनर RUN कमांड या env: JVM_OPTS -Xms1G -Xmx1G)?

जवाब

2 VasiliAngapov Jan 24 2021 at 01:15

डिफ़ॉल्ट रूप से कोई संसाधन अनुरोध या सीमाएं नहीं हैं, जिसका अर्थ है कि प्रत्येक पॉड BestEffort QoS का उपयोग करके बनाया गया है । यदि आप अनुरोधों और सीमाओं के लिए डिफ़ॉल्ट मान कॉन्फ़िगर करना चाहते हैं, तो आपको LimitRange का उपयोग करना चाहिए ।

परिभाषा द्वारा BestEffort की फली "एक Pod के लिए BestEffort की एक QoS श्रेणी दी जानी है, Pod में कंटेनरों में कोई मेमोरी या CPU सीमा या अनुरोध नहीं होना चाहिए।" बेस्टफोर्ट पॉड्स में कुबेरनेट्स शेड्यूलर के लिए सबसे कम प्राथमिकता है और संसाधन विवाद के मामले में बेदखल किया जा सकता है

उपरोक्त सभी OpenShift सहित सभी Kubernetes वितरण के लिए सही है।

1 StavBernaz Feb 04 2021 at 05:31

कोई डिफ़ॉल्ट सीमा या अनुरोध नहीं है। डिफ़ॉल्ट संसाधनों को कॉन्फ़िगर करने के लिए आपको यहाँ वर्णित के रूप में एक LimitRange संसाधन बनाना चाहिए:https://docs.openshift.com/container-platform/3.11/dev_guide/compute_resources.html#dev-viewing-limit-ranges

यदि आप चाहते हैं कि प्रत्येक नई परियोजना को कुछ संसाधनों की सीमाओं के साथ बनाया जाए तो आप यहाँ वर्णित के रूप में डिफ़ॉल्ट प्रोजेक्ट टेम्पलेट को संशोधित कर सकते हैं: https://docs.openshift.com/container-platform/3.11/admin_guide/managing_projects.html#modifying-the-template-for-new-projects

यह 4.6 के रूप में अच्छी तरह से नहीं बदलता है, केवल LimitRange या डिफ़ॉल्ट परियोजना टेम्पलेट को कैसे संशोधित किया जाए। (कार्यप्रणाली बिल्कुल समान है)

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