k3s/cluster/juju/charms/trusty/kubernetes-master
Matt Bruzek 7a387a87a1 Changes necessary to enable ssl for the Juju charms
Squashed commit of the following:

commit dedaccffdc1d797b5f23e0004280c2fcc0ecffa9
Merge: 24c3585 f03a267
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Tue Sep 15 17:07:42 2015 -0500

    Merge branch 'master' of github.com:kubernetes/kubernetes into enable-ssl

commit 24c358566cc0963fb86dc057db15739f031ba6f6
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Tue Sep 15 16:44:58 2015 -0500

    Fixing problems with verify-boilerplate.

commit a64443352c64498255ac98fc0da1a7d8d5934485
Merge: f152794 ee3f662
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Tue Sep 15 15:43:08 2015 -0500

    Merge branch 'enable-ssl' of github.com:mbruzek/kubernetes into enable-ssl

    Conflicts:
    	cluster/juju/util.sh

commit f152794502c017ae7d3cff0351d8bf44b7311883
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Wed Sep 9 14:12:21 2015 -0500

    Fixes for problems found in testing.

commit 94effa4827d5f30c60621e9133c4526c187e40b4
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Wed Sep 9 12:34:37 2015 -0500

    Making updates for changes in master branch.

commit a81795b44e57d54b8b4ae486ca6ea8164ac8fc6b
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Wed Sep 9 11:39:36 2015 -0500

    pep8 fix

commit 53a862caea02c4b35f8cd19b1549fda29e040f12
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Wed Sep 9 11:37:31 2015 -0500

    Adding diagnostic log messages and reloading nginx.

commit 96411a924fb05e2e58534cce94d9a1e51d7db9af
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Wed Sep 9 11:19:31 2015 -0500

    Making the check user logic cleaner.

commit a0243b34cdda2f865e559bd4812c5a78ab6f6f05
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Wed Sep 9 11:18:04 2015 -0500

    Open port 6443 for ssl enablement.

commit e8423614763aa6d650089c735c3dc1893bf73993
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Wed Sep 9 11:16:54 2015 -0500

    Generating certificates and adding config options.

commit 6570a818e252f2cb156a577094ba987dec834fe1
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Wed Sep 9 11:14:56 2015 -0500

    Removing the http configuration adding https config.

commit e624bd79f8840b71b141a111bca7c6091b677575
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Wed Sep 9 11:13:04 2015 -0500

    Changed the distribution nginx config slightly.

commit c497911170268ee75bed53afeb5fa32ff44c82af
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Wed Sep 9 10:57:17 2015 -0500

    Adding the crt and key to the apiserver flags.

commit 6c1e76c5de31eb4d0f800065ce4bc96a82801846
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Wed Sep 9 10:56:15 2015 -0500

    Adding the cert and key configuration parameters.

commit 55da910d473efa0be0af5efccf2336612525986e
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Wed Sep 9 10:49:46 2015 -0500

    Adding a requirements file to install path.py with pip -r

commit 27a39686af89e134268be50ce5e4fc36cffdf2b3
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Fri Aug 21 16:34:56 2015 -0500

    Making the install hook idempotent.

commit ee3f66287ba045592f932c3a41aeb8e0167a9235
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Wed Sep 9 14:12:21 2015 -0500

    Fixes for problems found in testing.

commit 3dfdbb0e21d79da66617f7a29e6dd8d977528057
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Wed Sep 9 12:34:37 2015 -0500

    Making updates for changes in master branch.

commit df9c297fe27c63713fc0d7dbd461b2d47133614c
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Wed Sep 9 11:39:36 2015 -0500

    pep8 fix

commit 645b25d9cc84555ca7af5c75e3f0b1300aaa9f48
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Wed Sep 9 11:37:31 2015 -0500

    Adding diagnostic log messages and reloading nginx.

commit 57654320bd73dc4dd52d6d56021d40a97c6ed893
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Wed Sep 9 11:37:02 2015 -0500

    Removing xtrace.

commit a0e8cd98353e7cd411786bc8836fe99a77cde3ba
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Wed Sep 9 11:19:31 2015 -0500

    Making the check user logic cleaner.

commit 6c6eb7ff02d6dbf66d3175b715e957b00a861525
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Wed Sep 9 11:18:04 2015 -0500

    Open port 6443 for ssl enablement.

commit 29f18cc95ff96de1a48f72af2cff2e37420a43c7
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Wed Sep 9 11:16:54 2015 -0500

    Generating certificates and adding config options.

commit c9bdaa499552980153ff263a1ab9b4fa73a0536a
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Wed Sep 9 11:14:56 2015 -0500

    Removing the http configuration adding https config.

commit ec33e66a159a4b44207353b16741c7fad2e4ee0d
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Wed Sep 9 11:13:04 2015 -0500

    Changed the distribution nginx config slightly.

commit 96dc16879c0dd230569ceb928f9f7bf92ff8ab3f
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Wed Sep 9 10:57:17 2015 -0500

    Adding the crt and key to the apiserver flags.

commit 308799502c0a22f214408395f5efa4821d075374
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Wed Sep 9 10:56:15 2015 -0500

    Adding the cert and key configuration parameters.

commit 7f407a4356de8703ff2f237432084f35910d8abd
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Wed Sep 9 10:49:46 2015 -0500

    Adding a requirements file to install path.py with pip -r

commit f800ae1152076758d4db203fdbecf6d945c0e892
Author: Matt Bruzek <matthew.bruzek@canonical.com>
Date:   Fri Aug 21 16:34:56 2015 -0500

    Making the install hook idempotent.

Resolving verification problems.
2015-09-17 15:23:02 -05:00
..
actions Add juju action to start petstore example 2015-05-19 09:47:08 -05:00
files Changes necessary to enable ssl for the Juju charms 2015-09-17 15:23:02 -05:00
hooks Changes necessary to enable ssl for the Juju charms 2015-09-17 15:23:02 -05:00
unit_tests Changes necessary to enable ssl for the Juju charms 2015-09-17 15:23:02 -05:00
.bzrignore
.gitignore
.vendor-rc
Makefile
README.md Updated all the references of GoogleCloudPlatform/kubernetes repo name to the new kubernetes/kubernetes 2015-08-13 15:29:48 -05:00
actions.yaml Add juju action to start petstore example 2015-05-19 09:47:08 -05:00
config.yaml Changes necessary to enable ssl for the Juju charms 2015-09-17 15:23:02 -05:00
copyright Changing the copyright to the Google. 2015-04-22 16:40:16 -05:00
icon.svg
metadata.yaml Add juju action to start petstore example 2015-05-19 09:47:08 -05:00
notes.txt
requirements.txt

README.md

Kubernetes Master Charm

Kubernetes is an open source system for managing containerized applications across multiple hosts. Kubernetes uses Docker to package, instantiate and run containerized applications.

The Kubernetes Juju charms enable you to run Kubernetes on all the cloud platforms that Juju supports.

A Kubernetes deployment consists of several independent charms that can be scaled to meet your needs

Etcd

Etcd is a key value store for Kubernetes. All persistent master state is stored in etcd.

Flannel-docker

Flannel is a software defined networking component that provides individual subnets for each machine in the cluster.

Docker

Docker is an open platform for distributing applications for system administrators.

Kubernetes master

The controlling unit in a Kubernetes cluster is called the master. It is the main management contact point providing many management services for the worker nodes.

Kubernetes minion

The servers that perform the work are known as minions. Minions must be able to communicate with the master and run the workloads that are assigned to them.

Usage

Deploying the Development Focus

To deploy a Kubernetes environment in Juju :

juju deploy cs:~kubernetes/trusty/etcd
juju deploy cs:trusty/flannel-docker
juju deploy cs:trusty/docker
juju deploy local:trusty/kubernetes-master
juju deploy local:trusty/kubernetes

juju add-relation etcd flannel-docker
juju add-relation flannel-docker:network docker:network
juju add-relation flannel-docker:docker-host docker
juju add-relation etcd kubernetes
juju add-relation etcd kubernetes-master
juju add-relation kubernetes kubernetes-master

Use the 'juju quickstart' command to deploy a Kubernetes cluster to any cloud supported by Juju.

The charm store version of the Kubernetes bundle can be deployed as follows:

juju quickstart u/kubernetes/kubernetes-cluster

Note: The charm store bundle may be locked to a specific Kubernetes release.

Alternately you could deploy a Kubernetes bundle straight from github or a file:

juju quickstart -i https://raw.githubusercontent.com/whitmo/bundle-kubernetes/master/bundles.yaml

The command above does few things for you:

  • Starts a curses based gui for managing your cloud or MAAS credentials
  • Looks for a bootstrapped deployment environment, and bootstraps if required. This will launch a bootstrap node in your chosen deployment environment (machine 0).
  • Deploys the Juju GUI to your environment onto the bootstrap node.
  • Provisions 4 machines, and deploys the Kubernetes services on top of them (Kubernetes-master, two Kubernetes minions using flannel, and etcd).
  • Orchestrates the relations among the services, and exits.

Now you should have a running Kubernetes. Run juju status --format=oneline to see the address of your kubernetes-master unit.

For further reading on Juju Quickstart

Go to the Getting started with Juju guide for more information about deploying a development Kubernetes cluster.

Post Deployment

To interact with the kubernetes environment, either build or download the kubectl binary (available in the releases binary tarball) and point it to the master with :

$ juju status kubernetes-master | grep public
public-address: 104.131.108.99
$ export KUBERNETES_MASTER="104.131.108.99"

Configuration

For you convenience this charm supports changing the version of kubernetes binaries. This can be done through the Juju GUI or on the command line:

juju set kubernetes version=”v0.10.0”

If the charm does not already contain the tar file with the desired architecture and version it will attempt to download the kubernetes binaries using the gsutil command.

Congratulations you know have deployed a Kubernetes environment! Use the kubectl to interact with the environment.

Kubernetes information

Analytics