Get started with Launchpad

Launchpad is a command-line deployment and lifecycle-management tool that enables users on any Linux, Mac, or Windows machine to easily install, deploy, modify, and update MKE, MSR, and MCR.

Set up a deployment environment

To fully evaluate and use MKE, MSR, and MCR, Mirantis recommends installing Launchpad on a real machine (Linux, Mac, or Windows) or a virtual machine (VM) that is capable of running:

  • A graphic desktop and browser, for accessing or installing:

    • The MKE web UI

    • Lens, an open source, stand-alone GUI application from Mirantis (available for Linux, Mac, and Windows) for multi-cluster management and operations

    • Metrics, observability, visualization, and other tools

  • kubectl (the Kubernetes command-line client)

  • curl, Postman and/or client libraries, for accessing the Kubernetes REST API

  • Docker and related tools for using the Docker Swarm CLI, and for containerizing workloads and accessing local and remote registries.

The machine can reside in different contexts from the hosts and connect with those hosts in several different ways, depending on the infrastructure and services in use. It must be able to communicate with the hosts via their IP addresses on several ports. Depending on the infrastructure and security requirements, this can be relatively simple to achieve for evaluation clusters (refer to Networking Considerations for more information).

Configure hosts

A cluster is comprised of at least one manager node and one or more worker nodes. At the start, Mirantis recommends deploying a small evaluation cluster, with one manager and at least one worker node. Such a setup will allow you to become familiar with Launchpad, with the procedures for provisioning nodes, and with the features of MKE, MSR, and MCR. In addition, if the deployment is on a public cloud, the setup will minimize costs.

Ultimately, Launchpad can deploy manager and worker nodes in any combination, creating many different cluster configurations, such as:

  • Small evaluation clusters, with one manager and one or more worker nodes.

  • Diverse clusters, with Linux and Windows workers.

  • High-availability clusters, with two, three, or more manager node.

  • Clusters that Launchpad can auto-update, non-disruptively, with multiple managers (allowing one-by-one update of MKE without loss of cluster cohesion) and sufficient worker nodes of each type to allow workloads be drained to new homes as each node is updated.

The hosts must be able to communicate with one another (and potentially, with users in the outside world) by way of their IP addresses, using many ports. Depending on infrastructure and security requirements, this can be relatively simple to achieve for evaluation clusters (refer to Networking Considerations).

Install Launchpad

Note

Launchpad has built-in telemetry for tracking tool use. The telemetry data is used to improve the product and overall user experience. No sensitive data about the clusters is included in the telemetry payload.

  1. Download Launchpad.

  2. Rename the downloaded binary to launchpad, move it to a directory in the PATH variable, and give it permission to run (execute permission).

    Tip

    If macOS is in use it may be necessary to give Launchpad permissions in the Security & Privacy section in System Preferences.

  3. Verify the installation by checking the installed tool version with the launchpad version command.

    $ launchpad version
    # console output:
    
    version: 1.0.0
    
  4. Complete the registration. Please be aware that the registration information will be used to assign evaluation licenses and to provide Launchpad use help.

    $ launchpad register
    
    name: Anthony Stark
    company: Stark Industries
    email: astark@example.com
    I agree to Mirantis Launchpad Software Evaluation License Agreement https://github.com/Mirantis/launchpad/blob/master/LICENSE [Y/n]: Yes
    INFO[0022] Registration completed!
    

Create a Launchpad configuration file

The cluster is configured using a yaml file.

In the example provided, a simple two-node MKE cluster is set up using Kubernetes: one node for MKE and one for a worker node.

  1. In your editor, create a new file and copy-paste the following text as-is:

    apiVersion: launchpad.mirantis.com/mke/v1.3
    kind: mke
    metadata:
      name: mke-kube
    spec:
      mke:
        adminUsername: admin
        adminPassword: passw0rd!
        installFlags:
        - --default-node-orchestrator=kubernetes
      hosts:
      - role: manager
        ssh:
          address: 172.16.33.100
          keyPath: ~/.ssh/my_key
      - role: worker
        ssh:
          address: 172.16.33.101
          keyPath: ~/.ssh/my_key
    
  2. Save the file as launchpad.yaml.

  3. Adjust the text to meet your infrastructure requirements. The model should work to deploy hosts on most public clouds.

    If you’re deploying on VirtualBox or some other desktop virtualization solution and are using bridged networking, it will be necessary to make a few minor adjustments to the launchpad.yaml.

    • Deliberately set a –pod-cidr to ensure that pod IP addresses don’t overlap with node IP addresses (the latter are in the 192.168.x.x private IP network range on such a setup)

    • Supply appropriate labels for the target nodes’ private IP network cards using the privateInterface parameter (this typically defaults to enp0s3 on Ubuntu 18.04 (other Linux distributions use similar nomenclature).

    In addition, it may be necessary to set the username for logging in to the host.

    apiVersion: launchpad.mirantis.com/mke/v1.3
    kind: mke
    metadata:
      name: my-mke
    spec:
      mke:
        adminUsername: admin
        adminPassword: passw0rd!
        installFlags:
          - --default-node-orchestrator=kubernetes
          - --pod-cidr 10.0.0.0/16
      hosts:
      - role: manager
        ssh:
          address: 192.168.110.100
          keyPath: ~/.ssh/id_rsa
          user: theuser
        privateInterface: enp0s3
      - role: worker
        ssh:
          192.168.110.101
          keyPath: ~/.ssh/id_rsa
          user: theuser
        privateInterface: enp0s3
    

For more complex setups, Launchpad offers a full set of configuration options.

Note

Users who are familiar with Terraform can automate the infrastructure creation using Mirantis Terraform examples as a baseline.

Bootstrap your cluster

You can start the cluster once the cluster configuration file is fully set up. In the same directory where you created the launchpad.yaml file, run:

$ launchpad apply

The launchpad tool uses a cryptographic network protocol (SSH on Linux systems, SSH or WinRM on Windows systems) to connect to the infrastructure specified in the launchpad.yaml and configures on the hosts everything that is required. Within a few minutes the cluster should be up and running.

Connect to the cluster

Launchpad will present the information needed to connect to the cluster at the end of the installation procedure. For example:

INFO[0021] ==> Running phase: MKE cluster info
INFO[0021] Cluster is now configured.  You can access your admin UIs at:
INFO[0021] MKE cluster admin UI: https://test-mke-cluster-master-lb-895b79a08e57c67b.elb.eu-north-1.example.com
INFO[0021] You can also download the admin client bundle with the following command: launchpad client-config

By default, the administrator username is admin. If the password is not supplied in launchpad.yaml installFlags option like --admin-password=supersecret, the generated admin password will display in the install flow.

INFO[0083] 127.0.0.1:  time="2020-05-26T05:25:12Z" level=info msg= "Generated random admin password: wJm-TzIzQrRNx7d1fWMdcscu_1pN5Xs0"

Important

The addition or removal of nodes in subsequent Launchpad runs will fail if the password is not provided in the launchpad.yaml file.

See also

Kubernetes