Installation istio, gateway api avec cilium cni
coolibra166 vues
Installation istio avec cilium cni :
- Installation via Helm avec le mode ambient avec waypoint proxies
Installer Gateway API avec cilium cni
- desactive gateway api
- active kubeProxyReplacement
-
- cilium-values.yaml
-
- Activation de kubeProxyReplacement
- Activation de gateway api
-
- cilium-values.yaml
kubeProxyReplacement: true
l7Proxy: true # Required pour GAMMA
k8sServiceHost: localhost # api server ip
k8sServicePort: 6443 # api server port
socketLB:
enabled: false
hostNamespaceOnly: true # pour eviter le conflit avec istio
cni:
exclusive: false # pour eviter le conflit avec istio
encryption:
enabled: false
type: wireguard
nodeEncryption: false
strictMode:
enabled: false
cidr: "10.42.0.0/16"
hubble:
relay:
enabled: false
ui:
enabled: false
ingress:
enabled: false
className: "cilium"
hosts:
- cilium-dev.local
ipam:
operator:
clusterPoolIPv4PodCIDRList: ["10.42.0.0/16"]
gatewayAPI:
enabled: false
ingressController:
enabled: false
default: true
enforceHttps: false
loadbalancerMode: shared # dedicated or shared
service:
type: LoadBalancer
loadBalancerIP: 10.70.70.44 # hors dhcp
# annotations:
# io.cilium/lb-ipam-ips: 10.10.13.61
bgpControlPlane:
enabled: false
operator:
enabled: true
replicas: 1
- Deployer cilium
helm repo add cilium https://helm.cilium.io
helm repo update
helm upgrade --install clilium-cni cilium/cilium -n cilium-system --version 1.18.3 -f cilium-values.yaml --create-namespace

- Cilium supporte l'ipam des service type LoadBalancer
- Pour l'activer, il faut juste créer un CiliumLoadBalancerIPPool avec le range d'ip
apiVersion: "cilium.io/v2alpha1"
kind: CiliumLoadBalancerIPPool
metadata:
name: "default-pool"
namespace: cilium-system
spec:
blocks:
# - cidr: "10.0.10.0/24"
- start: "10.10.10.5"
stop: "10.10.10.8"
- Appliquer le fichier
kubectl apply -f cilium-ippool.yaml
- Deployer Cert-manager
- let's encrypt pour les certificats dns challenge
- Activer gateway api
- clusterissuer avec dns challenge pour cloudflare. A adapter selon votre cas
- cert-manager-values.yaml
installCRDs: true
config:
apiVersion: "controller.config.cert-manager.io/v1alpha1"
kind: "ControllerConfiguration"
enableGatewayAPI: true
extraObjects: []
- Deployer cert-manager
helm repo add jetstack https://charts.jetstack.io --force-update
helm repo update
helm upgrade --install cert-manager jetstack/cert-manager -n cert-manager --version 1.19.1 -f cert-manager.yaml --create-namespace
- Créer un clusterissuer
- Mon domaine est chez cloudflare. Donc à adapter selon votre cas.
apiVersion: v1
kind: Secret
metadata:
name: cloudflare-api-token-secret
namespace: cert-manager
type: Opaque
stringData:
api-token: dfdkfdkfdkfdkfdkfdfdfd
---
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
email: devops@techledger.io
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: techledger-issuer-account-key
solvers:
- dns01:
cloudflare:
email: devops@techledger.io # cloudflare email
apiTokenSecretRef:
name: cloudflare-api-token-secret
key: api-token
- Appliquer le fichier
kubectl apply -f cluster-issuer.yaml
Installation Istio (mode Ambient) avec Helm natif
Version : 1.27.2
Repo : https://istio-release.storage.googleapis.com/charts
Namespace : istio-system
- Ajouter le dépôt Helm Istio
helm repo add istio https://istio-release.storage.googleapis.com/charts
helm repo update
- Créer le namespace
kubectl create namespace istio-system
- Installer la base Istio (istio-base)
helm upgrade --install istio-base istio/base \
--namespace istio-system \
--version 1.27.2 \
--set defaultRevision=default
Ce chart installe les CRDs et ressources de base nécessaires à Istio.
- Installer le Control Plane (istiod)
helm upgrade --install istiod istio/istiod \
--namespace istio-system \
--version 1.27.2 \
--set profile=ambient
profile=ambient configure Istiod pour l’Ambient Mesh (pas de sidecar).
- Installer le plugin réseau (istio-cni)
helm upgrade --install istio-cni istio/cni \
--namespace istio-system \
--version 1.27.2 \
--set profile=ambient
Ce plugin configure le réseau (iptables/ebpf) pour rediriger le trafic vers ztunnel.

- Installer le proxy L4 (ztunnel)
helm upgrade --install istio-ztunnel istio/ztunnel \
--namespace istio-system \
--version 1.27.2
ztunnel s’installe en DaemonSet sur chaque node, gérant le chiffrement et routage L4.
- Installer les waypoint proxies
- Pour avoir les fonctionnalités avancées de gestion du trafic Istio (y compris l'autorisation L7, la télémétrie et le routage VirtualService), il faut deployer waypoint proxies en plus de ztunnel
- Les waypoint proxies sont déployés à l'aide des ressources Kubernetes Gateway API.
export GATEWAY_API_VERSION=v1.4.0
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/$GATEWAY_API_VERSION/standard-install.yaml


Commentaires
Connectez-vous pour rejoindre la discussion.
Aucun commentaire pour le moment.