Nav

To Migrate Anypoint Platform Private Cloud Edition, Version 1.5.x to 1.6.1

This topic describes how to migrate from Anypoint Platform Private Cloud Edition version 1.5.x to version 1.6.1. These procedures are applicable to 1, 3, and 6 node environment.

During the migration process, there may be some downtime as each node is migrated.

Prerequisites

Before migrating, ensure that you have performed and met the following prerequisites:

  • Perform a backup of your system as described in About Backup and Recovery.

  • Ensure that your environment meets all of the system and network requirements described in About Minimum System Requirements

  • Enable TCP ports 5973, 3022, 7373 intra-node to enable communication with the database cluster.

  • Ensure you have permission to run the sudo command on the node where you launch the migration tool.

  • Ensure the kubectl command is available in the node where you are performing the migration. To verify that kubectl is installed, run the following:

    $ sudo gravity enter
    $ kubectl
  • Enable port 10248 on your load balancer.

    The platform uses this port to perform health checks on the load balancer.

Performing the Upgrade

  1. Obtain the anypoint-1.6.1-installer.tar.gz archive from your customer success representative.

  2. Determine the master node of your cluster by running the following command:

    $ systemctl status | grep gravitational
       │     └─25249 grep --color=auto gravitational
         ├─gravity__gravitational.io__teleport__1.2.0.service
         ├─gravity__gravitational.io__planet-master__0.1.39-138.service

    You may have to run this command on each node of your cluster. The node that displays planet-master is the master node.

  3. Use ssh to login to the master node of your cluster.

  4. Upload the installer to the master node of your cluster.

  5. Create a directory and uncompress the installer archive.

    mkdir anypoint-1.6.1
    tar -xzf anypoint-1.6.1-installer.tar.gz -C anypoint-1.6.1
  6. Navigate to the anypoint-1.6.1 directory, then run the upload script.

    cd anypoint-1.6.1
    sudo ./upload

    This command uploads data to the master node and performs internal updates.

    Wait until the command finishes before proceeding to the next step. Depending on your network configuration, this command may take a while to complete. When the the upload command completes successfully, it displays the following message:

    new application anypoint 1.6.1 has been uploaded
  7. Download the update script and copy it to each node in your cluster.

    1. Download script from the following URL

      https://anypoint-anywhere.s3.amazonaws.com/1.6.1-GA/manual_update_161.sh?Signature=xTkDlF%2F1OKFYtjG2lXPZcuc2itY%3D&Expires=1536705930&AWSAccessKeyId=AKIAITTY5MSTT3INJ7XQ
    2. Copy the script to directory on the master node where you ran the ./upload.

    3. Copy script to the other nodes in your environment.

  8. Export RBAC bootstrap package.

    From the master node, run the following command:

    ./manual_update_161.sh export-rbac
  9. Scale down deployments

    From the master node, run the following command:

    ./manual_update_161.sh scale-down
  10. Initiate the update operation

    From the master node, run the following command:

    ./manual_update_161.sh start-update
  11. Bootstrap the system update process

    From the master node, run the following command:

    ./manual_update_161.sh bootstrap-system
  12. Peform the system update by logging into each node of your cluster and running the following command.

    ./manual_update_161.sh update-system

    +You must run this command sequentially on each node of your cluster. Wait until this command completes on one node before running it on the next node.

  13. Bootstrap the RBAC configuration in the cluster

    From the master node, run the following command:

    ./manual_update_161.sh bootstrap-rbac
  14. Run the following command to determine the name of each node in your cluster:

    kubectl get nodes
    NAME          STATUS    AGE
    172.31.0.25   Ready     19h
    172.31.0.37   Ready     19h
    172.31.0.9    Ready     19h

    The node name for each node in your cluster is displayed in the name column. Record these names for use in a later step.

  15. Exit the gravity shell

    exit
  16. Drain and uncordon each node in your cluster. Draining a node stops all containers running on the node. Uncordoning a node ensures that the node is schedulable.

    1. Login to each node of your cluster.

    2. Drain the node by passing the node name of the node you are logged into:

      ./manual_update_161.sh drain=<node-name>

      Before continuing, you must ensure that all pods are in running or pending state. No pod should be in crashloopbackoff or terminating state.

    3. Uncordon the node by passing the node name of the node you are logged into:

      ./manual_update_161.sh uncordon=<node-name>
  17. From the master node, start the application update:

    ./manual_update_161.sh update-app
  18. If you are upgrading a one node environment, fix the LDAP config directory permissions by running the following:

    ./manual_update_161.sh fix-ldap
  19. Finalize and complete the update operation

    ./manual_update_161.sh finalize-update