diff --git a/docs/admin/README.md b/docs/admin/README.md
index b170991ffa..a97adad6fd 100644
--- a/docs/admin/README.md
+++ b/docs/admin/README.md
@@ -56,6 +56,8 @@ Before choosing a particular guide, here are some things to consider:
- If you are configuring kubernetes on-premises, you will need to consider what [networking
model](networking.md) fits best.
- If you are designing for very high-availability, you may want [clusters in multiple zones](multi-cluster.md).
+ - You may want to familiarize yourself with the various
+ [components](cluster-components.md) needed to run a cluster.
## Setting up a cluster
diff --git a/docs/admin/cluster-components.md b/docs/admin/cluster-components.md
new file mode 100644
index 0000000000..1de6dbdebe
--- /dev/null
+++ b/docs/admin/cluster-components.md
@@ -0,0 +1,150 @@
+
+
+
+
+
+
+
+
+
+
+
PLEASE NOTE: This document applies to the HEAD of the source tree
+
+If you are using a released version of Kubernetes, you should
+refer to the docs that go with that version.
+
+
+The latest 1.0.x release of this document can be found
+[here](http://releases.k8s.io/release-1.0/docs/admin/cluster-components.md).
+
+Documentation for other releases can be found at
+[releases.k8s.io](http://releases.k8s.io).
+
+--
+
+
+
+
+# Kubernetes Cluster Admin Guide: Cluster Components
+
+This document outlines the various binary components that need to run to
+deliver a functioning Kubernetes cluster.
+
+## Master Components
+
+Master components are those that provide the cluster's control plane. For
+example, master components are responsible for making global decisions about the
+cluster (e.g., scheduling), and detecting and responding to cluster events
+(e.g., starting up a new pod when a replication controller's 'replicas' field is
+unsatisfied).
+
+Master components could in theory be run on any node in the cluster. However,
+for simplicity, current set up scripts typically start all master components on
+the same VM, and does not run user containers on this VM. See
+[high-availability.md](high-availability.md) for an example multi-master-VM setup.
+
+Even in the future, when Kubernetes is fully self-hosting, it will probably be
+wise to only allow master components to schedule on a subset of nodes, to limit
+co-running with user-run pods, reducing the possible scope of a
+node-compromising security exploit.
+
+### kube-apiserver
+
+[kube-apiserver](kube-apiserver.md) exposes the Kubernetes API; it is the front-end for the
+Kubernetes control plane. It is designed to scale horizontally (i.e., one scales
+it by running more of them-- [high-availability.md](high-availability.md)).
+
+### etcd
+
+```etcd``` is used as Kubernetes' backing store. All cluster data is stored here.
+Proper administration of a Kubernetes cluster includes a backup plan for etcd's
+data.
+
+### kube-controller-manager
+
+[kube-controller-manager](kube-controller-manager.md) is a binary that runs controllers, which are the
+background threads that handle routine tasks in the cluster. Logically, each
+controller is a separate process, but to reduce the number of moving pieces in
+the system, they are all compiled into a single binary and run in a single
+process.
+
+These controllers include:
+
+* Node Controller
+ * Responsible for noticing & responding when nodes go down.
+* Replication Controller
+ * Responsible for maintaining the correct number of pods for every replication
+ controller object in the system.
+* Endpoints Controller
+ * Populates the Endpoints object (i.e., join Services & Pods).
+* Service Account & Token Controllers
+ * Create default accounts and API access tokens for new namespaces.
+* ... and others.
+
+### kube-scheduler
+
+[kube-scheduler](kube-scheduler.md) watches newly created pods that have no node assigned, and
+selects a node for them to run on.
+
+### addons
+Addons are pods and services that implement cluster features. They don't run on
+the master VM, but currently the default setup scripts that make the API calls
+to create these pods and services does run on the master VM. See:
+[kube-master-addons](../../cluster/saltbase/salt/kube-master-addons/kube-master-addons.sh)
+
+Addon objects are created in the "kube-system" namespace.
+
+Example addons are:
+* [DNS](../../cluster/addons/dns/) provides cluster local DNS.
+* [kube-ui](../../cluster/addons/kube-ui/) provides a graphical UI for the
+ cluster.
+* [fluentd-elasticsearch](../../cluster/addons/fluentd-elasticsearch) provides
+ log storage. Also see the [gcp version](../../cluster/addons/fluentd-gcp).
+* [cluster-monitoring](../../cluster/addons/cluster-monitoring) provides
+ monitoring for the cluster.
+
+## Node components
+
+Node components run on every node, maintaining running pods and providing them
+the Kubernetes runtime environment.
+
+### kubelet
+
+[kubelet](kubelet.md) is the primary node agent. It:
+* Watches for pods that have been assigned to its node (either by apiserver or
+ or via local configuration file) and:
+ * Mounts the pod's required volumes
+ * Downloads the pod's secrets
+ * Run the pod's containers via docker (or, experimentally, rkt).
+ * Periodically executes any requested container liveness probes.
+ * Reports the status of the pod back to the rest of the system, by creating a
+ "mirror pod" if necessary.
+* Reports the status of the node back to the rest of the system.
+
+### kube-proxy
+
+[kube-proxy](kube-proxy.md) enables the Kubernetes service abstraction by maintaining
+network rules on the host and performing connection forwarding.
+
+### docker
+
+```docker``` is of course used for actually running containers.
+
+### rkt
+
+```rkt``` is supported experimentally as an alternative to docker.
+
+### monit
+
+```monit``` is a lightweight process babysitting system for keeping kubelet and docker
+running.
+
+
+
+[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/docs/admin/cluster-components.md?pixel)]()
+
diff --git a/docs/kube-apiserver.md b/docs/admin/kube-apiserver.md
similarity index 98%
rename from docs/kube-apiserver.md
rename to docs/admin/kube-apiserver.md
index ddbbaf188b..d7ba54c33d 100644
--- a/docs/kube-apiserver.md
+++ b/docs/admin/kube-apiserver.md
@@ -20,7 +20,7 @@ refer to the docs that go with that version.
The latest 1.0.x release of this document can be found
-[here](http://releases.k8s.io/release-1.0/docs/kube-apiserver.md).
+[here](http://releases.k8s.io/release-1.0/docs/admin/kube-apiserver.md).
Documentation for other releases can be found at
[releases.k8s.io](http://releases.k8s.io).
@@ -104,5 +104,5 @@ cluster's shared state through which all other components interact.
-[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/docs/kube-apiserver.md?pixel)]()
+[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/docs/admin/kube-apiserver.md?pixel)]()
diff --git a/docs/kube-controller-manager.md b/docs/admin/kube-controller-manager.md
similarity index 97%
rename from docs/kube-controller-manager.md
rename to docs/admin/kube-controller-manager.md
index df1f8260bd..45446efbf6 100644
--- a/docs/kube-controller-manager.md
+++ b/docs/admin/kube-controller-manager.md
@@ -20,7 +20,7 @@ refer to the docs that go with that version.
The latest 1.0.x release of this document can be found
-[here](http://releases.k8s.io/release-1.0/docs/kube-controller-manager.md).
+[here](http://releases.k8s.io/release-1.0/docs/admin/kube-controller-manager.md).
Documentation for other releases can be found at
[releases.k8s.io](http://releases.k8s.io).
@@ -82,5 +82,5 @@ controller, and serviceaccounts controller.
-[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/docs/kube-controller-manager.md?pixel)]()
+[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/docs/admin/kube-controller-manager.md?pixel)]()
diff --git a/docs/kube-proxy.md b/docs/admin/kube-proxy.md
similarity index 96%
rename from docs/kube-proxy.md
rename to docs/admin/kube-proxy.md
index ae8805b515..894bb9a3f7 100644
--- a/docs/kube-proxy.md
+++ b/docs/admin/kube-proxy.md
@@ -20,7 +20,7 @@ refer to the docs that go with that version.
The latest 1.0.x release of this document can be found
-[here](http://releases.k8s.io/release-1.0/docs/kube-proxy.md).
+[here](http://releases.k8s.io/release-1.0/docs/admin/kube-proxy.md).
Documentation for other releases can be found at
[releases.k8s.io](http://releases.k8s.io).
@@ -64,5 +64,5 @@ with the apiserver API to configure the proxy.
-[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/docs/kube-proxy.md?pixel)]()
+[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/docs/admin/kube-proxy.md?pixel)]()
diff --git a/docs/kube-scheduler.md b/docs/admin/kube-scheduler.md
similarity index 95%
rename from docs/kube-scheduler.md
rename to docs/admin/kube-scheduler.md
index 5b5ee99390..4418c662b5 100644
--- a/docs/kube-scheduler.md
+++ b/docs/admin/kube-scheduler.md
@@ -20,7 +20,7 @@ refer to the docs that go with that version.
The latest 1.0.x release of this document can be found
-[here](http://releases.k8s.io/release-1.0/docs/kube-scheduler.md).
+[here](http://releases.k8s.io/release-1.0/docs/admin/kube-scheduler.md).
Documentation for other releases can be found at
[releases.k8s.io](http://releases.k8s.io).
@@ -63,5 +63,5 @@ through the API as necessary.
-[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/docs/kube-scheduler.md?pixel)]()
+[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/docs/admin/kube-scheduler.md?pixel)]()
diff --git a/docs/kubelet.md b/docs/admin/kubelet.md
similarity index 98%
rename from docs/kubelet.md
rename to docs/admin/kubelet.md
index b407b0afe4..43e3d29d1e 100644
--- a/docs/kubelet.md
+++ b/docs/admin/kubelet.md
@@ -20,7 +20,7 @@ refer to the docs that go with that version.
The latest 1.0.x release of this document can be found
-[here](http://releases.k8s.io/release-1.0/docs/kubelet.md).
+[here](http://releases.k8s.io/release-1.0/docs/admin/kubelet.md).
Documentation for other releases can be found at
[releases.k8s.io](http://releases.k8s.io).
@@ -120,5 +120,5 @@ HTTP server: The kubelet can also listen for HTTP and respond to a simple API
-[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/docs/kubelet.md?pixel)]()
+[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/docs/admin/kubelet.md?pixel)]()