आपकी YAML फाइलें सही हैं। मैंने प्रश्न में उल्लिखित पूरे वातावरण को फिर से बनाया है और मुझे रनिंग स्थिति में एप्लिकेशन के साथ स्वस्थ टॉमकैट मिला है।
यदि कोई भी इसका परीक्षण करना चाहता है, तो टॉमकैट प्रबंधक उपयोगकर्ता नाम/पासवर्ड हैं:
username="the-manager" password="needs-a-new-password-here"
टॉमकैट लॉग में कोई गंभीर त्रुटि नहीं मिली, मुझे एप्लिकेशन से प्रतिक्रिया मिली है:
{"text":"Data-core"}
जो सही प्रतिक्रिया की तरह दिखता है। मुझे MySQL डेटाबेस डेटा-कोर में खाली तालिका अनुक्रम भी मिला है।
मैं अनुमान लगा सकता हूं कि आपको किसी प्रकार की कनेक्टिविटी समस्या हुई है, शायद कुबेरनेट्स नेटवर्क एडऑन (कैलिको/फ्लानेल/आदि) के गलत काम के कारण।
इसका निवारण कैसे करें:
- सेटअप की जांच करने के लिए, सभी पॉड्स को एक ही नोड पर रखा जा सकता है, वहां दोनों परिनियोजन के लिए पीवी बनाकर।
-
मैसकल या टॉमकैट संसाधनों से कनेक्टिविटी का परीक्षण करने के लिए हम उनके पॉड्स को निष्पादित कर सकते हैं और सरल कमांड का उपयोग करके परीक्षण चला सकते हैं:
$ kubectl exec mysql-pod-name -it -- mysql -hlocalhost -uroot -proot data-core --execute="show tables;"
या बस यह जांचने के लिए अतिरिक्त पॉड चलाएँ कि क्या सेवाएँ सही ढंग से mysql पॉड की ओर इशारा करती हैं:
$ kubectl run mysql-client --rm -it --image mysql --restart=Never --command -- mysql -hmysql -uroot -proot data-core --execute="show tables;"
टॉमकैट पॉड के लिए हम उपयोगकर्ता पासवर्ड और एप्लिकेशन प्रतिक्रिया की जांच के लिए निम्नलिखित कमांड का उपयोग कर सकते हैं:
$ kubectl exec -ti tomcat-pod-name -- cat /usr/local/tomcat/conf/tomcat-users.xml
$ kubectl exec -ti tomcat-pod-name -- curl http://localhost:8080/data-core-0.0.1-SNAPSHOT/
या curl
. के साथ अलग पॉड का उपयोग करें या wget
यह जांचने के लिए कि क्या टॉमकैट सेवा और नोडपोर्ट अच्छी तरह से काम करता है:
$ kubectl run curl -it --rm --image=appropriate/curl --restart=Never -- curl http://tomcat:8080/data-core-0.0.1-SNAPSHOT/
$ curl http://Cluster.Node.IP:30000/data-core-0.0.1-SNAPSHOT/
विभिन्न नोड्स के आईपी का उपयोग करके आप क्लस्टर कनेक्टिविटी की भी जांच कर सकते हैं क्योंकि नोडपोर्ट सेवा सभी क्लस्टर नोड्स पर एक ही पोर्ट खोलती है और फिर नोड्स पर iptables नियमों को पॉड के आईपी पर अग्रेषित करती है।
यदि पॉड अलग नोड पर स्थित है, तो फलालैन / केलिको / आदि। नेटवर्क प्लगइन इसे सही नोड और पॉड तक पहुंचाता है।