Install MSR online

The procedure provided herein will guide you in your installation of MSR onto a Swarm cluster that has one manager and one worker node, with the MSR installation occurring on one worker. Be aware, though, that you can adjust the number of nodes to fit your specific needs.

Important

Mirantis recommends that you:

  • Install MSR on an odd number of nodes. To bypass the recommendation check in the apply command, add the --force option.

  • Install MSR on worker nodes only.

  1. If you have not done so, create the swarm where MSR will run.

  2. Enable all authenticated users, including service accounts, to schedule services and perform tasks on all nodes.

    Note

    If you are using MSR in conjunction with MKE, refer to Schedule services deployment on manager and MSR nodes for detailed information.

  3. SSH into the manager node.

  4. Generate the values.yml file that you will use to configure and deploy MSR:

    docker run -it --rm \
    --entrypoint cat registry.mirantis.com/msr/msr-installer:<msr-version> \
    /config/values.yml > values.yml
    
  5. Edit the values.yml file to customize your MSR deployment. Be sure to place your license in the license section.

    license: '<license-string>'
    
  6. Obtain a list of non-manager nodes along with their node IDs:

    docker node ls --format "{{ .ID }}" --filter "role=worker"
    
  7. In the swarm.nodeList section of the values.yml file, add the node IDs of the worker nodes on which you plan to install MSR:

    swarm:
      nodeList:
        - <node-id-1>
        - <node-id-2>
        - <node-id-3>
    
  8. Execute the apply command to install MSR:

    docker run \
      --rm \
      -it \
      -v /var/run/docker.sock:/var/run/docker.sock \
      -v <path-to-values.yml>:/config/values.yml \
      registry.mirantis.com/msr/msr-installer:<msr-version> \
      apply \
      --https-port 8443 \
      --http-port 8888
    

    Note

    • For MSR 3.1.4 or earlier use the install command instead of the apply command.

    • If you do not specify any worker nodes on which to install MSR, the process fails. You must specify at least one node within swarm.nodeList to indicate the node that msr-installer should use.

    • You must specify the destination file in the destination container as :/config/values.yml \. Any other name will cause the container deployment to fail, which will result in the cluster becoming inoperable.

    • To switch the log-level from the default info to debug, you must insert the --log-level debug flag between the msr-installer image and the apply subcommand. To modify the log-level of the containers that will be deployed, use logLevel within the values.yml file.

    • Port 8443 is indicated in the provided example, demonstrating a scenario in which MKE and MSR are both in use and have a conflict with port 443. Port 443 should be used exclusively for all other installation configurations.

    • To configure the host or load balancer URL for accessing MSR, use the --external-url flag at the time of installation or upgrade. You can use the flag alongside such options as --https-port or --http-port, for example --external-url msr.example.com. Alternatively, the external URL can be configured in the values.yaml file by setting the value to the global.externalURL field.

  9. Optional. Use a load balancer to expose services externally in the swarm. MSR on Swarm relies on Ingress load balancing. Refer to the official Load balancing documentation for more information.

  10. Review the status of the deployed services:

    docker stack services msr
    
  11. Access the MSR web UI at https://<node-ip>:443. The default username and password are admin:password.