2015-09-04 56 views
5

我們遇到以下問題。在我們的集羣中,網址已經改變。一旦我們更改了配置以反映這些更改,網址並未在'discovery.etcd.io'上更新。所以我們的想法是隻使用一個新的令牌。但是這不起作用。該集羣不會在'discovery.etcd.io'上註冊新標記。我們不希望每次更改網址或令牌時重新安裝。有沒有更好的辦法?重新安裝工作沒有問題。CoreOS - 如何使用新的令牌?

#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臺主機。

集羣啓動後,集羣中的節點現在使用自己的本地存儲:您的3個節點通過發現端點相互認識,現在形成一個具有該信息的集羣,因此它們不會需要發現端點了。

因此,如果您使用'新'令牌,您的羣集將不會實際使用它,因爲它已經被引導,因爲節點已經形成了自己的羣集。 要引導新集羣,您需要刪除每個節點上的本地數據。

如果您需要移動到新羣集的其他數據,我建議您閱讀遷移文檔。

基本的備份過程是這樣的:

etcdctl backup \ 
     --data-dir /var/lib/etcd \ 
     --backup-dir /tmp/etcd_backup 
相關問題