Déployer un contrôleur d’entrée
S’applique à : AKS sur Azure Stack HCI 22H2, AKS sur Windows Server
Un contrôleur d’entrée est une ressource Kubernetes qui autorise un accès externe aux services au sein du cluster Kubernetes. L’entrée permet à un opérateur d’exposer un service aux demandes de réseau externe, généralement HTTP ou HTTPS. Vous configurez l’accès en créant un ensemble de règles qui définissent les connexions entrantes accédant à des services spécifiques.
Un contrôleur d’entrée est un logiciel qui fournit un routage de trafic configurable pour les services Kubernetes. Des ressources d’entrée Kubernetes sont utilisées pour configurer les règles d’entrée et les itinéraires des services Kubernetes individuels. En utilisant un contrôleur d’entrée et des règles d’entrée, vous pouvez utiliser une seule adresse IP pour acheminer le trafic vers plusieurs services dans un cluster Kubernetes.
Après avoir déployé le contrôleur dans votre environnement, vous pouvez ensuite créer et déployer le manifeste d’entrée. Actuellement, vous utilisez l’entrée dans AKS Arc à l’aide du contrôleur d’entrée NGINX. Pour plus d’informations sur l’installation, la configuration et l’utilisation du contrôleur d’entrée NGINX, consultez Installation avec des manifestes.
L’entrée diffère de NodePort et LoadBalancer de manière unique, et améliore le routage du trafic vers votre cluster de manière moins coûteuse. La définition des services NodePort crée de nombreux ports aléatoires et la définition des services LoadBalancer augmente le coût des ressources cloud plus que vous le souhaitez. Quand vous définissez un contrôleur d’entrée, vous regroupez les règles de routage du trafic dans une même ressource qui s’exécute dans le cadre de votre cluster. NodePort et LoadBalancer vous permettent d’exposer un service en spécifiant cette valeur dans le type du service, tandis que l’entrée est une ressource indépendante du service. L’entrée est définie, créée et détruite séparément du service.
Vous pouvez déployer l’entrée de différentes façons en fonction du cas d’usage. Les ressources d’entrée sont utilisées afin de mettre à jour la configuration au sein du contrôleur d’entrée pour déterminer son fonctionnement.
Utiliser l’entrée pour exposer des services en utilisant des URL accessibles de l’extérieur
Un exemple d’utilisation de l’entrée est illustré dans le manifeste YAML suivant. Le ingress.class
paramètre apparaît dans les métadonnées (dans cet exemple), ingress-nginx
et ce paramètre permet au contrôleur d’entrée NGINX de savoir ce qu’il doit surveiller et mettre à jour :
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: hello-world
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: test.example.com
http:
paths:
- path: /hello-world
pathType: Prefix
backend:
service:
name: hello-world
port:
number: 8080
La spec
section fournit des informations sur ce qui est configuré. Dans cet exemple, une règle (ou ensemble de règles) est définie et inclut les éléments suivants :
- Hôte auquel les règles sont appliquées.
- Indique si le trafic est HTTP ou HTTPS.
- Chemin surveillé.
- Service interne et port où le trafic est envoyé.
Utiliser l’entrée pour équilibrer la charge du trafic
Dans l’exemple suivant, un autre chemin d’accès est ajouté au manifeste qui autorise l’équilibrage de charge entre différents back-ends d’une application. Dans cet exemple, l’opérateur peut diviser le trafic et l’envoyer à différents points de terminaison de service et déploiements en fonction du chemin décrit. Derrière chaque chemin d’accès est un déploiement et un service, ce qui est utile pour les points de terminaison qui reçoivent plus de trafic :
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: hello-world-and-earth
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: test.example.com
http:
paths:
- path: /hello-world
pathType: Prefix
backend:
service:
name: hello-world
port:
number: 8080
- path: /hello-earth
pathType: Prefix
backend:
service:
name: hello-earth
port:
number: 8080
Utiliser l’entrée pour router le trafic HTTP vers plusieurs noms d’hôte sur la même adresse IP
Vous pouvez utiliser une ressource d’entrée différente pour chaque hôte, ce qui vous permet de contrôler le trafic avec plusieurs noms d’hôte. Pour utiliser une ressource d’entrée différente, pointez plusieurs noms d’hôte au même adresse IP publique utilisée pour le service LoadBalancer. Dans le fichier manifeste suivant, une version de production de hello-world
a été ajoutée. Le nom d’hôte prod.example.com
est utilisé et le trafic est pointé vers le nouveau service hello-world-prod
. Le trafic passe par l’adresse IP de l’équilibreur de charge et est routé en fonction du nom d’hôte et du chemin d’accès que vous fournissez :
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: hello-world-prod
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: test.example.com
http:
paths:
- path: /hello-world
pathType: Prefix
backend:
service:
name: hello-world-test
port:
number: 8080
- host: prod.example.com
http:
paths:
- path: /hello-world
pathType: Prefix
backend:
service:
name: hello-world-prod
port:
number: 8080
Étapes suivantes
Pour en savoir plus, consultez les liens suivants :