मेरे पास एक OpenVPN सर्वर है जो कुछ निजी IP पतों को उजागर करता है, मैं चाहूंगा कि मेरी docker swarm सेवाएं उन पतों को एक्सेस करें।
आदर्श रूप से, एक OpenVPN क्लाइंट "इनसाइड" नहीं होगा क्योंकि छवियों को एक ऐसे वातावरण में तैनात किए जाने की उम्मीद है जहां एक वीपीएन आवश्यक नहीं होगा।
मैंने अब तक क्या कोशिश की
मैंने dperson / openvpn-client छवि के साथ अपने VPN में सफलतापूर्वक एक कंटेनर कनेक्ट किया है ।
मैंने उस कंटेनर का उपयोग करके सफलतापूर्वक एक और कंटेनर लॉन्च किया, जो --net=container:my-vpn-client
ध्वज के उपयोग से उसके नेटवर्क के रूप में है ।
अब मैं एक डॉकटर सेवा स्थापित करने की कोशिश कर रहा हूं जो मेरे निजी आईपी पते तक पहुंच जाएगी और जो मुझे मिला है वह है:
- मैं ओपनवीपीएन क्लाइंट को एक सेवा में नहीं चला सकता क्योंकि इसे नहीं दिया जा सकता
cap-add: NET_ADMIN
। इस मामले पर चर्चा करने वाले डॉकटर के साथ खुले मुद्दे हैं लेकिन वे अभी भी खुले हैं। - मुझे लगा कि मैं झुंड क्लस्टर के बगल में खुले वीपीएन क्लाइंट कंटेनर चला सकता हूं, लेकिन मैं इसका उपयोग नहीं कर सकता
network_mode: "container:my-vpn-client"
क्योंकि यह समर्थित नहीं है और इसका मतलब नहीं है क्योंकि मैं संभवतः एक मनमाना कंटेनर को हर नोड पर मौजूद होने के लिए मजबूर नहीं कर सकता। इसके बिना ही स्वयं सेवा हो जाती है। - मैंने एक अटैच नेटवर्क (ब्रिज / ओवरले) बनाने की कोशिश की और बस उसमें मेरा OpenVPN क्लाइंट कंटेनर चिपका दिया और उस पाइप के माध्यम से जाने के लिए जादुई रूप से उस नेटवर्क के अन्य सदस्यों से अपेक्षा की ... और मुझे निराशा हुई।
तो यहाँ मैं हूँ, किसी भी विचार?
PS यदि यह मदद कर सकता है, तो यह मुख्य रूप से कुछ स्वचालित परीक्षणों को सेटअप करने के लिए है जो कि झुंड मोड में एकल डॉकटर मशीन पर सेवाओं को चलाएंगे, जैसे कि झुंड init> स्टैक तैनाती> रन परीक्षण> झुंड अवकाश। इसलिए अगर उसके लिए "हैक" है ... मुझे दिलचस्पी हो सकती है;)
ccr
फाइल का उपयोग करके जैसे कि आप एक स्थानीय नेटवर्क के साथ काम कर रहे थे। सभी टीसीपी / आईपी रूटिंग के साथ, "traceroute
आपका सबसे अच्छा दोस्त है, जैसा किtcpdump
या वायरशार्क है।"