Skip to main content

Install Calico Beta

danger

Beta de l'installation Calico, ne PAS suivre ce tuto.

Cette page contient uniquement des éléments d'une installation plus ancienne et non complète de Calico.

Juste après cette étape dans le tutos ici

sudo apt-mark hold docker.io kubelet kubeadm kubectl

Installation de Calico

Create a single-host Kubernetes cluster

Initialisation du master

sudo kubeadm init --pod-network-cidr=192.168.0.0/16

Install Calico

kubectl create -f https://docs.projectcalico.org/manifests/tigera-operator.yaml
Attention

Avant d'executer la commande, il est important de vérifier si le manifest.xml comporte les bonnes informations IP. Il n'est PAS possible de les modifier ensuite.

kubectl create -f https://docs.projectcalico.org/manifests/custom-resources.yaml

Patienter jusqu'a ce que tous les pods aient le status Running

watch kubectl get pods -n calico-system

Calico Pods

Taint le serveur Master, car aucun pods ne s'exécuterons dessus

kubectl taint nodes --all node-role.kubernetes.io/master-

Taint Master

Confirmer que vous avez bien une Node dans votre cluster

kubectl get nodes -o wide

Cluster Node

Féliciations !! Vous avez maintenant un simple cluster Kubernetes avec Calico

Install calicoctl

A faire sur Master et Nodes.

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'une configuratioh de calico

sudo mkdir /etc/calico

Création d'un fichier dans /etc/calico/calicoctl.cfg

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

Install Calico on Nodes

Création d'un token pour ajouter les nodes (master)

kubeadm token create --print-join-command

Ajout de la node (Node)

sudo kubeadm join 192.168.1.14:6443 --token <your_token> --discovery-token-ca-cert-hash sha256:<your_discovery_token>
sudo calicoctl node status

Calico Node Status

curl https://docs.projectcalico.org/manifests/calico.yaml -O
Attention

Avant d'executer la commande, il est important de vérifier si le calico.yaml comporte les bonnes informations IP.

Passez cet averstissmenet si votre CIDR est 192.168.0.0/16.

Sinon décommenter la ligne CALICO_IPV4POOL_CIDR et mettez la valeur correspondante

kubectl apply -f calico.yaml

create BGPConfiguration

apiVersion: projectcalico.org/v3
kind: BGPConfiguration
metadata:
name: default
spec:
logSeverityScreen: Info
nodeToNodeMeshEnabled: true
asNumber: 63400
serviceClusterIPs:
- cidr: 10.96.0.0/12
serviceExternalIPs:
- cidr: 104.244.42.129/32
- cidr: 172.217.3.0/24
listenPort: 178
communities:
- name: bgp-large-community
value: 63400:300:100
prefixAdvertisements:
- cidr: 172.218.4.0/26
communities:
- bgp-large-community
- 63400:120

Désactiver le node-To-Node Mesh

calicoctl patch bgpconfiguration default -p '{"spec": {"nodeToNodeMeshEnabled": false}}'

Create BGPeer Global

cat << EOF | calicoctl create -f -cali
apiVersion: projectcalico.org/v3
kind: BGPPeer
metadata:
name: bgppeer-global
spec:
peerIP: 192.20.30.40
asNumber: 64567
EOF

Create Node

apiVersion: projectcalico.org/v3
kind: Node
metadata:
name: node1
spec:
bgp:
asNumber: 64567
ipv4Address: 192.20.30.40

Day 2

Install via site kubernetes ne pas oublier docker.io

Modification fichier sudo nano /etc/sysctl.conf Décommenter net.ipv4.ip_forward=1

sudo kubeadm init --pod-network-cidr=192.168.44.0/24

join

kubeadm join 192.168.1.20:6443 --token ljlmv5.1vtwz037trb4m3qh \
--discovery-token-ca-cert-hash sha256:3364511780ac81cdf3770a6bdd4a0d3615c7385327a144c6e2c99f10914e83f5

process create .kube folder etc...

Ajout resources calico

kubectl create -f https://docs.projectcalico.org/manifests/tigera-operator.yaml

modification fichier custom-resources

wget https://docs.projectcalico.org/manifests/custom-resources.yaml

edit avec le bon CIDR

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()

creation

kubectl create -f custom-resources.yaml

Pods Post install

Taint le serveur Master, car aucun pods ne s'exécuterons dessus

kubectl taint nodes --all node-role.kubernetes.io/master-

Taint Master

Confirmer que vous avez bien une Node dans votre cluster

kubectl get nodes -o wide

Cluster Node

Féliciations !! Vous avez maintenant un simple cluster Kubernetes avec Calico

Go to install calicoctl

Creation fichier cfg (ça sert à quelque chose ?)

Création d'une configuratioh de calico

sudo mkdir /etc/calico

Création d'un fichier dans /etc/calico/calicoctl.cfg

apiVersion: projectcalico.org/v3
kind: CalicoAPIConfig
metadata:
spec:
datastoreType: "kubernetes"
kubeconfig: "/home/<user>/.kube/config"

Join les nodes

On peux lancer un pod qui est répartis