W celu uruchomienia klastra CoreOS należy przygotować pierwszy węzeł wykonując następujące kroki:
Pobrać obraz
# cd /tmp; wget https://stable.release.core-os.net/amd64-usr/current/coreos_production_iso_image.iso
Utworzyć logiczny wolumin:
# lvcreate -L 62914560S -n coreos1 centos
Przygotować skrypt install-coreos
virt-install \
--name coreos1 \
--ram 1000 \
--disk /dev/centos/coreos1 \
--cdrom /tmp/coreos_production_iso_image.iso \
--boot cdrom \
--os-type=linux \
--os-variant=rhel6 \
--vcpus=1 \
--mac=00:16:3e:05:02:06
Po uruchomieniu maszyny wirtualnej, z poziomu konsoli systemu CoreOS należy zainstalować system na dysku:
# coreos-install -d /dev/vda -c config.yml
W celu zalogowania się do nowo utworzonego systemu trzeba instalatorowi podać plik konfiguracyjny, który m.in. zawiera dane do logowania, np.
Kolejne węzły można przygotować powtarzając powyższą procedurę, albo tworząc kopie
pierwszego węzła przy pomocy komendy dd
. Wówczas jednak trzeba uruchamiać po kolei
poszczególne węzły i na każdym z nich
zmienić nazwę węzła edytując plik /etc/hostname
zmienić tożsamość przez usunięcie pliku /etc/machine-id i wygenerowanie nowego przy
pomocy komendy systemd-machine-id-setup
usunąć katalog /var/lib/etcd2/member
Poniżej przykład pliku konfiguracyjnego /var/lib/coreos-install/user_data
, dzięki
ktoremu można utworzyć statyczny klaster złożony z pięciu węzłów o adresach
158.75.5.206-210 (każdy z węzłów ma oczywiście osobny adres i nazwę).
coreos:
etcd2:
name: infra5
initial-advertise-peer-urls: http://158.75.5.210:2380
listen-peer-urls: http://0.0.0.0:2380
listen-client-urls: http://0.0.0.0:2379,http://127.0.0.1:4001
advertise-client-urls: http://158.75.5.210:2379
initial-cluster-token: etcd-cluster-1
initial-cluster: infra1=http://158.75.5.206:2380,infra2=http://158.75.5.207:2380,\
infra3=http://158.75.5.208:2380,infra4=http://158.75.5.209:2380,\
infra5=http://158.75.5.210:2380
initial-cluster-state: new
fleet:
public-ip: 158.75.5.210
units:
- name: etcd2.service
command: start
- name: fleet.service
command: start
hostname: coreos5