What is hyperkube?
I am trying to setup kubernetes in aws and following the guides at https://github.com/kubernetes/kubernetes/blob/master/docs/getting-started-guides/docker-multinode
I couldn't understand what is meant by hyperkube. Can someone please explain to me what it is and how does it work?
And another question I have is while running the command
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
it is starting the one pod by default. From the command documentation, it looks like it is getting the pod manifest from the --config=/etc/kubernetes/manifests-multi
attribute. But this directory is not present in my host. can somebody please tell me from where it is getting this pod manifest?
Kubernetes is a set of daemons/binaries:
-
kube-apiserver
(AKA the master), -
kubelet
(start/stop containers, sync conf.), -
kube-scheduler
(resources manager) -
kube-controller-manager
(monitor RC, and maintain the desired state) -
kube-proxy
(expose services on each node) -
kubectl
(CLI)
The hyperkube binary is an all in one binary (in a way similar to busybox
), combining all the previously separate binaries.
The following command:
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
runs the daemon kubelet
.
Kubernetes is a set of binaries
- kube-apiproxy
- kube-scheduler
- kube-control-manager
- kubelet
- kube-proxy
hyperkube is a wrapper for all these binaries. So once you deploy hyperkube, it will install all the binaries. No need to install those binary individually.