¿Cómo funcionan las aplicaciones de proxy empresarial API7 en los clústeres de Kubernetes?
January 24, 2024
En la era dinámica de las tecnologías nativas de la nube, Kubernetes ha surgido como la solución preferida para muchas empresas que buscan construir aplicaciones resilientes y escalables. API7 Enterprise ofrece capacidades potentes en seguridad y gestión de tráfico, junto con un rendimiento excepcional. API7 Enterprise se integra con el Descubrimiento de Servicios de Kubernetes, actuando como un proxy para las aplicaciones implementadas dentro de un clúster de Kubernetes. Vamos a explorar el proceso de utilizar API7 Enterprise para hacer de proxy de aplicaciones en tu clúster de Kubernetes.
Requisitos Previos
- Instala API7 Enterprise
Nota: Si API7 Enterprise no está ya desplegado dentro de los clústeres de Kubernetes, configura los ajustes de red de la máquina que aloja API7 EE para asegurar la accesibilidad a los pods upstream en el entorno de Kubernetes.
- Despliega Servicios en Kubernetes
Si ya has desplegado servicios en Kubernetes, puedes saltarte este paso. De lo contrario, ejecuta el siguiente comando para crear servicios:
# crea un nuevo namespace
kubectl create namespace api7ee
kubectl create deployment httpbin --image=kennethreitz/httpbin:latest -n api7ee
kubectl create service clusterip httpbin --tcp=80:80 -n api7ee
- Crea una Cuenta de Servicio de Kubernetes
-
API7 Enterprise depende de esta credencial para acceder a la API de Kubernetes y obtener configuraciones upstream. Por lo tanto, necesitamos crear un recurso
RBAC
primero. La siguiente es la configuración específica del archivoYAML
:# 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
-
Crea los recursos RBAC y obtén este token.
kubectl apply -f rbac.yaml -n api7ee kubectl get secrets api7-k8s-sd-secret -n api7ee -ojsonpath='{.data.token}' | base64 -d
Implementación del Descubrimiento de Servicios de Kubernetes en API7 Enterprise
Conectando al Registro de Servicios de Kubernetes
-
Ve a un grupo de gateway existente y accede al Registro de Servicios a través del menú de la izquierda.
-
Haz clic en el botón Añadir Conexión de Registro de Servicios. Selecciona Kubernetes como el tipo de descubrimiento y proporciona la dirección de acceso al servicio de API de Kubernetes y el token.
- Una vez que API7 Enterprise establece una conexión exitosa con el registro de servicios, verás un estado saludable.
Publicando el Servicio para Pruebas
-
Navega a la página de servicios, haz clic para crear un nuevo servicio y añade la ruta
/anything
. -
Procede a publicar el servicio y elige el upstream apropiado:
- Después de publicar, puedes probarlo usando
curl
.
Resumen
En conclusión, hemos hablado sobre los pasos para aprovechar API7 Enterprise para hacer de proxy de servicios de Kubernetes. Para más información sobre las características de API7 Enterprise, no dudes en contactarnos.