Move rancher/server container with volumes to other host + change of DNS name (Host Registration URL/CATTLE_URL/API URL) for Rancher 1.6
This applies to Rancher 1.6 only
- Old URL: http://old.test.com:8080
- New URL: http://new.test.com:8080
- Container name running
rancher/server
image:rancher_server
- Old host:
oldhost
- New host:
newhost
- Go to Admin -> Settings and change the Host Registration URL to http://new.test.com:8080
- Stop the docker container running the
rancher/server
image onoldhost
sudo docker stop rancher_server
- Backup the files of the MySQL database on
oldhost
sudo docker run --rm --volumes-from rancher_server-v $(pwd):/backup busybox tar cvf /backup/mysql.tar /var/lib/mysql
- Transfer the resulting archive (
mysql.tar
) over fromoldhost
tonewhost
- Restore the files of the MySQL database to a new data volume
- Create data volume:
sudo docker create -v /var/lib/mysql --name rancher-data busybox true
- Extract archive into data volume:
sudo docker run --rm --volumes-from rancher-data -v $(pwd):/backup busybox tar xvf /backup/mysql.tar
- Check contents of data volume:
sudo docker run --rm --volumes-from rancher-data busybox ls /var/lib/mysql
- Create data volume:
- Run
rancher/server
using the data-volume onnewhost
docker run -d -p 8080:8080 --volumes-from=rancher-data --restart=unless-stopped rancher/server:v1.6.10
- Check that no SQL errors appear
- We need to re-register any hosts running
rancher/agent
because of the changed URL- In the UI, go to Infrastructure -> Hosts, Add Host, Custom
- Copy the command and run it on every host running the
rancher/agent
container
- Because of rancher/rancher#9307 we need to delete the containers belonging to the following infrastructure services:
- Be aware, delete containers only, not stacks or services as they will not return otherwise.
- metadata
- healthcheck
- loadbalancers
- scheduler should recover itself, but you can delete this aswell
- Wait for infrastructure services to become active/green
Is there a guide to import a cluster, created and managed using Rancher 2.1 interface, with apps, ingresses, etc. deployed, to another Rancher instance?
I managed to do the import, but the workloads, ingresses etc., are not visible through the Rancher instance, where the cluster was imported. The apps, that were running on the imported cluster, continued to operate.