Guides

How to get started, and achieve tasks, using Kubernetes

Edit This Page

CoreOS on Rackspace

In general, the dev-build-and-up.sh workflow for Rackspace is the similar to Google Compute Engine. The specific implementation is different due to the use of CoreOS, Rackspace Cloud Files and the overall network design.

These scripts should be used to deploy development environments for Kubernetes. If your account leverages RackConnect or non-standard networking, these scripts will most likely not work without modification.

NOTE: The rackspace scripts do NOT rely on saltstack and instead rely on cloud-init for configuration.

The current cluster design is inspired by:

Prerequisites

  1. Python2.7
  2. You need to have both nova and swiftly installed. It’s recommended to use a python virtualenv to install these packages into.
  3. Make sure you have the appropriate environment variables set to interact with the OpenStack APIs. See Rackspace Documentation for more details.

Provider: Rackspace

Build

  1. The Kubernetes binaries will be built via the common build scripts in build/.
  2. If you’ve set the ENV KUBERNETES_PROVIDER=rackspace, the scripts will upload kubernetes-server-linux-amd64.tar.gz to Cloud Files.
  3. A cloud files container will be created via the swiftly CLI and a temp URL will be enabled on the object.
  4. The built kubernetes-server-linux-amd64.tar.gz will be uploaded to this container and the URL will be passed to master/nodes when booted.

Cluster

There is a specific cluster/rackspace directory with the scripts for the following steps:

  1. A cloud network will be created and all instances will be attached to this network.
    • flanneld uses this network for next hop routing. These routes allow the containers running on each node to communicate with one another on this private network.
  2. A SSH key will be created and uploaded if needed. This key must be used to ssh into the machines (we do not capture the password).
  3. The master server and additional nodes will be created via the nova CLI. A cloud-config.yaml is generated and provided as user-data with the entire configuration for the systems.
  4. We then boot as many nodes as defined via $NUM_NODES.

Some notes

Network Design

Support Level

IaaS Provider Config. Mgmt OS Networking Docs Conforms Support Level
Rackspace CoreOS CoreOS flannel docs   Community (@doublerr)

For support level information on all solutions, see the Table of solutions chart.

Analytics