Comment API7 Enterprise gère-t-il le proxy des applications dans les clusters Kubernetes ?
January 24, 2024
Dans l'ère dynamique des technologies cloud-native, Kubernetes est devenu la solution de prédilection pour de nombreuses entreprises cherchant à construire des applications résilientes et évolutives. API7 Enterprise offre des capacités puissantes en matière de sécurité et de gestion du trafic, associées à des performances exceptionnelles. API7 Enterprise s'intègre à la découverte de services Kubernetes, servant de proxy pour les applications déployées dans un cluster Kubernetes. Explorons le processus d'utilisation d'API7 Enterprise pour proxifier les applications dans votre cluster Kubernetes.
Prérequis
- Installez API7 Enterprise
Remarque : Si API7 Enterprise n'est pas déjà déployé dans les clusters Kubernetes, configurez les paramètres réseau de la machine hébergeant API7 EE pour garantir l'accessibilité aux pods en amont dans l'environnement Kubernetes.
- Déployez des services dans Kubernetes
Si vous avez déjà déployé des services dans Kubernetes, vous pouvez ignorer cette étape. Sinon, exécutez la commande suivante pour créer des services :
# créez un nouvel espace de noms
kubectl create namespace api7ee
kubectl create deployment httpbin --image=kennethreitz/httpbin:latest -n api7ee
kubectl create service clusterip httpbin --tcp=80:80 -n api7ee
- Créez un compte de service Kubernetes
-
API7 Enterprise s'appuie sur ces informations d'identification pour accéder à l'API Kubernetes et récupérer les configurations en amont. Par conséquent, nous devons d'abord créer une ressource
RBAC
. Voici la configuration spécifique du fichierYAML
:# rbac.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: api7-k8s-sd-watcher rules: - apiGroups: [""] resources: ["endpoints"] verbs: ["list", "watch"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: api7-k8s-sd-watcher-binding subjects: - kind: ServiceAccount name: api7-k8s-sd-sa namespace: api7ee roleRef: kind: ClusterRole name: api7-k8s-sd-watcher apiGroup: rbac.authorization.k8s.io --- apiVersion: v1 kind: ServiceAccount metadata: name: api7-k8s-sd-sa namespace: api7ee --- apiVersion: v1 kind: Secret metadata: name: api7-k8s-sd-secret namespace: api7ee annotations: kubernetes.io/service-account.name: api7-k8s-sd-sa type: kubernetes.io/service-account-token
-
Créez les ressources RBAC et obtenez ce jeton.
kubectl apply -f rbac.yaml -n api7ee kubectl get secrets api7-k8s-sd-secret -n api7ee -ojsonpath='{.data.token}' | base64 -d
Mise en œuvre de la découverte de services Kubernetes dans API7 Enterprise
Connexion au registre de services Kubernetes
-
Accédez à un groupe de passerelle existant et accédez au Registre de services via le menu de gauche.
-
Cliquez sur le bouton Ajouter une connexion au registre de services. Sélectionnez Kubernetes comme type de découverte et fournissez l'adresse d'accès au service API Kubernetes ainsi que le jeton.
- Une fois qu'API7 Enterprise établit une connexion réussie au registre de services, vous verrez un état sain.
Publication du service pour les tests
-
Accédez à la page des services, cliquez pour créer un nouveau service, et ajoutez la route
/anything
. -
Poursuivez la publication du service, et choisissez le bon en amont :
- Après la publication, vous pouvez le tester en utilisant
curl
.
Résumé
En conclusion, nous avons abordé les étapes pour exploiter API7 Enterprise afin de proxifier les services Kubernetes. Pour plus d'informations sur les fonctionnalités d'API7 Enterprise, n'hésitez pas à nous contacter.