Building CoreOS Server Cluster on the CenturyLink Cloud

Updated by Bryan Friedman on Oct 14, 2014
Overview

CoreOS is a lightweight Linux-based operating system that is designed to run Docker containers. CoreOS is not currently supported natively as a VM template within the CenturyLink Cloud Control Portal, however it can be installed by using a self-managed PXE/DHCP Server and a dedicated network. This is easy to set up using the blueprints that have been created to help with the provisioning of a CoreOS cluster.

Note: These same instructions can be followed to setup a Panamax server in CenturyLink Cloud. Instead of the "CoreOS Server" blueprint, just use the "CoreOS Server with Panamax" blueprint below and all other steps are the same. For more information, you can reference the installation instructions on the Panamax support site.

Basic Instructions

The basic steps are as follows, with further details below.

  1. Create a dedicated network (VLAN) in the data center you wish to install CoreOS servers.
  2. Deploy the "DHCP-PXE Server" blueprint.
    • Make sure to deploy to the data center/VLAN you set up in Step 1 above.
  3. Deploy the "CoreOS Server" blueprint to add the first server and create the cluster.
    • For the "Execute on Server" option, be sure to select the name of the DHCP server you created in the previous step, not the CoreOS machine you are currently creating. (This is a very important step.)
    • The server credentials entered will not actually be used to login to the server as you will use SSH key authorization to access your CoreOS servers.
    • In the "SSH Public Key" field, you may provide the full string of a public key to be used for logging into the CoreOS server over SSH. (If you do not provide a value here, you will have to access the CoreOS server by first using SSH to login to the DHCP server and then using SSH from there to login to the CoreOS server.)
    • After the Blueprint task is complete, view the "build log" and search for the text "IP Address of CoreOS Server" to obtain the IP address that was used for deploying the server. Take note of this address for future use as it will not be displayed in Control.
  4. Deploy the "CoreOS Server" blueprint for each additional server you'd like to add to the cluster.
    • Repeat Step 3 for adding additional CoreOS servers into the cluster.

(Note: There are some limitations to the functionality that the Control Portal provides for interacting with these CoreOS servers.)

Detailed Steps

Setup Network

(You may also reference the article, Creating and Deleting VLANs for more details about the below steps.)

  1. In the main drop down menu, select "Networks".
  2. Change to the data center that you wish to provision to.
  3. Select "Add Network". This will kick off a new blueprint to add a network to your account.
  4. On the network page, select the data center that the network was added to.
  5. Select the network that was just added.
  6. Click on "Edit" and give the network a more friendly name and description such as "CoreOS | 10.xxx.xxx" and then select "Save". This will make it so you can more easily find and select this specific VLAN later. 

Deploy DHCP-PXE Server

  1. In the main drop down menu, select "Blueprints Library".
  2. Make sure the data center is selected that you wish to provision to (the same one where you setup the network above).
  3. Find the blueprint called "DHCP-PXE Server" and click it.
  4. This will open the details of the blueprint. From here, click "deploy blueprint" to begin the process of provisioning the server.
    dhcp-blueprint.jpg
  5. The following page will now be displayed, requiring you to enter in some information about the server to be deployed:
    • Enter a strong password (twice)
    • Select the server group you wish the server to be created in (Default Group is shown here, but you may select a different one if you have created a separate one for your CoreOS cluster for example)
    • Select the network that you created in the first steps above
    • Specify the primary and secondary DNS servers
    • Choose the desired server type (if available) and service level
    • You may also choose to rename the server instead of "DHCP"
    • Leave "Specify Credential" options set to "no"
    deploy-dhcp.jpg

    Now click the "next: step 2" button at the bottom of the page to move on to the next step.
  6. You can now review the selected settings and go back to the previous page (using the links on the left side) if you need to make any changes. If everything looks good, click the "deploy blueprint" button at the bottom of the page to start the blueprint deployment.
  7. This will add the blueprint to the queue. Once it completes successfully, you should see a new server set up in the group and data center that you chose during deployment. This server will act as the DHCP and PXE server for the CoreOS servers you will create in the following steps.

Deploy First CoreOS Server

  1. In the main drop down menu, select "Blueprints Library".
  2. Make sure the same data center is selected that you chose in the previous steps.
  3. Find the blueprint called "CoreOS Server" and click it.
  4. This will open the details of the blueprint. From here, click "deploy blueprint" to begin the process of provisioning the server.
  5. The following page will now be displayed, requiring you to enter in some information about the server to be deployed:
    • Enter a strong password (twice) (Note: This password will not actually be used to login to the server as you will use SSH key authorization to access your CoreOS servers. However, you are still required to enter a strong password here in order to deploy the blueprint.)
    • Select the server group you wish the server to be created in (Default Group is shown here, but you may select a different one if you have created a separate one for your CoreOS cluster for example)
    • Select the network that you created in the first steps above
    • Specify the primary and secondary DNS servers
    • Choose the desired server type (if available) and service level
    • You may also choose to rename the server instead of "COREOS"
    • Leave "Specify Credential" options set to "no"
    • Very Important Step: For "Execute on Server", select the name of the DHCP server you created in the previous step, NOT the COREOS machine you are currently creating. The script to install CoreOS runs remotely from the DHCP server, not on the CoreOS server itself since, as specified above, the password will not work to login directly to the CoreOS machine.
    • Optionally, you may provide the full string of a public key to be used for logging into the CoreOS server over SSH in the "SSH Public Key" field. If you do not provide a value here, you will have to access the CoreOS server by first using SSH to login to the DHCP server using the password provided when deploying that server, and then using SSH from there to login to the CoreOS server. (For information about how to generate an SSH key pair, you can follow the instructions here.)
    deploy-coreos.jpg

    Now click the "next: step 2" button at the bottom of the page to move on to the next step.
  6. You can now review the selected settings and go back to the previous page (using the links on the left side) if you need to make any changes. If everything looks good, click the "deploy blueprint" button at the bottom of the page to start the blueprint deployment.
  7. This will add the blueprint to the queue and take you to the "Request Details" page for the task. Wait for the task to complete, and when it has successfully completed, click the "build log" button.
    coreos-queue-complete.jpg
  8. This should display a message log with details from the blueprint deployment.
    • Search for the text "Server: " and you should find the name of the server that was just deployed.
    • Search for the text "IP Address of CoreOS Server" on the page and you should find a message that says "IP Address of CoreOS Server: 10.xxx.xxx.xxx" with the IP address that was used for the server. Take note of this address for future use. (You may even wish to add it to the Description field on the server details page for the server with the name you found in the above step.)
    • Right below the IP Address message, you should also see the discovery URL that was used for the CoreOS cluster as well as the cloud-config file that was generated during install in case you find these helpful for interacting with your CoreOS server cluster. 
  9. You should now see a new server set up in the group and data center that you chose during deployment with the name you found next to "Server: " in the previous step. This is your first CoreOS server in the cluster. If you provided a public SSH key, you should be able to login directly to the server using the command ssh [email protected] where 10.xxx.xxx.xxx is the IP address you took note of in the previous step. If you did not provide a public SSH key, you can access the server by first logging into the DHCP server you provisioned, and then using the ssh [email protected] command from within that server to login to the CoreOS box.

Note: While you will be able to perform some power operations on this server (on/off/reboot), other functionality within Control Portal when controlling this server will be limited. Here are some specific details around this limited functionality:

  • Control Portal will not know or display the IP address of this server. This is why steps 7 and 8 above are very important so you can be sure to capture the IP address information at build time.
  • As already mentioned above, though an "Admin Server Password" was set and can be retrieved from Control Portal, this password cannot be used to login to the server, which will require SSH key authentication instead.
  • The "snapshot", "clone", "convert to template", and "archive" options on the server details page may result in failure or unpredictable behavior.
  • You will not be able to "add public ip" using the "add public ip" option on the server details page. 
  • CoreOS is a "read only" OS, so normal methods of expanding filesystems will not be successful. To increase space on this OS, you will need to add space to the 0:0 drive via control, and then reboot the machine. Adding space to the 0:1 partition, or adding additional drives is not possible at this time

Deploy Additional CoreOS Servers into the Cluster

You can repeat steps 1-9 from above, following the same procedure you did to create your first CoreOS server, and the blueprint will add it to the cluster that was created at the time that the first CoreOS server was provisioned.

If you would like to create a new cluster in the same VLAN, first rename the file discovery-url that is found in the home root directory of the DHCP server, then provision a new CoreOS server following the above steps and it will create a different cluster.

If you wish to add the CoreOS server to an existing cluster, simply populate the discovery-url file found in the home root directory of the DHCP server with the correct discovery URL of the cluster you would like to add the server to. (You will need to ensure that the VLAN you set the DHCP and CoreOS server up in has connectivity to the other servers in the cluster for this to work.)

Customer Support

Can’t find what you need?
Give us a call.

1.888.638.6771

M – F, 8am to 6pm