- 4 serwery Ubuntu 16.04.4 LTS,
- 2048 GB RAM-u każdy z serwerów.
Zaczynamy od wpisania do "/etc/hosts" każdego z serwerów informacji o nazwach i adresach IP wszystkich maszyn z naszej sieci GlusterFS. Dla przykładu:
Dodajemy wszędzie informację o repozytorium:192.168.33.30 kubernetes-master1192.168.33.31 kubernetes-worker1192.168.33.32 kubernetes-worker2192.168.33.33 kubernetes-worker3
sudo add-apt-repository ppa:gluster/glusterfs-3.11Aktualizujemy bazę:
sudo apt-get updateInstalujemy oprogramowanie:
sudo apt-get install glusterfs-serverZe względów bezpieczeństwa wyłączamy aktualizację pakietów GlusterFS:
sudo apt-mark hold glusterfs*Startujemy oprogramowanie i dodajemy konfigurację, która uruchamia usługę podczas startu systemu:
sudo systemctl start glusterdNa pierwszy z serwerów sprawdzamy po kolei czy w sieci są dostępne wszystkie węzły:
sudo systemctl enable glusterd
vagrant@kubernetes-master1:~$ sudo gluster peer probe kubernetes-worker1Tworzymy wolumen:
peer probe: success.
vagrant@kubernetes-master1:~$ sudo gluster peer probe kubernetes-worker2
peer probe: success.
vagrant@kubernetes-master1:~$ sudo gluster peer probe kubernetes-worker3
peer probe: success.
vagrant@kubernetes-master1:~$ sudo gluster volume create gvol0 replica 4 kubernetes-master1:/data kubernetes-worker1:/data kubernetes-worker2:/data kubernetes-worker3:/data forceOpcja "force" utworzy nam katalog na serwerach jeżeli takowy nie istnieje.
volume create: gvol0: success: please start the volume to access data
Aktualnie każdy komputer ma dostęp bez żadnych restrykcji do naszego wolumenu z danymi więc dopuszczamy połączenie montujące tylko z:
vagrant@kubernetes-master1:~$ sudo gluster volume set gvol0 auth.allow 127.0.0.1Startujemy wolumen i wyświetlamy informacje na jego temat:
volume set: success
vagrant@kubernetes-master1:~$ sudo gluster volume start gvol0Na każdym serwerze tworzymy katalog "/mnt/gluster".
volume start: gvol0: success
vagrant@kubernetes-master1:~$ sudo gluster volume status
Status of volume: gvol0
Gluster process TCP Port RDMA Port Online Pid
------------------------------------------------------------------------------
Brick kubernetes-master1:/data 49152 0 Y 17935
Brick kubernetes-worker1:/data 49152 0 Y 8542
Brick kubernetes-worker2:/data 49152 0 Y 8411
Brick kubernetes-worker3:/data 49152 0 Y 8472
Self-heal Daemon on localhost N/A N/A Y 17955
Self-heal Daemon on kubernetes-worker3 N/A N/A Y 8492
Self-heal Daemon on kubernetes-worker2 N/A N/A Y 8431
Self-heal Daemon on kubernetes-worker1 N/A N/A Y 8562
Task Status of Volume gvol0
------------------------------------------------------------------------------
There are no active volume tasks
vagrant@kubernetes-master1:~$ sudo gluster volume info
Volume Name: gvol0
Type: Replicate
Volume ID: ab3ed814-191e-4288-ae1e-341f9a1bca40
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 4 = 4
Transport-type: tcp
Bricks:
Brick1: kubernetes-master1:/data
Brick2: kubernetes-worker1:/data
Brick3: kubernetes-worker2:/data
Brick4: kubernetes-worker3:/data
Options Reconfigured:
auth.allow: 127.0.0.1
transport.address-family: inet
nfs.disable: on
Na każdej z maszyn montujemy wolumen (w zależności od tego na której jesteś to zmień nazwę) np.:
sudo mount -t glusterfs kubernetes-master1:/gvol0 /mnt/glusterTeraz możemy manipulować zawartością tylko w "/mnt/gluster", ale pojawi sie ona również w katalogu "/data".
Każdej maszynie dodajemy wpis w "/etc/fstab" (w zależności od tego na której jesteś to zmień nazwę) np.:
kubernetes-master1:/gvol0 /mnt/gluster glusterfs defaults,_netdev 0 0