OS और मिनीक्यूब के रूप में vm-driver
उल्लेख नहीं किया गया था, मुझे लगता है कि यह है --vm-driver=virtualbox
क्योंकि यह शायद सबसे आम मामला है। यदि आप कुछ अलग उपयोग करते हैं तो आपको इस समाधान को अपने कॉन्फ़िगरेशन के अनुसार समायोजित करने की आवश्यकता है।
स्पष्टीकरण:
127.0.0.1
एक localhost
है (lo0
) इंटरफ़ेस आईपी पता। नोड्स, होस्ट और पॉड्स के अपने लोकलहोस्ट इंटरफेस होते हैं और वे एक दूसरे से जुड़े नहीं होते हैं।
आपका mysql-server
होस्ट मशीन पर चल रहा है और localhost
. का उपयोग करके पहुँचा नहीं जा सकता (या यह आईपी रेंज है) मिनीक्यूब क्लस्टर पॉड के अंदर से या मिनीक्यूब vm के अंदर से।
समाधान:
-
आपके पास मिनीक्यूब वीएम और होस्ट के बीच एक नेटवर्क होना चाहिए। वर्चुअलबॉक्स में डिफ़ॉल्ट NAT नेटवर्क उसके लिए अच्छा नहीं है, इसलिए एक और होस्ट-ओनली नेटवर्क बनाना बेहतर है। आइए बनाएंए> वर्चुअलबॉक्स UI में अतिरिक्त होस्ट-ओनली नेटवर्क
vmnet2
. नाम के साथ और आईपी रेंज192.168.77.1/24
. आपको उस नेटवर्क के लिए DHCP सक्षम करने की आवश्यकता नहीं है। -
इंटरफ़ेस vmnet2 या ip
192.168.77.1
पर सुनने के लिए आपको mysql को कॉन्फ़िगर करना होगा जो डिफ़ॉल्ट रूप से होस्ट मशीन के लिए उपयोग किया जाता है। जांचें कि क्या यह होस्ट से पहुंच योग्य है:
mysql -h 192.168.77.1 -u root -p
-
इस नेटवर्क को मिनीक्यूब से जोड़ने के लिए VM --host-only-cidr कुंजी का उपयोग किया जाना चाहिए। विभिन्न प्रकार के
vm-driver
इस उद्देश्य के लिए विभिन्न क्ली विकल्पों का उपयोग करें।minikube start --help
देखें आउटपुट तो,virtualbox
. के लिए यह निम्न जैसा दिखेगा:minikube start --cpus 2 \ --memory 2048 \ --disk-size 20g \ --vm-driver virtualbox \ --network-plugin flannel \ --kubernetes-version v1.12.2 \ --host-only-cidr 192.168.77.1/24
मैंने सुविधा के लिए अन्य सबसे आम क्ली विकल्प लिखे हैं।
MinikubeVM को निम्न IP पता मिलेगा:
192.168.77.100
(कम से कम पहली बार। ) आप इसेminikube ssh
. का उपयोग करके देख सकते हैं और फिरifconfig
आदेश। -
अंतिम भाग - हमें इसके लिए
minikube
. के अंदर एक सेवा और समापन बिंदु बनाने की आवश्यकता है क्लस्टर:
kubectl apply -f mysql-service.yaml
यहां mysql-service.yaml
की सामग्री दी गई है फ़ाइल:
---
apiVersion: v1
kind: Service
metadata:
name: mysql-service
spec:
type: ClusterIP
ports:
- protocol: TCP
port: 3306
targetPort: 3306
---
apiVersion: v1
kind: Endpoints
metadata:
name: mysql-service
subsets:
- addresses:
- ip: 192.168.77.1
ports:
- port: 3306
- अब हम
mysql-service
का उपयोग कर सकते हैं नाम और पोर्ट3306
इस क्लस्टर के किसी भी पॉड के अंदर एक गंतव्य बिंदु के रूप में।