<p>I am trying to setup kubernetes in aws and following the guides at <a href="https://github.com/kubernetes/kubernetes/blob/master/docs/getting-started-guides/docker-multinode" rel="noreferrer">https://github.com/kubernetes/kubernetes/blob/master/docs/getting-started-guides/docker-multinode</a></p>

<p>I couldn't understand what is meant by hyperkube. Can someone please explain to me what it is and how does it work?</p>

<p>And another question I have is while running the command </p>

<pre><code>sudo docker run \
    --volume=/:/rootfs:ro \
    --volume=/sys:/sys:ro \
    --volume=/dev:/dev \
    --volume=/var/lib/docker/:/var/lib/docker:rw \
    --volume=/var/lib/kubelet/:/var/lib/kubelet:rw \
    --volume=/var/run:/var/run:rw \
    --net=host \
    --privileged=true \
    --pid=host \
    -d \
    gcr.io/google_containers/hyperkube:v${K8S_VERSION} \
    /hyperkube kubelet \
      --api-servers=http://localhost:8080 \
      --v=2 --address=0.0.0.0 --enable-server \
      --hostname-override=127.0.0.1 \
      --config=/etc/kubernetes/manifests-multi \
      --cluster-dns=10.0.0.10 \
      --cluster-domain=cluster.local
</code></pre>

<p>it is starting the one pod by default. From the command documentation, it looks like it is getting the pod manifest from the <code>--config=/etc/kubernetes/manifests-multi</code> attribute. But this directory is not present in my host. can somebody please tell me from where it is getting this pod manifest?</p>

<p>Kubernetes is a set of daemons/binaries:</p>

<ul>
<li><code>kube-apiserver</code> (AKA the master), </li>
<li><code>kubelet</code> (start/stop containers, sync conf.),</li>
<li><code>kube-scheduler</code> (resources manager)</li>
<li><code>kube-controller-manager</code> (monitor RC, and maintain the desired state)</li>
<li><code>kube-proxy</code> (expose services on each node)</li>
<li><code>kubectl</code> (CLI)</li>
</ul>

<p>The <a href="https://github.com/kubernetes/kubernetes/tree/master/cluster/images/hyperkube" rel="noreferrer">hyperkube</a> binary is an all in one binary (in a way similar to <code>busybox</code>), combining all the previously separate binaries.</p>

<p>The following command:</p>

<pre><code>hyperkube kubelet \
  --api-servers=http://localhost:8080 \
  --v=2 \
  --address=0.0.0.0 \
  --enable-server \
  --hostname-override=127.0.0.1 \
  --config=/etc/kubernetes/manifests-multi \
  --cluster-dns=10.0.0.10 \
  --cluster-domain=cluster.local
</code></pre>

<p>runs the daemon <code>kubelet</code>.</p>
