मॅकओएस हे युनिक्स आहे, परंतु ते लिनक्स नाही, म्हणून दुर्दैवाने जर / जेव्हा आम्हाला डॉकर सारख्या लिनक्स-वाई गोष्टी वापरण्याची आवश्यकता असेल तर आम्हाला विंडोज प्रमाणेच व्हीएम स्थापित करण्याची आवश्यकता आहे. हे अर्थातच बंदराच्या बाबतीत खरे आहे.

बर्‍याच लोकांप्रमाणे, मी माझा कंटेनर निश्चित करण्यासाठी अनेक वर्षांपासून डॉकर डेस्कटॉप वापरत आहे. हे खूप चांगले कार्य करते, जवळजवळ कोणत्याही गोष्टीसाठी चांगले. मला नक्की आठवत नाही की, डॉकरने डेस्कटॉपवर कुबेरनेट्स लाँच करण्यासाठी समर्थन जोडले. कागदावर ते चांगले दिसते – ते तांत्रिकदृष्ट्या कार्य करते, परंतु किंमतीशिवाय नाही … (कमीतकमी माझ्या मॅकवर) ते burning 747 फ्लाइट साउंडट्रॅकसह बर्निंग फॅनसह येते. सुदैवाने, मला बहुतेक वेळा कुबेरनेट्स रिमोट सर्व्हरमध्ये प्रवेश असतो, म्हणून मी आवृत्ती क्वचितच वापरली, परंतु जेव्हा मी ते पुन्हा (पुन्हा) प्रयत्न केले, तेव्हा मी ते पटकन कॉन्फिगर केले.

कुबेरनेट्सची स्थापना

गेल्या महिन्यात मी नोकरी बदलली आणि जॉईन झालो संस्कृती: – म्हणून मी संपूर्ण नवीन संगणक सेटअपमधून गेलो (तुम्हाला माहिती आहे, काही गोष्टी जसे की विकास फॉन्ट, सर्व संपादकांसाठी थीम इ. :)), मी हे देखील ठरवले की मी त्रास न देता कुबेरनेट चालवू शकतो का. -of floor -և असे दिसते की काही सोप्या चरणांनी हे करणे शक्य आहे.

brew install hyperkit
brew install minikube
minikube start

आपण इच्छित असल्यास, आपण ते सुरू करण्यापूर्वी minikube प्रतिमा संसाधने देखील सेट करू शकता

minikube config set cpu <whatever>
minikube config set memory <whatever>

टाडा कुबेरनेट्ससह सर्व पंखा-भाड्याशिवाय (शब्दाबद्दल क्षमस्व) कार्य करते. माझ्या स्थानिक क्लस्टरसह लेन्सचे चित्र येथे आहे जे 25+ कंटेनरमध्ये कार्य करते (जरी तुम्हाला म्हणावे लागेल की कार शांत आहे :))

डॉकर चालू करत आहे

यावेळी आपण हे करू शकता: kubectl deploy काय आधीच अस्तित्वात आहे, परंतु जर तुम्हाला स्थानिक प्रतिमा तैनात करायची असेल तर? ठीक आहे, हे देखील क्लिष्ट नाही किंवा आपल्याला डॉकर मिनीक्यूबसह प्रतिमा तयार करण्याची आवश्यकता आहे.

eval $(minikube docker-env)

मग तुम्ही करू शकता docker build -t <whatever> . (किंवा त्यासाठी इतर कोणत्याही डॉकिंग आदेश), नेहमीप्रमाणे.

हे इतके चांगले कार्य करते की मी त्यात eval आदेश जोडला .zshrc फाईल the डॉकर डेस्कटॉप वापरणे पूर्णपणे बंद केले.

डॉकर डेस्कटॉप परवाना बदल

कोड. आदल्या दिवशी, मी ते पाहिले डॉकर डॉकर डेस्कटॉपवर कमाई करण्याचा प्रयत्न करीत आहे the व्यवसायासाठी सबस्क्रिप्शन परवाना आवश्यक आहे, त्यामुळे हायपेकिट + मिनीक्यूब वापरून हे केवळ चांगले काम करत नाही (माझ्यासाठी) देखील विकासकांसाठी एक चांगला उपाय असू शकतो जे त्यांच्या संस्थांची सदस्यता घेण्यास तयार नाहीत / असमर्थ आहेत; म्हणून येथे एक प्लस आहे.

आपण डॉकर डेस्कटॉप विस्थापित केल्यास, आपल्याला डॉकर सीएलआय स्थापित करणे आवश्यक आहे, जे अद्याप अपाचे 2.0 परवाना वापरते.

brew install docker

पॉडमनचे काय?

डॉकर डेस्कटॉप परवाना बदलामुळे ही पोस्ट बरीच लोकप्रिय झाली. जसे मी वर लिहिले आहे, असे दिसते की डॉकर सीएलआय अजूनही अपाचे 2.0 आहे (लिहिण्याच्या वेळी :)), म्हणून परवाना बदलण्याच्या अधीन असल्यास ते सोडण्याची गरज नाही.

ते म्हणाले, डॉकर सीएलआय नावाचा एक संपूर्ण पर्याय देखील आहे पॉडमन:. ते मॅकओएस वर स्थापित करणे अपेक्षित आहे

brew install podman

डॉकर सीएलआय प्रमाणे पॉडमॅनला लिनक्स व्हीएम आवश्यक आहे जर ते मॅकवर कार्य करते. जसे घडते, मिनीक्यूबने त्याच्या व्हीएममध्ये पॉडमॅन देखील स्थापित केले आहे, जे आपण त्याद्वारे वापरू शकता
eval $(minikube podman-env) – दुर्दैवाने, मिनीक्यूबमध्ये पॉडमन v.2.2.1 आहे आणि ब्रू आवृत्ती नवीनतम (v.3.3.1) आहे – ते सुसंगत नाहीत.

जर तुम्हाला माझ्यासारख्या कुबेरनेट्सची आवश्यकता असेल तर मी डॉकर सीएलआयमध्ये राहीन. तथापि, आपल्याला फक्त कंटेनर तयार करण्याची आवश्यकता असल्यास, आपण धावून सहज पोडमॅनकडे जाऊ शकता

podman machine init # one time to download and setup a VM
podman machine start

पॉडमॅन डॉकर सीएलआयशी सुसंगत असल्याचे दिसते (जरी त्यात काही विशेष आज्ञा जोडल्या जातात जसे की machine आणि system), म्हणून आपण पूर्वीप्रमाणे build इत्यादी तयार / ड्रॅग करू शकता.

पॉडमॅनसह प्रतिमा तयार करण्यासाठी एक टीप. मी माझ्या विद्यमान डॉकरफाइल्स फायलींपैकी एक पॉडमॅनसह तयार करण्याचा प्रयत्न केला – मला खालील त्रुटी मिळाली.चुकीचे. बिल्ड कंटेनर तयार करताना एरर. लहान नाव समाधान वापरले जाते, परंतु TTY शिवाय सूचित केले जाऊ शकत नाही“कारण असे आहे की जेव्हा डॉकर हे गृहीत धरते की प्रतिमा डॉकर हबमधून डीफॉल्टनुसार येत आहेत, तेव्हा तुम्हाला त्या पॉडमॅनमध्ये निर्दिष्ट कराव्या लागतील, त्यामुळे बदलत आहेत FROM apache/airflow:2.1.2 करण्यासाठी: FROM docker.io/apache/airflow:2.1.2 समस्या सोडवली