Install Calico Beta
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
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
Taint le serveur Master, car aucun pods ne s'exécuterons 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
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
curl https://docs.projectcalico.org/manifests/calico.yaml -O
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
Taint le serveur Master, car aucun pods ne s'exécuterons 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
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