1) When introducing "kubectl describe", we ask people to
look at "kubectl describe node node1", which shows
them a bunch of pods. This makes it easier to contrast
with the (empty) output of "kubectl get pods" later.
2) Then, instead of going straight to "-n kube-system",
we introduce "--all-namespaces" to show pods across
all namespaces. Of course we also mention "-n" and
we also explain when these flags can be used.
3) Finally, I rewrote the section about kube-public,
because it was misleading. It pointed at the Secret
in kube-public, but that Secret merely corresponds
to the token automatically created for the default
ServiceAccount in that namespace. Instead, it's
more relevant to look at the ConfigMap cluster-info,
which contains a kubeconfig data piece.
The last item gives us an opportunity to talk to the
API with curl, because that cluster-info ConfigMap is
a public resource.
In the Kubernetes courses, it takes a bit too long before we
reach the Kubernetes content. Furthermore, learning how to
scale with Compose is not super helpful. These changes
allow to switch between two course flows:
- show how to scale with Compose, then transition to k8s/Swarm
- do not show how to scale with Compose; jump to k8s/Swarm earlier
In the latter case, we still benchmark the speed of rng and
hasher, but we do it on Kuberntes (by running httping on
the ClusterIP of these services).
These changes will also allow to make the whole DaemonSet
section optional, for shorter courses when we want to
simply scale the rng service without telling the bogus
explanation about entropy.
This is a concatenation of the files found in this directory:
https://github.com/kubernetes-incubator/metrics-server/tree/master/deploy/1.8%2B
... but with extra args added to the metrics server process,
to use InternalIP to contact the nodes, disable TLS cert validation
and reduce the polling interval to 5s.
Now that we have this file here, we can refer to it in the deployment
scripts to create clusters that have metrics-server pre-installed.