# Déploiement du Réseau K8S

⚠️⚠️⚠️⚠️NE CHOISIR QU'UNE SEULE SOLUTION DE RÉSEAU ⚠️⚠️⚠️⚠️

# Calico

#### Déploiement du réseau Calico 

```bash
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.27.0/manifests/tigera-operator.yaml
```

Attendre que l'opérateur ait fini :

```bash
kubectl rollout status deployment tigera-operator -n tigera-operator
```

Déployer les ressources Calico :

```bash
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.27.0/manifests/custom-resources.yaml
```

Définir le sous réseau de K8S :

```bash
kubectl patch installation default --type=merge -p '{"spec": {"calicoNetwork": {"ipPools": [{"cidr": "10.10.0.0/16", "encapsulation": "VXLANCrossSubnet", "natOutgoing": "Enabled", "nodeSelector": "all()"}]}}}'
```

Suvi des états :

```
watch kubectl get pods -n calico-system
```

# Cilium

#### Installation du réseau Cilium 

Installation de cilium-cli :

```bash
CILIUM_CLI_VERSION=$(curl -s https://raw.githubusercontent.com/cilium/cilium-cli/main/stable.txt)
curl -L --fail --remote-name-all https://github.com/cilium/cilium-cli/releases/download/${CILIUM_CLI_VERSION}/cilium-linux-amd64.tar.gz
sudo tar xzvf cilium-linux-amd64.tar.gz -C /usr/local/bin
rm cilium-linux-amd64.tar.gz
```

Déploiement :

```
cilium install --set ipam.operator.clusterPoolIPv4PodCIDRList="10.10.0.0/16"
```

<div _ngcontent-ng-c3082907845="" class="code-block ng-tns-c3082907845-168 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="6" id="bkmrk--1" jslog="223238;track:impression,attention;BardVeMetadataKey:[["r_b8d74a3caa98e15d","c_fcb4ad331681ddd4",null,"rc_71108aef33d9eead",null,null,"fr",null,1,null,null,1,0]]"><div _ngcontent-ng-c3082907845="" class="formatted-code-block-internal-container ng-tns-c3082907845-168"><div _ngcontent-ng-c3082907845="" class="animated-opacity ng-tns-c3082907845-168"></div></div></div>Attendre que le statut soit opérationnel :

```bash
cilium status --wait
```

<div _ngcontent-ng-c3082907845="" class="code-block ng-tns-c3082907845-169 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="8" id="bkmrk--2" jslog="223238;track:impression,attention;BardVeMetadataKey:[["r_b8d74a3caa98e15d","c_fcb4ad331681ddd4",null,"rc_71108aef33d9eead",null,null,"fr",null,1,null,null,1,0]]"><div _ngcontent-ng-c3082907845="" class="formatted-code-block-internal-container ng-tns-c3082907845-169"><div _ngcontent-ng-c3082907845="" class="animated-opacity ng-tns-c3082907845-169"></div></div></div>Vérification de la conectivité :

```bash
cilium connectivity check
```

Suivi des pods :

```
watch kubectl get pods -n kube-system -l k8s-app=cilium
```

MAJ :

```bash
cilium upgrade   --set l2announcements.enabled=true \
  --set externalIPs.enabled=true \
  --set kubeProxyReplacement=true
```

Appliquer les changements :

```bash
 kubectl get pods -n kube-system | grep cili | grep -v opera | grep -v envoy | awk '{print $1}' | xargs kubectl delete po -n kube-system
```

<div _ngcontent-ng-c3082907845="" class="code-block ng-tns-c3082907845-171 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="12" id="bkmrk--4" jslog="223238;track:impression,attention;BardVeMetadataKey:[["r_b8d74a3caa98e15d","c_fcb4ad331681ddd4",null,"rc_71108aef33d9eead",null,null,"fr",null,1,null,null,1,0]]"><div _ngcontent-ng-c3082907845="" class="formatted-code-block-internal-container ng-tns-c3082907845-171"><div _ngcontent-ng-c3082907845="" class="animated-opacity ng-tns-c3082907845-171"></div></div></div>