Une passerelle de sortie est une passerelle périphérique qui relie un réseau interne à un réseau externe. Elle contrôle le trafic réseau et permet l'accès et la communication à distance. Utilisez une passerelle cloud native MSE comme passerelle de sortie pour offrir un service de sortie réseau stable, efficace et sécurisé à votre cluster Container Service for Kubernetes (ACK). Vous pourrez ainsi gérer le trafic sortant et appliquer des contrôles de sécurité.
Avantages d'une passerelle cloud native MSE
La passerelle cloud native MSE est déployée et gérée de manière indépendante. Cette isolation par rapport au cluster ACK garantit une stabilité accrue.
La passerelle cloud native MSE offre des fonctionnalités de gouvernance HTTP de niveau 7, telles que les listes d'autorisation et de blocage d'adresses IP, la limitation du débit, l'équilibrage de charge, le déchargement TLS, la mise en miroir du trafic et le contrôle des en-têtes.
Vous n'avez pas besoin d'activer l'accès au réseau public pour chaque pod du cluster ACK. Activez uniquement l'accès public pour la passerelle cloud native MSE en configurant la SNAT sur son vSwitch. Cette approche réduit la surface d'attaque et renforce la sécurité.
Architecture de déploiement

Procédure
Étape 1 : Installer le contrôleur d'entrée MSE
Installez le contrôleur d'entrée MSE dans un cluster Container Service for Kubernetes (ACK) ou ACK Serverless cluster existant, ou lors de la création d'un nouveau cluster. Pour plus d'informations, consultez la rubrique Gérer le composant MSE Ingress Controller.
Étape 2 : Créer une ressource MseIngressConfig
MseIngressConfig est une définition de ressource personnalisée (CRD) fournie par le contrôleur d'entrée MSE. Créez une ressource MseIngressConfig pour créer ou associer une instance de passerelle gérée par MSE. Pour plus d'informations, consultez la rubrique Créer une instance de passerelle cloud native MSE.
Lors de la création de la passerelle, créez uniquement un Classic Load Balancer (CLB) interne. Voici un exemple de configuration :
apiVersion: mse.alibabacloud.com/v1alpha1
kind: MseIngressConfig
metadata:
name: egress-gateway
spec:
name: egress-gateway
common:
instance:
spec: 2c4g
replicas: 3
network:
vSwitches:
- "vsw-xxxx" # The ID of the vSwitch to which the gateway is bound.
privateSLBSpec: slb.s2.small
Si vous n'avez pas sélectionné Configure SNAT for VPC lors de la création du cluster ACK ou ACK Serverless cluster, le cluster ne peut pas accéder à Internet. Configurez la SNAT pour la passerelle séparément afin d'activer l'accès public.
L'accès au réseau public nécessite une entrée SNAT dans une passerelle NAT. Pour créer une passerelle NAT, consultez la rubrique Utiliser la fonctionnalité SNAT d'une passerelle NAT publique pour accéder à Internet. Dans la documentation liée, suivez les instructions de l'étape Étape 3 : Créer une entrée SNAT. Pour l'entrée SNAT, sélectionnez vSwitch et spécifiez l'ID du vSwitch issu de votre MseIngressConfig.
Étape 3 : Créer un service ExternalName
Un service Kubernetes ExternalName mappe un service interne à un nom DNS. Par exemple, pour accéder à la page produit Alibaba Cloud MSE depuis votre cluster Kubernetes, utilisez la configuration suivante :
apiVersion: v1
kind: Service
metadata:
name: aliyun-svc-external
namespace: default
spec:
externalName: www.aliyun.com
ports:
- name: port1
port: 80
protocol: TCP
targetPort: 80
- name: port2
port: 443
protocol: TCP
targetPort: 443
type: ExternalName
Étape 4 : Configurer le routage pour le service ExternalName
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: mse-ingress
namespace: default
spec:
ingressClassName: mse
rules:
- host: www.aliyun.com # The target domain name.
http:
paths:
- backend:
service:
name: aliyun-svc-external # The backend ExternalName service.
port:
number: 80
path: /product/aliware/mse # The access path for the backend service.
pathType: Prefix
Enregistrez la configuration précédente sous le nom mse-ingress.yaml et exécutez kubectl apply -f mse-ingress.yaml. Ensuite, exécutez kubectl get ingress mse-ingress -o yaml pour afficher la ressource Ingress et obtenir l'adresse CLB de la passerelle cloud native MSE. Voici un exemple de sortie :
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/backend-protocol: HTTPS # Required because Alibaba Cloud services enforce HTTPS. The gateway must use HTTPS to route to the backend service.
name: mse-ingress
namespace: default
spec:
ingressClassName: mse
rules:
- host: www.aliyun.com
http:
paths:
- backend:
service:
name: aliyun-svc-external
port:
number: 443
path: /product/aliware/mse
pathType: Prefix
status:
loadBalancer:
ingress:
- ip: xx.xx.xx.xx # Replace this with the CLB address of the MSE cloud-native gateway.
Étape 5 : Vérifier l'accès au service externe
curl http://www.aliyun.com/product/aliware/mse --resolve www.aliyun.com:80:xx.xx.xx.xx
Remplacez xx.xx.xx.xx par l'adresse IP CLB de la passerelle obtenue à l'étape Étape 4.
Documentation connexe
Pour apprendre à utiliser d'autres fonctionnalités avancées de la passerelle avec Ingress, consultez la rubrique Utilisation avancée de MSE Ingress.