Kubernetes और Operator-sdk में, हम CRD (कस्टम रिसोर्स डेफिनिशन) और CR (कस्टम रिसोर्स) को परिभाषित कर सकते हैं। मेरे ऑपरेटर नियंत्रक में, जब एक सीआर प्रारंभ किया जाता है, तो मैं एक नया परिनियोजन और सेवा बना देता हूं।

जब हम कोई CR ऑब्जेक्ट हटाते हैं, तो सहसंबद्ध संसाधन (जैसे परिनियोजन या सेवा) भी उसी समय हटा दिए जाएंगे। मैं समझता हूँ कि इसे CR या CRD फ़ाइनलाइज़र द्वारा किया जाना चाहिए, यह केवल मेरा अनुमान है।

अब मैंने envTest परिवेश के अंतर्गत ऑपरेटर परीक्षण के दौरान एक समस्या का सामना किया, जब मैं एक CR को हटाता हूं, तो उसके सहसंबद्ध संसाधन (परिनियोजन या सेवा) को हटाया नहीं गया है।

मैं उलझन में हूं। real k8s cluster में, सहसंबद्ध संसाधन (परिनियोजन या सेवा) को स्वचालित रूप से हटाया जा सकता है जब मैं CR को हटाता हूं, envTest environment के तहत, यह सहसंबद्ध संसाधनों को क्यों नहीं हटाता है?

क्या कोई कारण बता सकता है।

2
Joe 13 नवम्बर 2020, 16:41

1 उत्तर

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

कुबेरनेट्स के कचरा संग्राहक द्वारा अनाथ संसाधनों का विलोपन किया जाता है, जो है kubelet में लागू किया गया। जब आप envTest वातावरण में ऑपरेटर का परीक्षण करते हैं, तो कचरा संग्रहण काम नहीं करता है क्योंकि kubelet उस वातावरण में गायब है (यह केवल एपीआई सर्वर और आदि को तैनात करता है)।

1
Grigoriy Mikhalkin 13 नवम्बर 2020, 21:02