github.com/enmand/kubernetes@v1.2.0-alpha.0/docs/getting-started-guides/rackspace.md (about)

     1  <!-- BEGIN MUNGE: UNVERSIONED_WARNING -->
     2  
     3  <!-- BEGIN STRIP_FOR_RELEASE -->
     4  
     5  <img src="http://kubernetes.io/img/warning.png" alt="WARNING"
     6       width="25" height="25">
     7  <img src="http://kubernetes.io/img/warning.png" alt="WARNING"
     8       width="25" height="25">
     9  <img src="http://kubernetes.io/img/warning.png" alt="WARNING"
    10       width="25" height="25">
    11  <img src="http://kubernetes.io/img/warning.png" alt="WARNING"
    12       width="25" height="25">
    13  <img src="http://kubernetes.io/img/warning.png" alt="WARNING"
    14       width="25" height="25">
    15  
    16  <h2>PLEASE NOTE: This document applies to the HEAD of the source tree</h2>
    17  
    18  If you are using a released version of Kubernetes, you should
    19  refer to the docs that go with that version.
    20  
    21  <strong>
    22  The latest 1.0.x release of this document can be found
    23  [here](http://releases.k8s.io/release-1.0/docs/getting-started-guides/rackspace.md).
    24  
    25  Documentation for other releases can be found at
    26  [releases.k8s.io](http://releases.k8s.io).
    27  </strong>
    28  --
    29  
    30  <!-- END STRIP_FOR_RELEASE -->
    31  
    32  <!-- END MUNGE: UNVERSIONED_WARNING -->
    33  Getting started on Rackspace
    34  ----------------------------
    35  
    36  **Table of Contents**
    37  
    38  - [Introduction](#introduction)
    39  - [Prerequisites](#prerequisites)
    40  - [Provider: Rackspace](#provider-rackspace)
    41  - [Build](#build)
    42  - [Cluster](#cluster)
    43  - [Some notes:](#some-notes)
    44  - [Network Design](#network-design)
    45  
    46  ## Introduction
    47  
    48  * Supported Version: v0.18.1
    49  
    50  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.
    51  
    52  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.
    53  
    54  NOTE: The rackspace scripts do NOT rely on `saltstack` and instead rely on cloud-init for configuration.
    55  
    56  The current cluster design is inspired by:
    57  - [corekube](https://github.com/metral/corekube)
    58  - [Angus Lees](https://github.com/anguslees/kube-openstack)
    59  
    60  ## Prerequisites
    61  
    62  1. Python2.7
    63  2. You need to have both `nova` and `swiftly` installed. It's recommended to use a python virtualenv to install these packages into.
    64  3. Make sure you have the appropriate environment variables set to interact with the OpenStack APIs. See [Rackspace Documentation](http://docs.rackspace.com/servers/api/v2/cs-gettingstarted/content/section_gs_install_nova.html) for more details.
    65  
    66  ## Provider: Rackspace
    67  
    68  - To build your own released version from source use `export KUBERNETES_PROVIDER=rackspace` and run the `bash hack/dev-build-and-up.sh`
    69  - Note: The get.k8s.io install method is not working yet for our scripts.
    70    * To install the latest released version of Kubernetes use `export KUBERNETES_PROVIDER=rackspace; wget -q -O - https://get.k8s.io | bash`
    71  
    72  ## Build
    73  
    74  1. The Kubernetes binaries will be built via the common build scripts in `build/`.
    75  2. If you've set the ENV `KUBERNETES_PROVIDER=rackspace`, the scripts will upload `kubernetes-server-linux-amd64.tar.gz` to Cloud Files.
    76  2. A cloud files container will be created via the `swiftly` CLI and a temp URL will be enabled on the object.
    77  3. 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.
    78  
    79  ## Cluster
    80  
    81  There is a specific `cluster/rackspace` directory with the scripts for the following steps:
    82  
    83  1. A cloud network will be created and all instances will be attached to this network.
    84    - 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.
    85  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).
    86  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.
    87  4. We then boot as many nodes as defined via `$NUM_MINIONS`.
    88  
    89  ## Some notes
    90  
    91  - The scripts expect `eth2` to be the cloud network that the containers will communicate across.
    92  - A number of the items in `config-default.sh` are overridable via environment variables.
    93  - For older versions please either:
    94   * Sync back to `v0.9` with `git checkout v0.9`
    95    * Download a [snapshot of `v0.9`](https://github.com/kubernetes/kubernetes/archive/v0.9.tar.gz)
    96   * Sync back to `v0.3` with `git checkout v0.3`
    97    * Download a [snapshot of `v0.3`](https://github.com/kubernetes/kubernetes/archive/v0.3.tar.gz)
    98  
    99  ## Network Design
   100  
   101  - eth0 - Public Interface used for servers/containers to reach the internet
   102  - eth1 - ServiceNet - Intra-cluster communication (k8s, etcd, etc) communicate via this interface. The `cloud-config` files use the special CoreOS identifier `$private_ipv4` to configure the services.
   103  - eth2 - Cloud Network - Used for k8s pods to communicate with one another. The proxy service will pass traffic via this interface.
   104  
   105  
   106  <!-- BEGIN MUNGE: GENERATED_ANALYTICS -->
   107  [![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/docs/getting-started-guides/rackspace.md?pixel)]()
   108  <!-- END MUNGE: GENERATED_ANALYTICS -->