¿Cómo funcionan las aplicaciones de proxy empresarial API7 en los clústeres de Kubernetes?

January 24, 2024

Products

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

  1. 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.

  1. 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
  1. 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 archivo YAML:

      # 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

  1. Ve a un grupo de gateway existente y accede al Registro de Servicios a través del menú de la izquierda.

  2. 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.

PA_1

  1. Una vez que API7 Enterprise establece una conexión exitosa con el registro de servicios, verás un estado saludable.

PA_2

Publicando el Servicio para Pruebas

  1. Navega a la página de servicios, haz clic para crear un nuevo servicio y añade la ruta /anything.

  2. Procede a publicar el servicio y elige el upstream apropiado:

PA_3

  1. 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.

Share article link