Install Calico
Dans cet exemple nous allons créer un Single Master Kubernetes avec Calico.
Les machines doivent être initialisées en suivant le tuto: Setup VM.
Lien vers la documentation officielle: docs.projectcalico.org.
Installation du cluster
Ces étapes sont à faire sur la machine Master uniquement.
Initialisation du cluster
Initialisation du cluster. L'adresse choisie ne doit pas être occupé dans le réseau existant. Sous risque que les pods ne soit pas accessibles
sudo kubeadm init --pod-network-cidr=192.168.44.0/24
Ne pas oublier de copier la commande kubeadm join
donnée à la fin de l'installation, qui servira à lier les nodes avec le master.
Ajout de la commande kubectl exécutable par le user courant.
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Installation de Calico
Ajout ressources de Calico.
kubectl create -f https://docs.projectcalico.org/manifests/tigera-operator.yaml
Télécharger le fichier custom-resources.yaml
wget https://docs.projectcalico.org/manifests/custom-resources.yaml
Modifer le fichier custom-resources.yaml
avec les informations CIDR choisis précédemment.
apiVersion: operator.tigera.io/v1
kind: Installation
metadata:
name: default
spec:
# Configures Calico networking.
calicoNetwork:
# Note: The ipPools section cannot be modified post-install.
ipPools:
- blockSize: 26
cidr: 192.168.44.0/24
encapsulation: VXLANCrossSubnet
natOutgoing: Enabled
nodeSelector: all()
Création du fichier que nous venons d'éditer.
kubectl create -f custom-resources.yaml
Les pods suivant doivent se lancer et être à l'état Running
kubectl get pods -n calico-system
Taint le serveur Master, car aucun pods personnel ne doit s'exécuter dessus.
kubectl taint nodes --all node-role.kubernetes.io/master-
Confirmer que vous avez bien une Node dans votre cluster
kubectl get nodes -o wide
Féliciations 🎉 !! Vous avez maintenant un simple cluster Kubernetes avec Calico
Installation de Calicoctl
L'ajout de calicoctl permettra d'exécuter des commandes spécifique à la gestion du cluster avec calico.
Aller dans /usr/bin/local pour définir la commande comme étant dans le PATH
cd /usr/local/bin/
sudo curl -O -L https://github.com/projectcalico/calicoctl/releases/download/v3.18.1/calicoctl
sudo chmod +x calicoctl
Création d'un fichier de configuration pour calico
sudo mkdir /etc/calico
sudo nano /etc/calico/calicoctl.cfg
Création du fichier
apiVersion: projectcalico.org/v3
kind: CalicoAPIConfig
metadata:
spec:
datastoreType: "kubernetes"
kubeconfig: "/home/<user>/.kube/config"
Tester la bonne installation de calicoctl
calicoctl -h
# Ou
calicoctl get nodes
Ajout des Nodes
Maintenant que la VM Master est prête, il faut ajouter les nodes au cluster.
Exécuter la commande kubeadm join récupéré lors de l'étape Initialisation du cluster sur toutes les nodes.
kubeadm join 192.168.1.20:6443 --token <your_token> --discovery-token-ca-cert-hash sha256:<your_sha256>
A la fin de processus, il est possible de lister les nodes du cluster.
sudo calicoctl node status
Féliciations 🎉 !! Votre cluster Kubernetes est maintenant prêt à déployer de nombreux Pods.