Utilisation d'Istio sur les clusters créés à l'aide de Kubernetes Engine (OKE)
Découvrez comment utiliser Istio sur des clusters créés à l'aide de Kubernetes Engine (OKE).
Istio est un maillage de services open source indépendant de la plate-forme qui fournit la gestion du trafic, l'application des stratégies et la collecte de télémesures. Istio est conçu pour gérer les communications entre les microservices et les applications. Istio utilise des proxies Envoy, déployés en tant que sidecars pour les services sous-jacents, afin de servir de médiateur à tout le trafic entrant et sortant pour tous les services du maillage de services. Sans nécessiter de modification des services sous-jacents, Istio fournit une résilience de trafic de base automatisée, la collecte de mesures de service, le traçage distribué, le cryptage du trafic, les mises à niveau de protocole et des fonctionnalités de routage avancées pour toutes les communications de service à service.
Istio utilise des passerelles entrantes et sortantes pour configurer des équilibreurs de charge s'exécutant en périphérie d'un maillage de service. Les passerelles entrantes Istio sont implémentées à l'aide des ressources VirtualService et Kubernetes Gateway, et fournissent une couche de gestion du trafic cohérente et à hautes performances sur tous les services du maillage de services. Une passerelle entrante est un point d'entrée unique dans le maillage de services via lequel circule tout le trafic de demande HTTP et HTTPS entrant. La passerelle entrante achemine le trafic vers le service approprié en fonction de la demande. De même, une passerelle sortante définit les points de sortie du maillage de services.
Pour plus d'informations sur Istio, reportez-vous à la documentation Istio.
Vous pouvez déployer Istio sur un cluster Kubernetes de deux manières :
- en tant que programme autonome (reportez-vous à Utilisation d'Istio en tant que programme autonome)
- en tant qu'extension de cluster (reportez-vous à Utilisation d'Istio en tant qu'extension de cluster)
Les produits de maillage de service (tels qu'Istio et Linkerd) sont pris en charge lors de l'utilisation du module d'extension CNI de mise en réseau de pod natif OCI VCN pour la mise en réseau de pods. Notez qu'à l'exception de l'extension Istio, le support est actuellement limité à Oracle Linux 7 (le support Oracle Linux 8 est prévu). Le module complémentaire Istio est pris en charge avec Oracle Linux 7 et Oracle Linux 8. Les noeuds de processus actif doivent exécuter Kubernetes 1.26 (ou version ultérieure).
Vous pouvez utiliser Istio avec des pools de noeuds gérés, mais pas avec des pools de noeuds virtuels.
Utilisation de l'API Kubernetes Gateway
L'API Gateway est un projet Kubernetes officiel axé sur la fourniture de ressources d'API pour le routage de couche 4 (L4) et de couche 7 (L7) dans Kubernetes. L'API Gateway représente la nouvelle génération d'API d'entrée, d'équilibrage de charge et de maillage de services Kubernetes.
Kubernetes Engine prend en charge l'installation des définitions de ressource personnalisées (CRD) d'API de passerelle. Vous pouvez ainsi suivre les instructions de la documentation Introduction à l'API de passerelle. Par exemple, pour installer le canal standard, utilisez la commande suivante :
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.4.0/standard-install.yamlAprès avoir installé les CRD de l'API Gateway, vous pouvez utiliser Istio en tant que programme autonome ou en tant qu'extension de cluster pour tirer parti de la prise en charge de l'API Gateway. En plus de la prise en charge des ressources entrantes Kubernetes, Istio vous permet de configurer le trafic entrant à l'aide des ressources de passerelle de l'API Gateway. Les passerelles offrent une personnalisation et une flexibilité plus étendues que les ressources entrantes, ce qui permet d'appliquer des fonctionnalités Istio telles que la surveillance et les règles de routage au trafic entrant dans le cluster.
La documentation Istio explique comment utiliser l'API Gateway avec Istio. Lors de la définition d'une passerelle avec Istio comme implémentation, il est important de définir la propriété gatewayClassName sur istio. Par exemple :
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: example-gateway
spec:
gatewayClassName: istioPour plus d'informations sur la configuration des passerelles et l'utilisation des fonctionnalités Istio avancées avec l'API de passerelle, reportez-vous à API de passerelle Kubernetes dans la documentation Istio et à la documentation relative à l'API de passerelle.