Как настроить кластер CoreOS в нескольких центрах обработки данных?
Я думал, что это так же просто, как использование публичного ip вместо приватного ip, чтобы машины могли видеть друг друга, но это не так.
Вот мой файл конфигурации облака, который является очень основным.
#cloud-config
coreos:
etcd:
# generate a new token for each unique cluster from https://discovery.etcd.io/new
discovery: https://discovery.etcd.io/<token>
# use $public_ipv4 if your datacenter of choice does not support private networking
addr: $public_ipv4:4001
peer-addr: $public_ipv4:7001
fleet:
public-ip: $public_ipv4 # used for fleetctl ssh command
units:
- name: etcd.service
command: start
- name: fleet.service
command: start
Что мне нужно, чтобы кластер охватывал несколько центров обработки данных? Например, я использую Digital Ocean и предоставляю машину в Сингапуре, другую в Нью-Йорке и другую в Амстердаме.
Мой дополнительный вопрос заключается в том, что, поскольку я не могу легко найти поддержку для этого варианта использования, мне интересно, не является ли это рекомендуемым способом использования CoreOS, и если нет, не могли бы вы сказать мне, каков предпочтительный способ распределения моих служб по нескольким центры обработки данных?
1 ответ
Вы можете сделать это, но это требует настройки вашего кластера etcd. Расстояния, о которых вы говорите, довольно большие, поэтому ожидайте использовать длительные тайм-ауты. Другие документы здесь: https://coreos.com/etcd/docs/2.0.8/tuning.html