github.com/apprenda/kismatic@v1.12.0/docs/upgrade/v1.3.0/etcd.md (about)

     1  # Etcd Upgrade
     2  
     3  Prior to Kismatic `v1.3.0`, all cluster deployments were composed of two versions of etcd:
     4  
     5  - Kubernetes etcd with version `v3.0.x`
     6  - Calico etcd with version `v2.3.x`
     7  
     8  With Kismatic `v1.3.0`, both versions of etcd will be upgraded to etcd `v.3.1.x`
     9  which is not backwards compatible with etcd `v2.3.x` or `v3.0.x`.
    10  
    11  In addition, `v1.3.0` ships Kubernetes `v1.6.0` which defaults to the etcd v3 API. During the upgrade, Kismatic will migrate the kubernetes data using the etcd tooling. Before performing the migration, the Kubernetes API servers will be shut down to prevent writes to the etcd cluster. This means that your cluster will experience temporary downtime, even in the case where multiple API servers are running.
    12  
    13  ## Upgrading Calico etcd `v2.3.x` to `v.3.0.x`
    14  
    15  On an etcd cluster that has more than one member, it is not possible to directly 
    16  upgrade from `v2.3.x` to `v.3.1.x`. All nodes in the cluster must be upgraded to `v3.0.x`,
    17  and then upgraded to `v.3.1.x`.
    18  
    19  The following is performed on each node, one node at a time:
    20  
    21  1. Install `transition-etcd` package containing the etcd `v3.0` binaries: `etcd_v3_0`, `etcdctl_v3_0`
    22  1. Backup etcd data to `/etc/etcd_networking/backup/$timestamp`
    23  1. Restart the `etcd_networking` service
    24  1. Wait until the node has caught up with the rest of the cluster
    25  1. Verify cluster with `etcdctl_v3_0 --endpoint='https://127.0.0.1:6666 cluster-health`
    26  
    27  ## Upgrading Kubernetes and Calico etcd `v3.0.x` to `v.3.1.x`
    28  
    29  The following is performed on each node, one node at a time:
    30  
    31  1. Remove old `kismatic-etcd` and `transition-etcd` packages
    32  1. Install new `etcd` package, which contains the following binaries: `etcd_k8s`, `etcd_networking` and `etcdctl`
    33  1. Backup etcd data to `/etc/etcd_k8s/backup/$timestamp`
    34  1. Restart the `etcd_k8s` service
    35  1. Wait until the member has caught up with rest of the cluster
    36  1. Verify Kubernetes etcd cluster with `etcdctl --endpoint='https://127.0.0.1:2379 cluster-health`
    37  1. Backup etcd data to `/etc/etcd_networking/backup/$timestamp`
    38  1. Restart the `etcd_networking` service
    39  1. Wait until the member has caught up with the rest of the cluster
    40  1. Verify Calico etcd cluster with `etcdctl --endpoint='https://127.0.0.1:6666 cluster-health`
    41  
    42  Note: Downgrading etcd is not possible once all members are upgraded to `v3.1.x`.