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.
If you have not done so, create the swarm where MSR will run.
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.
SSH into the manager node.
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
Edit the
values.yml
file to customize your MSR deployment. Be sure to place your license in thelicense
section.license: '<license-string>'
Obtain a list of non-manager nodes along with their node IDs:
docker node ls --format "{{ .ID }}" --filter "role=worker"
In the
swarm.nodeList
section of thevalues.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>
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 thatmsr-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
todebug
, you must insert the--log-level debug
flag between themsr-installer
image and theapply
subcommand. To modify the log-level of the containers that will be deployed, uselogLevel
within thevalues.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 thevalues.yaml
file by setting the value to theglobal.externalURL
field.
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.
Review the status of the deployed services:
docker stack services msr
Access the MSR web UI at
https://<node-ip>:443
. The default username and password areadmin:password
.