#Hızlı geçiş

Rancher Failover (Docker Persistent Data) #Bölüm 1

Rancher Failover (Syncthing) #Bölüm 2

Rancher Failover (Container Transfer) #Bölüm 3

Rancher Failover (Keep Alived) #Bölüm 4


Bu bölümde docker üzerinde çalışan Rancher’ı export edip, failover olan makinemizde tekrardan ayağa kaldıracağız. Önceki bölümde de persistent data yolunu syncthing ile senkronize ettirmiştik. Bu export – import işlemini yaşanılacak sorunları minimize etmek için yapıyoruz.

Rancher01 makinemizde öncelikle çalışan Rancher’ı durduruyoruz.

root@rancher01:/# docker ps
CONTAINER ID   IMAGE              COMMAND           CREATED        STATUS        PORTS                                                                      NAMES
b793ef490644   rancher_failover   "entrypoint.sh"   23 hours ago   Up 23 hours   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   competent_aryabhata
root@rancher01:/# docker stop b793ef490644
b793ef490644

İlgili container’ı bir image haline getirelim. ÖNEMLİ OLAN KISIM, BÖLÜM 1 ‘de aldığımız yedeğin oluşturduğu container’ı commitlemek. 1. bölümde atladıysanız yani zaten persistent data yolunuz belliyse, şu adımları Rancher01 ‘de gerçekleştirin.

docker create --volumes-from <container-id> --name rancher-data-22-01-2022 rancher/rancher:latest

docker run  --volumes-from rancher-data-22-01-2022 -v $PWD:/backup:z busybox tar pzcvf /backup/rancher-data-backup-latest-22-01-2022.tar.gz /var/lib/rancher

docker run  --volumes-from e9 -v $PWD:/backup \
busybox sh -c "rm /var/lib/rancher/* -rf  && \
tar pzxvf /backup/rancher-data-backup-latest-22-01-2022.tar.gz"

Ardından commit alacağınız container kalın olarak işaretlediğim container olacak.

2e8b758cfac3   busybox                  "tar pzcvf /backup/r…"   About an hour ago   Exited (0) About an hour ago                                                                              ecstatic_napier
cee4941562ba   rancher/rancher:latest   "entrypoint.sh"          About an hour ago   Created                                                                                                   rancher-data-22-01-2022
bb544ed74f23   rancher/rancher:latest   "entrypoint.sh"          2 hours ago         Up 17 minutes                  0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   thirsty_panini
docker commit cee4941562ba rancher_failover

Daha sonra gzip ile oluşturduğumuz image ‘ı /opt/rancher klasörüne sıkıştıralım. Bu klasöre kaydetmemizin sebebi diğer sunucuya da dosya otomatik olarak yükleneceği içindir.

cd /opt/rancher
docker save rancher_failover | gzip > rancher_failover.tar.gz
image 85

Web UI üzerinde aktarımın tamamlandığından emin olduktan sonra, Rancher02 makinemize gidelim ve terminali açalım. Aşağıdaki komutlarla kaydettiğimiz image dosyasını içeri aktaralım.

cd /opt/rancher/
gunzip -c rancher_failover.tar.gz | docker load
09553cdb9792: Loading layer [==================================================>]  118.9MB/118.9MB
8327d9a97763: Loading layer [==================================================>]  93.74MB/93.74MB
bacccb0b5a8c: Loading layer [==================================================>]  5.632kB/5.632kB
b2559c712a5d: Loading layer [==================================================>]  220.7MB/220.7MB
e73e3b97d933: Loading layer [==================================================>]  84.38MB/84.38MB
07b6d1ef6bda: Loading layer [==================================================>]  36.12MB/36.12MB
a651143ab6e2: Loading layer [==================================================>]  15.01MB/15.01MB
dbe5d419b257: Loading layer [==================================================>]  88.59MB/88.59MB
862ff93efd70: Loading layer [==================================================>]  60.73MB/60.73MB
fea08b3ce8de: Loading layer [==================================================>]  124.9MB/124.9MB
61f14993222d: Loading layer [==================================================>]  3.072kB/3.072kB
f5a9493bbff4: Loading layer [==================================================>]  191.9MB/191.9MB
fcd2929f15e0: Loading layer [==================================================>]  112.4MB/112.4MB
99dd68708873: Loading layer [==================================================>]  3.072kB/3.072kB
46a69455ccfa: Loading layer [==================================================>]   5.12kB/5.12kB
866f1d0bf596: Loading layer [==================================================>]  44.39MB/44.39MB
188933311a06: Loading layer [==================================================>]  4.096kB/4.096kB
d8460fd7e9a6: Loading layer [==================================================>]  3.154MB/3.154MB
94a640c6a276: Loading layer [==================================================>]  520.3MB/520.3MB
Loaded image: rancher_failover:latest
root@rancher02:/opt/rancher# docker images
REPOSITORY         TAG       IMAGE ID       CREATED        SIZE
rancher_failover   latest    c2c8836c525b   24 hours ago   1.66GB

Şimdi bu image dosyasından Rancher’ı ayağa kaldıralım.

docker run -d --restart=unless-stopped \
 -p 80:80 -p 443:443 \
 -v /opt/rancher:/var/lib/rancher \
 --privileged \
 rancher_failover

Rancher server aktif olarak çalışacaktır fakat Rancher01 makine ip adresimiz 10.0.0.104 olduğundan ve Rancher02 sunucumuzun ip adresi 10.0.0.109 olduğundan kubernetes eski nodeları göremeyecektir. Sadece local dataları gösterecek Rancher. Bu aşamadan sonra Keepalived ile sanal ip ile yapılandıracağız böylelikle ip transferini kendisi yapacak.

image 86
image 88