Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Back Up and Restore Contrail Etcd

SUMMARY Learn how to back up and restore the Contrail etcd database.

In release 22.1, Contrail stores its data in the main OpenShift etcd database. When you back up and restore the main etcd database in release 22.1, you implicitly back up and restore Contrail data.

Starting in release 22.2, Contrail stores its data in its own etcd database. Use the procedures in this section to back up and restore the Contrail etcd database.

Back Up the Contrail Etcd Database in Release 22.2

Use this example procedure in release 22.2 to back up the Contrail etcd database. In release 22.2, you run etcdctl commands in the contrail-etcd pods themselves.

  1. Get a list of the contrail-etcd pods.
    Take note of the contrail-etcd pod names and IP addresses. You will refer to these names and IP addresses in the next step.
  2. Back up the etcd database.
    1. Get a shell into one of the contrail-etcd pods.
      For example:where contrail-etcd-xxx is the etcd pod that you want to get a shell into.
    2. Back up the etcd database.
      This example saves the database to /tmp/etcdbackup.db.where <etcd-pod-ip> is the IP address of the pod and the <etcd-port> is the port that etcd is listening on (by default, 12379).
  3. Copy the database to a safe location.
    For example:where contrail-etcd-xxx is the etcd pod where you backed up the database.

Restore the Contrail Etcd Database in Release 22.2

Use this example procedure in release 22.2 to restore the Contrail etcd database from a snapshot.
  1. Copy the snapshot to all the contrail-etcd pods.
    Repeat for the other contrail-etcd pods.
  2. Restore the snapshot.
    1. Get a shell into one of the contrail-etcd pods.
      For example:where contrail-etcd-xxx is the etcd pod that you want to get a shell into.
    2. Restore the etcd database.
      This creates a <contrail-etcd-xxx>.etcd directory on the pod. where <contrail-etcd-xxx> is the name of the contrail-etcd pod that you're currently in and <contrail-etcd-xxx-ip> is the IP address of that pod. The <contrail-etcd-yyy> and <contrail-etcd-zzz> refer to the other contrail-etcd pods.
    3. Repeat for the other contrail-etcd pods, substituting the --name and --initial-advertise-peer-urls values with the respective contrail-etcd pod name and IP address.
  3. Copy the saved etcd data from the contrail-etcd pods to their respective control plane nodes.
    1. SSH into one of the control plane nodes.
    2. Copy the saved contrail-etcd-xxx.etcd from the respective contrail-etcd pod to the node.
      For example:where contrail-etcd-xxx is the name of the contrail-etcd pod on the control plane node that you logged in to.
    3. Repeat for the other control plane nodes.
  4. Stop the contrail-etcd pods.
    This sets the replicas to 0, which effectively stops the pods.
  5. Replace contrail-etcd data with the data from the snapshot.
    1. SSH into one of the control plane nodes.
    2. Replace the data.
      where contrail-etcd-xxx is the name of the contrail-etcd pod on the control plane node that you logged in to.
    3. Repeat for the other control plane nodes.
  6. Start the contrail-etcd pods.
    This sets the replicas to 3, which effectively starts the pods.
  7. Restart the contrail-system apiserver and controller.
    Delete all the contrail-k8s-apiserver and contrail-k8s-controller pods.These pods will automatically restart.
  8. Restart the vrouters.
    Delete all the contrail-vrouter-masters and contrail-vrouter-nodes pods.These pods will automatically restart.
  9. Check that all pods are in running state.