You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

After the installation phase, we can set up our mini-cluster (https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/). To do this, simply run the command on the control-plane (for the moment without arguments)

Initialization
$ kubeadm init
.
.
.

# At the end of the procedure, an output similar to this will appear
Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:
  mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

You should now deploy a Pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  /docs/concepts/cluster-administration/addons/

You can now join any number of machines by running the following on each node
as root:
  kubeadm join <control-plane-host>:<control-plane-port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>

The output shown above gives us 3 information:

  • offers us commands to allow us to work without administrator privileges;
  • warns us that we will have to use a Pod network;
  • gives us the key, which is advisable to keep somewhere, which we will have to use on worker nodes to insert them into the cluster.

To remove administrator privileges, simply follow the simple steps in the previous output. As for the second point in the list, there are multiple CNI (Container Network Interfaces) to generate our Pod network. Here we use Calico. So let's run the command (check the version)

Calico
$ kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml

Now let's finally expand our cluster by adding worker nodes. Let's connect to the nodes via SSH and take administrator privileges. Now we paste the command, saved previously, returned to us by kubeadm init

Join node
$ kubeadm join --token <token> <control-plane-host>:<control-plane-port> --discovery-token-ca-cert-hash sha256:<hash>

As verification of the worker(s) hooking, we return to the control plane and use

Cluster infrastructure
$ kubectl get nodes
NAME                   STATUS   ROLES    AGE   VERSION
mycentos-0.novalocal   Ready    master   30h   v1.18.5
mycentos-1.novalocal   Ready    <none>   25h   v1.18.5
mycentos-2.novalocal   Ready    <none>   24h   v1.18.5

The output should list the nodes that are part of the cluster.

Upgrading kubeadm clusters

To update the cluster, follow the instructions in the official guide.

  • No labels