@ मानिकांता पी द्वारा ऊपर दिया गया उत्तर सही है। हालाँकि, "पोर्ट" की व्याख्या पहले पढ़ने में थोड़ी अस्पष्ट हो सकती है। मैं एक उदाहरण के साथ समझाऊंगा:
HTTPc द्वारा होस्ट की गई स्थिर सामग्री (सामने का पृष्ठ, चित्र आदि) के साथ एक वेब-एप्लिकेशन पर विचार करें और tomcat द्वारा होस्ट की गई गतिशील सामग्री (जैसे अनुरोधों पर प्रतिक्रिया आदि)। वेबसर्वर (या स्टैटिक कंटेंट) httpd द्वारा पोर्ट पर परोसा जाता है 80
जबकि Appserver (या डायनामिक कंटेंट) को पोर्ट पर tomcat द्वारा परोसा जाता है 8080
।
एक डेवलपर क्या चाहता है: उपयोगकर्ता को बाहर से वेबसर्वर का उपयोग करने में सक्षम होना चाहिए न कि बाहर से आने वाले को।
समाधान: इसकी सेवा में वेबसर्वर का सेवा-प्रकार। NlPode होगा, जबकि सेवा का प्रकार- Appserver अपनी सेवा में होगा। इसका नाम ClusterIP होगा।
वेबसर्वर की सेवा के लिए कोड ।ym:
spec:
selector:
app: Webserver
type: NodePort // written to make this service accessible from outside.
ports:
- nodePort: 30475 // To access from outside, type <host_IP>:30475 in browser.
port: 5050 // (ignore for now, I will explain below).
protocol: TCP
targetPort: 80 // port where httpd runs inside the webserver pod.
Appserver's service.yml के लिए कोड
spec:
selector:
app: appserver
type: ClusterIP // written to make this service NOT accessible from outside.
ports:
- port: 5050 // port to access this container internally
protocol: TCP
targetPort: 8080 // port where tomcat runs inside the appserver pod.
यह भी ध्यान दें, httpd.conf
वेबसर्वर की फाइल में, हम आईपी को लिखेंगे जो उपयोगकर्ता के अनुरोध को अप्रत्यक्ष रूप से पुनर्निर्देशित करता है। यह IP हो जाएगा: host_IP:5050
।
यहाँ वास्तव में क्या हो रहा है? एक उपयोगकर्ता hostIP:30475
वेबसर्वर के पेज को लिखता है और देखता है। ऐसा इसलिए है क्योंकि यह httpd पर पोर्ट 80
(लक्ष्य) द्वारा परोसा जा रहा है । जब कोई उपयोगकर्ता एक बटन क्लिक करता है, तो एक अनुरोध किया जाता है। यह अनुरोध Appserver में पुनर्निर्देशित है क्योंकि httpd.conf
फ़ाइल में, पोर्ट 5050
का उल्लेख किया गया है और यह वह पोर्ट है जहां Appserver के कंटेनर और Webserver के कॉनटेनर आंतरिक रूप से संवाद करते हैं। जब आब्जर्वर को अनुरोध प्राप्त होता है, तो वह पोर्ट में इसके अंदर चल रहे टेंकैट के कारण अनुरोध को पूरा करने में सक्षम होता है 8080
।