Klaster CoreOS

Tworzenie pojedynczego węzła

W celu uruchomienia klastra CoreOS należy przygotować pierwszy węzeł wykonując następujące kroki:

  1. Pobrać obraz

    # cd /tmp; wget https://stable.release.core-os.net/amd64-usr/current/coreos_production_iso_image.iso
    
  2. Utworzyć logiczny wolumin:

    # lvcreate -L 62914560S -n coreos1 centos
    
  3. 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
    
  4. 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.

Tworzenie kolejnych węzłów

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

  1. zmienić nazwę węzła edytując plik /etc/hostname

  2. zmienić tożsamość przez usunięcie pliku /etc/machine-id i wygenerowanie nowego przy pomocy komendy systemd-machine-id-setup

  3. usunąć katalog /var/lib/etcd2/member

Klaster statyczny

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

Klaster dynamiczny