Setup

Instructions for setting up a Kubernetes cluster.

Edit This Page

DCOS

DEPRECATION NOTICE: As of Kubernetes 1.6, this has been deprecated

This feature is deprecated. For more information on this state, see the Kubernetes Deprecation Policy.

This guide will walk you through installing Kubernetes-Mesos on Datacenter Operating System (DCOS) with the DCOS CLI and operating Kubernetes with the DCOS Kubectl plugin.

About Kubernetes on DCOS

DCOS is system software that manages computer cluster hardware and software resources and provides common services for distributed applications. Among other services, it provides Apache Mesos as its cluster kernel and Marathon as its init system. With DCOS CLI, Mesos frameworks like Kubernetes-Mesos can be installed with a single command.

Another feature of the DCOS CLI is that it allows plugins like the DCOS Kubectl plugin. This allows for easy access to a version-compatible Kubectl without having to manually download or install.

Further information about the benefits of installing Kubernetes on DCOS can be found in the Kubernetes-Mesos documentation.

For more details about the Kubernetes DCOS packaging, see the Kubernetes-Mesos project.

Since Kubernetes-Mesos is still alpha, it is a good idea to familiarize yourself with the current known issues which may limit or modify the behavior of Kubernetes on DCOS.

If you have problems completing the steps below, please file an issue against the kubernetes-mesos project.

Resources

Explore the following resources for more information about Kubernetes, Kubernetes on Mesos/DCOS, and DCOS itself.

Prerequisites

Install

  1. Configure and validate the Mesosphere Multiverse as a package source repository

    $ dcos config prepend package.sources https://github.com/mesosphere/multiverse/archive/version-1.x.zip
     $ dcos package update --validate
    
  2. Install etcd

    By default, the Kubernetes DCOS package starts a single-node etcd. In order to avoid state loss in the event of Kubernetes component container failure, install an HA etcd-mesos cluster on DCOS.

    $ dcos package install etcd
    
  3. Verify that etcd is installed and healthy

    The etcd cluster takes a short while to deploy. Verify that /etcd is healthy before going on to the next step.

    $ dcos marathon app list
     ID           MEM  CPUS  TASKS  HEALTH  DEPLOYMENT  CONTAINER  CMD
     /etcd        128  0.2    1/1    1/1       ---        DOCKER   None
    
  4. Create Kubernetes installation configuration

    Configure Kubernetes to use the HA etcd installed on DCOS.

    $ cat >/tmp/options.json <<EOF
     {
       "kubernetes": {
         "etcd-mesos-framework-name": "etcd"
       }
     }
     EOF
    
  5. Install Kubernetes

    $ dcos package install --options=/tmp/options.json kubernetes
    
  6. Verify that Kubernetes is installed and healthy

    The Kubernetes cluster takes a short while to deploy. Verify that /kubernetes is healthy before going on to the next step.

    $ dcos marathon app list
     ID           MEM  CPUS  TASKS  HEALTH  DEPLOYMENT  CONTAINER  CMD
     /etcd        128  0.2    1/1    1/1       ---        DOCKER   None
     /kubernetes  768   1     1/1    1/1       ---        DOCKER   None
    
  7. Verify that Kube-DNS & Kube-UI are deployed, running, and ready

    $ dcos kubectl get pods --namespace=kube-system
     NAME                READY     STATUS    RESTARTS   AGE
     kube-dns-v8-tjxk9   4/4       Running   0          1m
     kube-ui-v2-tjq7b    1/1       Running   0          1m
    

    Names and ages may vary.

Now that Kubernetes is installed on DCOS, you may wish to explore the Kubernetes Examples or the Kubernetes User Guide.

Uninstall

  1. Stop and delete all replication controllers and pods in each namespace:

    Before uninstalling Kubernetes, destroy all the pods and replication controllers. The uninstall process will try to do this itself, but by default it times out quickly and may leave your cluster in a dirty state.

    $ dcos kubectl delete rc,pods --all --namespace=default
     $ dcos kubectl delete rc,pods --all --namespace=kube-system
    
  2. Validate that all pods have been deleted

    $ dcos kubectl get pods --all-namespaces
    
  3. Uninstall Kubernetes

    $ dcos package uninstall kubernetes
    

    Support Level

IaaS Provider Config. Mgmt OS Networking Docs Conforms Support Level
DCOS Marathon CoreOS/Alpine custom docs   Community (Kubernetes-Mesos Authors)

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

Analytics

Create an Issue Edit this Page