2015-09-04 2 views
5

У нас есть следующая проблема. В нашем кластере URL изменился. Как только мы изменили конфигурацию, чтобы отразить эти изменения, URL-адреса не обновлялись на 'discovery.etcd.io'. Поэтому наша идея состояла в том, чтобы просто использовать новый токен. Это, однако, не работает. Кластер не регистрируется в новом токене на 'discovery.etcd.io'. Мы не хотим переустанавливать каждый раз, когда мы меняем URL-адрес или токен. Есть ли способ лучше? Переустановка работ без проблем.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. Stop etcd и все зависимые службы (например, фланель, флот и т.д., которые зависят от etcd2): systemctl остановить etcd2

  2. Удалить etcd файлы данных из/вар/Библиотека/etcd2/* (или путь в ETCD_DATA_DIR)

  3. Изменение лексема открытие в файле облака конфигурирования хранится в:/вар/Lib/coreos установить/user_data

  4. Reboot.

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 
Смежные вопросы