2015-09-04 7 views
5

हमें निम्नलिखित समस्या है। हमारे क्लस्टर में यूआरएल बदल गया है। एक बार जब हमने उन परिवर्तनों को दर्शाने के लिए कॉन्फ़िगरेशन को बदल दिया, तो urls 'discovery.etcd.io' पर अपडेट नहीं हुआ। तो हमारा विचार सिर्फ एक नया टोकन का उपयोग करना था। हालांकि यह काम नहीं करता है। क्लस्टर 'discovery.etcd.io' पर नए टोकन के साथ पंजीकृत नहीं है। जब भी हम यूआरएल या टोकन बदलते हैं, हम हर बार पुनर्स्थापित नहीं करना चाहते हैं। क्या कोई बेहतर तरीका है? किसी समस्या के बिना काम को पुनर्स्थापित करना।कोरोस - एक नया टोकन कैसे उपयोग करें?

#cloud-config 
hostname: server1 
coreos: 
    etcd2: 
    # generate a new token for each unique cluster from https://discovery.etcd.io/new?size=3 
    discovery: https://discovery.etcd.io/<our token> 
    # multi-region and multi-cloud deployments need to use $public_ipv4 
    advertise-client-urls: server1:2379 
    initial-advertise-peer-urls: server1:2380 
    # listen on the official ports 
    listen-client-urls: server1:2379 
    listen-peer-urls: server1:2380 
    #fleet: 
    # public-ip: server1 
    # metadata: region=eu-central-1 
    #update: 
    # reboot-strategy: etcd-lock 
    units: 
    - name: etcd2.service 
     command: start 
    # - name: fleet.service 
    # command: start 
ssh_authorized_keys: 
    <our ssh keys> 

उत्तर

4

आप बार-बार फिर से स्थापित करने की जरूरत नहीं है:

बुनियादी बैकअप प्रक्रिया की तरह है। निम्न प्रक्रिया क्लस्टर को चरण-दर-चरण प्राप्त करने में मददगार है, बजाय एक बड़ी क्लाउड-कॉन्फ़िगर फ़ाइल जो डीबग करना मुश्किल है।

  1. बंद करो etcd और सभी निर्भर सेवाएं (फलालैन, बेड़ा, आदि कि etcd2 पर निर्भर करते हैं) की तरह: रोक systemctl etcd2

  2. से etcd डेटा फ़ाइलें हटाएँ/var/lib/etcd2/* (या ETCD_DATA_DIR में पथ)

  3. बदलें बादल कॉन्फ़िगर में संग्रहीत फ़ाइल में खोज टोकन:/var/lib/coreos से स्थापित/user_data

  4. रीबूट।

2

discovery.etcd.io केवल बूटस्ट्रैपिंग के लिए प्रयोग किया जाता है: यदि आप उदाहरण के लिए https://discovery.etcd.io/new?size=3 साथ मेजबान के एक नंबर के लिए एक टोकन का अनुरोध और आप मूल रूप से वह URL आपके 3 मेजबान bootstrap करने के लिए सुरक्षित रखते हैं।

क्लस्टर बूटस्ट्रैप होने के बाद, क्लस्टर में नोड्स अब अपने स्थानीय भंडारण का उपयोग करते हैं: आपके 3 नोड्स को खोज अंतराल के माध्यम से एक दूसरे को जानना पड़ता है, और अब एक क्लस्टर बनाते हैं जिसमें वह जानकारी है, इसलिए वे नहीं खोज एंडपॉइंट की अब आवश्यकता है।

तो यदि आप 'नया' टोकन का उपयोग करते हैं, तो आपका क्लस्टर वास्तव में इसका उपयोग नहीं करेगा क्योंकि यह पहले से ही बूटस्ट्रैप किया गया है, क्योंकि नोड्स पहले से ही स्वयं का समूह बनाते हैं। एक नए क्लस्टर को बूटस्ट्रैप करने के लिए, आपको प्रत्येक नोड पर स्थानीय डेटा को हटाने की आवश्यकता है।

मैं सुझाव दूंगा कि यदि आप नए क्लस्टर में जाने के लिए आवश्यक अन्य डेटा हैं तो माइग्रेशन प्रलेखन पढ़ते हैं।

etcdctl backup \ 
     --data-dir /var/lib/etcd \ 
     --backup-dir /tmp/etcd_backup 
संबंधित मुद्दे