fbpx

The following tutorial covers importing an existing Elastigroup running a Kubernetes cluster to Ocean.

Considerations

Ocean manages the entire K8s cluster nodes. if the nodes are distributed across multiple Elastigroups, all of these Elastigroups should be migrated at once.

Prerequisites

To complete this tutorial, gather the following information:

  1. List the Elstigroups connected with the target Kubenetes Cluster
    1. For each of the elastigroups, save the following data for future use
      1. Autoscaler labels
      2. User-data script
      3. AMI id
  2. From one of the Elastigroups, get the Cluster Identifier (Id). This is used to connect the existing Spotinst Controller installed on the Kubernetes cluster to Ocean.
  3. Instance Id of an instance within the Elastigroup. The instance selected is used to import the cluster configurations.

Step 1: Disable Autoscaling on the imported elastigroups

The first step is to disable the autoscaling in the source groups to allow Ocean to take over.

  • Navigate to the Elastigroups configured for your Kubernetes cluster.
  • For each of the groups, perform the following steps:
    • Click Edit Configuration under the Actions menu.
    • Scroll down to the Advanced section
    • Remove the Autoscaler selection.
    • Continue to the review page and click Update to commit the changes.

Step 2: Create an Ocean Cluster

  • In the sidebar, navigate to the Cloud Clusters view located under Ocean.
  • Click on the Create Cluster button to open the Ocean Creation Wizard.
  • Enter a Cluster Name and the Elastigroup’s Cluster Identifier.
  • Select a Region to deploy the Ocean cluster into.
  • Enter the Instance Id from which to import the cluster configuration from.
  • Click Next

  • Confirm or modify the configurations imported by the Ocean Creation Wizard.

  • Click Test Connectivity to ensure the controller functionality

Step 3: Configure Ocean Custom Launch Specifications

The next step is to configure the Ocean cluster to handle all the different label sets configured on the current Elastigroups.

  • Navigate to your Ocean cluster
  • Click on the Actions menu and select Custom Launch Specifications
  • For each of the Elastigroups running the Worker Nodes
    • Click Add Specification
    • Add the Labels sets gathered as part of the prerequisites
    • Set the matching User-Data and AMI
  • Click Save Changes to commit changes

Step 4: Downscale The Source Elastigroups

The last step is to downscale the existing worker nodes and allow Ocean to launch the proper instances to fit the cluster needs.

  • Navigate to the Elastigroups configured for your Kubernetes cluster.
  • On the Actions menu, Click Manage Capacity
  • Reduce the target capacity
    • Note: It is highly recommended to reduce the target capacity in batches of 10-20% and repeat this step until complete downscale
  • Navigate to your Ocean Cluster and verify that it is spinning up the required resources and handles the cluster pending pods.

 

Step 5: Sit back and relax, Ocean got you covered!

In case of any issues please contact our support engineers via chat or email