7-minute read

Post by Mesosphere’s Phil Simpson and Microsoft’s Rob Bagby

We are happy to announce the availability of Mesosphere DC/OS Enterprise in the Azure Marketplace. DC/OS Enterprise on Azure allows organizations to eliminate the lag time of procuring new hardware and related equipment while simultaneously accelerating hybrid initiatives and reducing the waste incurred as capital and operational costs.

Built on Apache Mesos, DC/OS, provides a unified platform for a wide range of workloads from Docker container orchestration to big data (i.e., SMACK stack) and machine learning. DC/OS Enterprise builds on open source DC/OS and has additional capabilities, including multi-tenancy, security capabilities such as encrypted control plane for compliance, and based secrets management service.

In this post, we will walk through how you can easily deploy Mesosphere DC/OS from the Azure Marketplace and help your businesses decrease time to market, save on cloud and infrastructure costs, and ensure resilient applications.

Prerequisites

Azure subscription: If you don’t have one, sign up for a free trial. For a larger cluster, consider a pay-as-you go subscription or other purchase options.
Note: Your Azure subscription usage and resource quotas, such as cores quotas, can limit the size of the cluster you deploy. To request a quota increase, open an online customer support request at no charge.

SSH RSA public key: When deploying through the portal or one of the Azure quickstart templates, you need to provide the public key for authentication against Azure Container Service virtual machines. To create Secure Shell (SSH) RSA keys, see the OS X and Linux or Windows guidance.

Deploying Enterprise DC/OS on Azure

The first thing we need to do is to deploy Enterprise DC/OS in Azure. The following will step you through the process:

1) Log in to the Azure portal

2) Search for and choose ‘Enterprise DC/OS on Azure’

  • Click ‘Create a resource’
  • Type ‘DC/OS’ in the search box (don’t forget the forward slash)
  • Choose ‘Enterprise DC/OS on Azure’

3) Deploy the DC/OS cluster

  • Click ‘Create’

4) Fill in details for Blade 1 – Basics – and click ‘OK’

  • DC/OS cluster name: This is the name of your cluster.
  • SSH public key: This is the SSH public key used to authenticate with the cluster. See the links in the prerequisites section for further details on how to create a key.
  • Disable password login: This indicates whether or not you are able to SSH into the Jump VM using username and password. If you set this to true, you will be required to SSH using the SSH key.
  • SSH password: This is the password to login to the Jump VM if password login is enabled.
  • Enterprise customer key: This is the GUID key you received from Mesosphere. For more information on obtaining an Enterprise DC/OS license please click here.
  • Enable Oauth authentication: This enables the ability for external Oauth providers to be added. You can find more information like Adding OpenID Connect Identity Providers listed here.
  • Subscription: This is the Azure subscription you will create the cluster under.
  • Resource Group: Enter the name of a new Resource Group or choose an existing one.
  • Location: Select an Azure region for the Azure Container Service deployment.

5) Fill in details for Blade 2 – DC/OS Details – and click ‘OK’

  • DC/OS Username: This is the superuser for your cluster.
  • DC/OS Password: This is the password for the superuser for your cluster.
  • DC/OS Enterprise URL: This is the URL for the DC/OS EE installer. Leave the default unless Mesosphere has provided you with a URL to a custom installer.

6) Fill in details for Blade 3 – Private Agent Details – and click ‘OK’

  • Number of Private Agent Nodes: Choose the number of nodes you want in the private agent pool. The private agent pool is where the vast majority of your containers/applications will run.
  • Private Agent VM Size: Choose the VM size for the nodes in the private agent pool. You can find a description of Linux VM sizes in Azure here.

7) Fill in details for Blade 4 – Public Agent Details – and click ‘OK’

  • Number of public agent nodes: Choose the number of nodes you want in the public agent pool. The public agent pool is where you will typically run software defined load balancers for publicly accessible workloads.
  • Public agent VM size: Choose the VM size for the nodes in the public agent pool. You can find a description of Linux VM sizes in Azure here.

8) Validate your choices in Blade 5 – Summary – and click ‘OK’

9) Read through the Terms of Use in Blade 6 – Buy – and if you agree with the terms, click ‘Create’

Connecting to DC/OS UI

Once the cluster has been created, you will likely want to connect to the DC/OS UI. If you set ‘Disable password login’ to false you can use the following steps to login to the DC/OS UI.

1) Login to the Azure portal

2) Click on the Resource Group containing your cluster

3) Click on the ‘1 Succeeded’ link under Deployments

4) Click on the deployment

5) Copy the DCOSLOGINURL output

6) Paste the URL into a browser
Note: you will receive a self-signed certificate error. Depending upon your browser, follow the steps to go to the site and ignore the warning.

7) Please note: there is currently a bug when you first go to the DC/OS Login page. You may see the following:

  • Redirected back to the certificate error page – Follow steps from step 7 again. You may be redirected here more than once.
  • Redirected to a blank page – If you hit this, please refresh the browser.

8) Login with the DC/OS Username and DC/OS Password you entered in Blade 2 above.

9) You should be logged in to the DC/OS UI

Installing and configuring the DC/OS CLI

Once the cluster has been created, you will likely want to install the CLI (if you have not already done so) and configure it for your cluster. The following is the Mesosphere guidance on installing the CLI.

Once you have the CLI installed on your system, the guidance indicates that you should run the following command:
dcos cluster setup http://example.com

The question you may rightly have is: “What do I enter for http://example.com.” The answer is that you need to find the DNS name for the Public IP that is sitting in front of the Load Balancer for the master(s). The following are the steps to find the DNS name:
1) Login to the Azure portal
2) Click on the Resource Group containing your cluster

3) Sort the resources by type and locate the public IP for the master Load Balancer. Click it.

4) Copy the DNS Name

5) Given the above example, I would run the following command:

dcos cluster setup http://dcosy7gmij7vsqjpc.westus.cloudapp.azure.com

6) Enter the DC/OS Username and DC/OS Password you entered in blade 2 when prompted.

You should now have the CLI installed and configured.

SSH to nodes

The cluster has a jumpVM that you can SSH into. From there you can SSH into the other nodes such as the private agent nodes.

Get the SSH string

Regardless if you are using Bash or Putty on windows, you need the SSH string. The following steps illustrate how to get to it from the Azure portal.
1) Login to the Azure portal
2) Click on the Resource Group containing your cluster

3) Click on the ‘1 Succeeded’ link under Deployments

4) Click on the deployment

5) Copy the JUMPCONNECTIONSTRING to the clipboard

SSH from Bash

The following steps illustrate how to SSH into the jump box node from a Bash shell.
1) Open a bash shell.
2) Paste the JUMPCONNECTIONSTRING into the shell.
3) Enter ‘core’ for the username.
4) Enter the SSH Password (the password you set when you created the SSH key) for the password.

The following steps illustrate how to SSH into an agent (or master node) from a Bash shell.
1) First, we need to get the private IP address for the node we want to SSH to login to the Azure portal.
2) Click on the Resource Group containing your cluster.

3) Sort the resources by type, then click on the dcosVirtualNetwork link.

4) Find the IP address to the node you want to SSH into. For example, in my cluster, if I want to SSH into the first private agent, the IP address is 10.32.8.4.

5) From the Bash shell where you SSHed into the jump box, type the following command:
ssh core@the_ipaddress_of_your_node. In my example: ssh core@10.32.8.4

SSH From Putty

The following steps illustrate how to SSH into the jump box VM from putty.
1) Ensure that you have Putty and Pageant installed on your machine. You can find the latest downloads here.
2) Configure Pageant:

  • Run Pageant – double-click on the exe
  • Pageant will be running. You can see it in your trey

  • Double click on the icon
  • Choose add key
  • Enter your private SSH key
  • Enter the SSH password

3) Run Putty

  • Run Putty – double-click on the exe
  • Under Host Name, enter the DNS name for the jumpbox. The easiest way to find the DNS name is from the JUMPBOXCONNECTIONSTRING we found earlier. The DNS name is the bit after ‘core@’

  • Press ‘open’
  • Under ‘Login as:’ Enter ‘core’
  • You should be logged in to the Jump box

In order to SSH into an agent, you can follow the same steps as in the Bash instructions.

Run a Simple Workload

Follow the instructions here in order to deploy a load balanced web app.

Any questions? Let us know in the comments.