#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
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.