Estás viendo la documentación de Apigee Edge.
Ve a la
Documentación de Apigee X. información
Introducción
En este tema, se explica cómo ejecutar Edge Microgateway en un clúster de Kubernetes como Un servicio independiente
Para obtener más información, consulta la Descripción general de la integración de Edge Microgateway con Kubernetes.
Antes de comenzar
Completa los pasos que se describen en Requisitos previos.
Configura Edge Microgateway
Con el siguiente comando, se configura Edge Microgateway para tu organización de Apigee
e implementa el proxy edgemicro-auth
.
Ejecuta el siguiente comando:
edgemicro configure -o [org] -e [env] -u [username]
Aquí:
org
: Es el nombre de la organización de Edge (debes ser administrador de la organización).env
: Es un entorno en tu organización (como prueba o producción).username
: Es la dirección de correo electrónico asociada con tu cuenta de Apigee.
Ejemplo
edgemicro configure -o docs -e test -u jdoe@example.com
El resultado (que se muestra a continuación) se guarda en el archivo:
.$HOME/.edgemicro/org_name-env_name-config.yaml
current nodejs version is v6.9.1 current edgemicro version is 2.5.25 password: file doesn't exist, setting up Give me a minute or two... this can take a while... App edgemicro-auth deployed. checking org for existing KVM KVM already exists in your org configuring host edgemicroservices.apigee.net for region us-west1 saving configuration information to: /Users/jdoe/.edgemicro/myorg-test-config.yaml vault info: -----BEGIN CERTIFICATE----- MIICpDCCAYwCCQCV9eBcO9a5WzANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDDAls b2NhbGhvc3QwHhcNMagwODA5MDAzMDEzWhcNMTgwODEwMDAzMDEzWjAUMRIwEAYD VQQDDBlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDh nAHT7JHX/WvWHRFb8FLm53SPIDld5LyPOUfINdEyhSIEeXoOUKg4EPweJPVSC9Vm Hw4ZMtEqWJM/XsQWvLe8ylRJa5wgmzmFCqAsuzs9+rmc9KvJqjpOh2uRTUf7KKfT iXL2UEseprcI5g8zNyqKyEf/ecWIwz3AkkPAZebVTsrdDfIDHvkyhhvlAHZAB9kn GtqP3N8kOlv4KQto9Gr7GYUGUIDugt7gM1F611+RBS+fYRi32GUAq/UQDkhYL8cp oIJiF7UYkk2+9t9CdOCDuIUCvJioHJQd0xvDpkC9f6LvwjwnCwku+4F2Q63+av5I mJoZJQPvW5aP53Qkk+kHAgMBAAEwDKYJKoZIhvcNAQELBQADggEBALyUBolXUFN8 1bf268nR+gS8MOFDTxO1bUz+bKuT/g3K1PuNUJTueT+0L1H2OiZUzazAqwn2sqzN lQuvLg6LjxjlNkqTJGiJvGDcYVq45dv7UyxAZxhqxTxhlQ+Yu5R9pbQnzujezHpH 6gtCoCkSt/QqiJ3YsmsVu5is+HpIJepMt0CyMh5tK9j87hl46QhHklaVfQ3ycMVm /wNPR/pjizg1FDUeq4nj/7DBVbMf9net/BDaZLeSW1HJ1vcsCXIcSZfQd4QymGFn 8ADrND7ydVjwO/s23soPDTy0g4yLIZvky2tpT8d7YahNqSv2n7sXsLxruzcyCoQ4 w+e3Z3F7IKI= -----END CERTIFICATE----- The following credentials are required to start edge micro key: 1a3b2754c7f20614817b86e09895825ecc252d34df6c4be21ae24356f09e6eb4 secret: 16ad2431de73f07f57a6d44048f08d93b63f783bf1f2ac4221182aa7289c7cef edgemicro configuration complete!
Implementa Edge Microgateway como servicio
Ejecuta el siguiente comando para implementar Edge Microgateway como un servicio en tu Clúster de Kubernetes:
kubectl apply -f <(edgemicroctl -org=org -env=env -key=edgemicro-key -sec=edgemicro-secret -conf=file path of org-env-config.yaml)
Donde:
org
: Es la organización de Apigee que especificaste en el comandoedgemicro configure
.env
: Es el entorno que especificaste en el comandoedgemicro configure
.edgemicro-key
: Es la clave que muestra el comandoedgemicro configure
.edgemicro-secret
: el secreto que muestra el comandoedgemicro configure
.file path of org-env-config.yaml
: Es la ruta de acceso al archivo de configuración de Edge Micro que muestra el comandoedgemicro configure
.
Por ejemplo:
kubectl apply -f <(edgemicroctl -org=jdoe -env=test -key=989cce9d41cac94e72626d906562a1d76a19445f8901b3508858bb064988eccb -sec=ec92b793178de7b7e88e346f55a951e3fdae05e700e3ddea7d63977826379784 -conf=/Users/jdoe/.edgemicro/jdoe-test-config.yaml)
Resultado de ejemplo:
config/myorg-test-config.yaml) service "edge-microgateway" created deployment "edge-microgateway" created secret "mgwsecret" created
Copia y pega el siguiente código en tu terminal. El código configura el controlador Ingress para permitir acceso externo al servicio
edge-microgateway
. Es posible que debas presionar Intro Después de pegar el comando en la terminal:cat <<EOF | kubectl apply -f - apiVersion: extensions/v1beta1 kind: Ingress metadata: name: edge-microgateway-ingress annotations: kubernetes.io/ingress.class: "nginx" spec: rules: - http: paths: - path: / backend: serviceName: edge-microgateway servicePort: 8000 EOF
Si la operación es exitosa, verás este resultado:
ingress "edge-microgateway-ingress" created
El controlador Ingress ahora está configurado para permitir el acceso externo al Servicio de
edge-microgateway
.
Implementa un servicio de prueba
Los siguientes pasos implementan un servicio de prueba simple en tu clúster. El
El controlador de entrada no permite que se llame al servicio desde fuera del clúster.
Más adelante, configurarás Edge Microgateway para que llame al servicio como su destino.
El controlador de Ingress permite el acceso externo al servicio edge-microgateway
.
Implementa el servicio
helloworld
de muestra. Debido a que Ingress no sabe acerca de este servicio, no se lo puede llamar desde fuera del clúster.kubectl apply -f samples/helloworld/helloworld-service.yaml
Resultado de ejemplo:
service "helloworld" created deployment "helloworld" created
Verifica que la implementación se haya realizado correctamente. Ten en cuenta que no hay una IP externa para el servicio
helloworld
En los siguientes pasos, configurarás Edge Microgateway para acceder a la IP interna del servicio.kubectl get services -n default
Resultado de ejemplo:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE edge-microgateway NodePort 10.35.247.222 <none> 8000:32000/TCP 12m helloworld NodePort 10.35.245.103 <none> 8081:30294/TCP 47s kubernetes ClusterIP 10.35.240.1 <none> 443/TCP 47m
Configura Edge Microgateway para usar un proxy en el servicio
Obtén la IP interna para el servicio helloworld
y agrégala como el destino
de un sistema de reconocimiento proxy. Crea un recurso “microgateway-aware” el proxy es un
requisito estándar de Edge Microgateway.
Consulta también Qué debes saber acerca de Microgateway-aware proxies.
Obtén la IP interna del servicio de prueba
Obtén la IP y el puerto del clúster interno para el servicio
helloworld
:kubectl get services helloworld
Resultado de ejemplo:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE helloworld NodePort 10.55.254.255 <none> 8081:30329/TCP 3m
Copia los valores de
CLUSTER-IP
yPORT
. Por ejemplo, en el ejemplo arriba, estos valores son:10.55.254.255
y8081
. Los valores de el sistema será diferente.
Crea un proxy que reconoce las micropuertas de enlace en Edge
- Accede a la IU de Edge.
- Selecciona la misma organización que especificaste anteriormente cuando configuraste Edge Microgateway.
- Selecciona Desarrollo > Proxies de API en el menú de navegación lateral
- Haz clic en + Proxy. Se abrirá el asistente para compilar un proxy.
- En la primera página del asistente, selecciona Proxy inverso (más común).
- Haz clic en Siguiente.
En la página Detalles del asistente, configúralo de la siguiente manera. Asegúrate de completar del asistente exactamente como se muestra. Asegúrate de que el nombre del proxy tenga el prefijo
edgemicro_
- Nombre del proxy: edgemicro_hello
Ruta base del proxy: /hello
API existente:
http://<cluster_ip>:<port>
Por ejemplo: http://10.55.254.255:8081
Haz clic en Siguiente.
En la página Seguridad del asistente, selecciona Pasar (ninguno).
Haz clic en Siguiente.
En la página Virtual Hosts del asistente, acepta los valores predeterminados.
Haz clic en Siguiente.
En la página de compilación del asistente, revisa la configuración de proxy. Asegúrate de que test.
Haz clic en Build and Deploy.
Crear un desarrollador
Puedes usar un desarrollador existente para realizar pruebas o crear uno nuevo de la siguiente manera:
- Selecciona Publicar > Desarrolladores en el menú de navegación lateral.
- Haz clic en + Desarrollador.
- Completa el diálogo para crear un nuevo desarrollador. Puedes usar cualquier desarrollador nombre/correo electrónico que desees.
Crear un producto de API
Crea un producto de API como se describe a continuación. Agregarás dos proxies al Producto: edgemicro-auth y edgemicro_hello
Puedes leer más sobre Opciones de configuración del producto en Lo que debes saber sobre el producto de API actual.
- Selecciona Publicar > Productos de API en el menú de navegación lateral.
- Haz clic en +API Product. Aparecerá la página Product Details.
Completa la página Detalles del producto como se indica a continuación. No hagas clic en Guardar hasta instrucciones para hacerlo.
Nombre hello-world-product
Nombre visible Edge Micro hello product
Entorno test
Acceso Public
Tipo de aprobación de claves Automatic
En la mitad inferior de la página, haz clic en + Recurso personalizado.
Establece el recurso en
/
(una sola barra).Selecciona + Recurso personalizado nuevamente y agrega la ruta de acceso
/**
.En la parte inferior de la página, haga clic en + Proxy de API.
Selecciona el proxy llamado edgemicro-auth.
Vuelva a hacer clic en + Proxy de API.
Selecciona el proxy con reconocimiento de micropuertas de enlace llamado edgemicro_hello.
Haz clic en Guardar.
Crear una app de desarrollador
- Selecciona Publicar > Apps en el menú de navegación lateral.
- Haga clic en + App. Aparecerá la página de detalles de la app de desarrollador.
Completa la página de Aplicación para desarrolladores de la siguiente manera. No guardar hasta que se indique hazlo.
Nombre hello-world-app
Nombre visible Edge Micro hello app
Desarrollador Selecciona el desarrollador de prueba que creaste; de lo contrario, cualquier desarrollador estará bien. En la sección Credentials, haga clic en + Product y seleccione el producto que fecha de creación:
hello-world-product.
Haz clic en Guardar.
Regresaste a la página que muestra todas las apps de desarrollador.
Selecciona la app que acabas de crear,
hello-world-app
.Haz clic en Mostrar junto a Clave del consumidor.
Copia el valor de la clave generada. Este valor es el clave de API que usarás para realizar llamadas seguras a la API
/hello
Espera unos minutos. Los cambios que realizaste en Apigee pueden demorar unos minutos. Edge se sincronizará con la instancia de Edge Microgateway implementada en el clúster.
Prueba el proxy
Obtén la dirección IP del Ingress
Con la IP externa del Ingress, puedes llamar al servicio de Edge Microgateway desde fuera del clúster.
Obtén la dirección IP externa del controlador Ingress:
kubectl get ing -o wide
Resultado de ejemplo:
NAME HOSTS ADDRESS PORTS AGE edge-microgateway-ingress * 35.238.249.62 80 37m
Copia el valor
ADDRESS
del Ingress y expórtalo a una variable. Tú puedes configurar la variable manualmente:export GATEWAY_IP=external_ip
Por ejemplo:
export GATEWAY_IP=35.238.249.62
O bien, usa este comando para configurarla por ti:
export GATEWAY_IP=$(kubectl describe ing edge-microgateway --namespace default | grep "Address" | cut -d ':' -f2 | tr -d "[:space:]")
Verifica que se haya exportado la variable. Por ejemplo:
echo $GATEWAY_IP
Resultado de ejemplo:
35.238.249.62
Llama a la API
Después de agregar los cambios de configuración a microgateway, puedes
intenta llamar a la API. Usas la IP del controlador de Ingress (que guardaste en la variable GATEWAY_IP
)
llamar a la API porque esta IP le permite llamar al proxy desde fuera del clúster de Kubernetes. El
La asignación de Ingress a Edge Microgateway se creó cuando implementaste Edge Microgateway
al clúster.
Llama a la API sin una clave de API. Recibirás un mensaje de error, como se muestra a continuación:
curl $GATEWAY_IP:80/hello/
Resultado esperado:
{"error":"missing_authorization","error_description":"Missing Authorization header"}
Si aparece este mensaje, es posible que debas esperar un poco más para que se complete la sincronización se completa:
{"message":"no match found for /hello/","status":404}
Para realizar llamadas a la API exitosas, necesitas la clave de API.
Obtén la clave de consumidor de la app para desarrolladores que creaste. Este valor es el La clave de API que necesitas para llamar al proxy de prueba:
curl -H 'x-api-key:your-edge-api-key' $GATEWAY_IP:80/hello/
Por ejemplo:
curl -H "x-api-key:DeX2eEesYAdRJ5Gdbo77nT9uUfJZql19" $GATEWAY_IP:80/hello/
Resultado:
Hello world
Si ves el mensaje "Hello World" respuesta, configuraste correctamente Edge Microgateway para llamar al servicio helloworld dentro de Kubernetes clúster.
Próximos pasos
Consulta la sección Tareas para obtener más información. agregar complementos personalizados, escalar la implementación, realizar cambios en la configuración y y otras tareas que desees realizar.