मैं एक कॉन्सल क्लस्टर से पूरी तरह से एक नोड कैसे निकालूं?


1

यह कंसोल सर्वर नोड, किसी अन्य DC में, इसे निकालने के कुछ समय बाद जुड़ता रहता है।

लक्ष्य:

डीसी में 5 कॉन्सल सर्वर का एक क्लस्टर alpha0, जिसका केवी स्टोर एक alpha0वॉल्ट क्लस्टर एक स्टोरेज बैकेंड के रूप में उपयोग करता है:

  • alpha0consulserver1.alpha0
  • alpha0consulserver2.alpha0
  • alpha0consulserver3.alpha0
  • alpha0consulserver4.alpha0
  • alpha0consulserver5.alpha0

डीसी में 5 कॉन्सल सर्वर का एक क्लस्टर prd0, जिसका केवी स्टोर एक prd0वॉल्ट क्लस्टर एक स्टोरेज बैकेंड के रूप में उपयोग करता है:

  • prd0consulserver1.prd0
  • prd0consulserver2.prd0
  • prd0consulserver3.prd0
  • prd0consulserver4.prd0
  • prd0consulserver5.prd0

वान कनेक्शन ठीक है। लेकिन मुझे चिंता है कि यदि वे अपने KV स्टोर को सिंक करते हैं, तो यह दो अलग-अलग HashiCorp वॉल्ट समूहों को प्रभावित कर सकता है जो प्रत्येक उन्हें बैक-एंड के रूप में उपयोग करते हैं।

समस्या:

खराब लिखी गई पपेट स्क्रिप्ट जो मैंने लिखी है, जिसके परिणामस्वरूप एक कॉन्सल नोड है prd0consulserver5, जो एक अलग डीसी में दूसरे को जोड़ता है alpha0consulserver1

मैंने prd0consulserver5 के लिए कॉन्सुल को पूरी तरह से शुद्ध और फिर से स्थापित किया है, लेकिन इससे जुड़ता alpha0consulserver1रहता है।

यहाँ विन्यास फाइल में से एक का उदाहरण दिया गया है, विशेष रूप से, अल्फा 0 कॉन्सुलसर्वर 1.alpha0 के लिए।

nathan-basanese-zsh8 % sudo cat /etc/consul/config.json
{
    "bind_addr": "192.176.100.1",
    "client_addr": "0.0.0.0",
    "data_dir": "/opt/consul",
    "domain": "consul.basanese.com",
    "bootstrap_expect": 5,
    "enable_syslog": true,
    "log_level": "DEBUG",
    "datacenter": "bts0",
    "node_name": "alpha0consulserver1",
    "ports": {
        "http": 8500,
        "https": 8501
    },
    "recursors": ["192.176.176.240", "192.176.176.241"],
    "server": true,
    "retry_join": ["192.176.100.3", "192.176.100.2", "192.176.100.1"]
}

यहां कुछ प्रासंगिक लॉग दिए गए हैं prd0consulserver5, लेकिन मैं अनुरोध पर अधिक पोस्ट कर सकता हूं:

2017/05/26 23:38:00 [DEBUG] memberlist: Stream connection from=192.176.100.1:47239
2017/05/26 23:38:00 [INFO] serf: EventMemberJoin: alpha0consulserver2.alpha0 192.176.100.2
2017/05/26 23:38:00 [INFO] serf: EventMemberJoin: alpha0consulserver1.alpha0 10.240.112.3
2017/05/26 23:38:00 [INFO] consul: Handled member-join event for server "alpha0consulserver2.bts0" in area "wan"
2017/05/26 23:38:00 [INFO] serf: EventMemberJoin: alpha0consulserver3.alpha0 192.176.100.3
2017/05/26 23:38:00 [INFO] consul: Handled member-join event for server "alpha0consulserver1.bts0" in area "wan"
2017/05/26 23:38:00 [INFO] consul: Handled member-join event for server "alpha0consulserver3.bts0" in area "wan"

आखिरकार, मुझे यह मिलता है:

2017/05/26 23:39:02 [DEBUG] memberlist: Initiating push/pull sync with: 192.176.100.2

मैं नोड को बंद कर देता हूं, क्योंकि मैं नहीं चाहता कि चाबियाँ मैं केवी स्टोर पर alpha0नोड्स पर लिखूं prd0

मैंने अब तक क्या प्रयास किया है:

मैंने निम्नलिखित कोशिश की है:

https://www.consul.io/api/agent.html#graceful-leave-and-shutdown

मैंने कोशिश नहीं की force-leaveक्योंकि यह कॉन्फ़िगर डीसी के बाहर नोड पर काम नहीं करता है।

मैंने prod0मेजबानों से सभी मेजबानों को अलग करने की भी कोशिश की alpha0है।

https://www.consul.io/api/catalog.html#deregister-entity

मैं अपनी बुद्धि के अंत में हूँ, यहाँ, और कोई रास्ता नहीं ढूंढ सकता

मैंने इस क्वेरी और इसी तरह के कई प्रश्नों का उपयोग करके इसे खोज इंजन पर खोजा है: https://duckduckgo.com/?q=totally+deregister+consul+node&t=hc&ia=software

निम्नलिखित दो परिणामों में थोड़ी समान समस्या थी, लेकिन 5 कॉन्सल सर्वर के क्लस्टर को 5 कॉन्सल सर्वर के किसी अन्य क्लस्टर से अलग रखने के लिए कुछ भी सरल नहीं है।

https://github.com/hashicorp/consul/issues/1188 https://groups.google.com/forum/@msg/consul-tool/bvJeP1c3Ujs/EvSZoY4ZFgAJ

मुझे लगता है कि इसे "join_wan":कॉन्फ़िगरेशन सेटिंग द्वारा नियंत्रित किया जा सकता है , लेकिन यह स्पष्ट रूप से इसे बंद करने का एक तरीका नहीं है। साथ ही, इस समस्या को ठीक करने के लिए एक हैक-आई तरीका की तरह लगता है।

मैंने IPTables भी माना है।

वैसे भी, मुझे लगता है कि कुछ याद आ रहा है। मैंने रफ़ प्रोटोकॉल में खुदाई शुरू कर दी है, लेकिन मुझे ऐसा लगता है कि शायद मैंने अपनी खोज में एक स्पर्शरेखा पर जाना शुरू कर दिया है। किसी भी मार्गदर्शन की सराहना की, यह एक टिप्पणी या एक जवाब हो।

अधिक सटीक रूप से, मैं prd0कॉन्सुल सर्वर नोड्स को अपने अलग केवी स्टोर और कॉन्सुल लीडर को alpha0कॉन्सुल सर्वर नोड्स से कैसे रखता हूं ?


1
//, मेरी विशेष मामले के लिए, मैं में एक जवाब मिल गया consul operator raft remove-peerहै, लेकिन मैं बेसब्री के बारे में कैसे समस्या पहली जगह में होता है, यहाँ जानकारी का इंतजार है: github.com/hashicorp/consul/issues/3218#issuecomment-312721634
नाथन Basanese

//, अगर कोई मुझे जवाब जोड़ना चाहता है, तो बस यहां एक टिप्पणी पोस्ट करें
नाथन बसानी

जवाबों:


1

केवल मानक निष्कासन प्रक्रियाओं की कोशिश करने के बाद ही:

$ consul leave
$ consul force-leave <node>

क्या आपको नीचे की ओर बढ़ना चाहिए, जो क्लस्टर से नोड को पूरी तरह से हटा देगा:

$ consul operator raft remove-peer

//, भूतकाल में, इसने काम किया था। केवल अब मैं अंत में इसे स्वीकृत उत्तर के रूप में चिह्नित कर रहा हूं। धन्यवाद, @tkjef
नाथन बसानी

0

//, मेरे विशिष्ट मामले के लिए, मुझे एक उत्तर मिला consul operator raft remove-peer

लेकिन मुझे इस बात की जानकारी का बेसब्री से इंतजार है कि समस्या पहले स्थान पर कैसे होती है, यहां:

https://github.com/hashicorp/consul/issues/3218#issuecomment-312721634

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.