Nota de Prerrequisitos
Antes de comenzar con el despliegue de la plataforma One Connect, asegúrate de cumplir con los siguientes requisitos:
Sistemas Operativos Compatibles:
Los nodos del clúster de Kubernetes deben utilizar sistemas operativos Linux.
Afinidad para Otros Sistemas Operativos:
Si los nodos del clúster utilizan sistemas operativos distintos a Linux, será necesario configurar la afinidad (affinity) en el setup para asegurarse de que los procesos se ejecuten únicamente en nodos con Linux. Para este ajuste, contacta al equipo de Onibex, quienes te brindarán soporte e instrucciones específicas para la instalación.
Requiere de archivos adjuntos .zip oneconnect-kubernetes
Creación de servicio de Kubernetes
- Ingresar a Azure services
- Seleccionar servicios Kubernetes Services.
- Crear un nuevo clúster de Kubernetes.
- En project details se seleccionará la suscripción.
- Agregar un nuevo grupo de recursos con un nombre que se pueda identificar en pasos siguientes.
- En clúster details, seleccionar el tamaño de instancia preseleccionado de Azure (One Connect puede ejecutarse en instancias de menor tamaño).
- Seleccionar la región donde se quiere desplegar el clúster y dejar las demás opciones por defecto, a menos que se necesite una opción específica.
- En este paso de los nodos, si es necesario, se pueden agregar nodos adicionales (no hay restricción de One Connect en el número de nodos necesarios).
- En la última instancia, Review + create, revisar los detalles del nuevo clúster que se creará.
- En la sección de network para pruebas conceptuales, es posible dejar las opciones por defecto a menos que se requiera una configuración específica para la red de despliegue.
- Para el tráfico de entrada y salida entre pods, se debe configurar la política de red en 'none', dado que todos los pods interactúan entre sí. En caso de que el clúster requiera una política de red específica, se debe revisar individualmente el tráfico que se permitirá entre los pods.
- Una vez revisada la sección de networking, presionar Create y el clúster puede ser creado por One Connect. Se necesitan las secciones mencionadas.
- Se observarán las siguientes pantallas mientras el clúster se crea.
- Una vez completado el proceso de creación, el nuevo clúster se podrá visualizar en la lista de servicios de Kubernetes.
Configuración previa de Kubernetes
Configuración de Archivos YAML en Kubernetes:
Se entregará una serie de archivos .txt que son manifiestos .yaml para ser aplicados en la configuración de Kubernetes. Todos los archivos se aplican de la misma forma:
- Ingresar al Kubernetes creado recientemente para iniciar la configuración.
- Seleccionar "Create", "Apply YAML" y copiar el texto del archivo referenciado en la documentación.
- Creación de Namespace "oneconnect" (manifiesto - namespace.txt):
- Para aplicar el manifiesto:
- Navegar hacia: "Namespaces".
- Seleccionar "Create", "Apply YAML".
Secret repositorio privado dockerhub de onibex. (dockerhub.yaml)
- Navegar hacia: "Configuration", "Secrets", "Create".
Kubernetes role builder account (role.txt)
- Navegar hacia: "Configuration", "Config Maps", "Create".
Service account builder service account (builder-serviceaccount.txt)
- Navegar a: "Configuration", "Config Maps", "Create".
Service account role binding (role-binding.txt)
- Navegar a: "Configuration", "Config Maps", "Create".
Creación de deployments One Connect
Se debe navegar al apartado de "Workloads", "Create", "Apply YAML" y aplicar los siguientes archivos. Esto es válido para todos los deployments y pueden ser creados en cualquier orden.
Son en total 7 manifiestos:
- apigateway-deployment.yaml
- auth-deployment.yaml
- builder-deployment.yaml (revisar configuración en la nota al final de este paso)
- cwcback-deployment.yaml
- emailbuilder-deployment.yaml
- logs-deployment.yaml
- metrics-deployment.yaml
NOTA
Para el archivo builder-deployment.yaml:
- El deployment incluye una variable de entorno llamada KUBERNETES_ISINGRESSACTIVE.
- Si deseas habilitar el acceso a los servicios de los workspaces creados a través de internet mediante un Ingress, establece el valor de esta variable en true. En este caso, es obligatorio completar el Paso 5.
- Si no se requiere conexión a internet, configura el valor en false. Esto cerrará el acceso externo y será necesario realizar el Paso 6 para crear un punto de entrada interno para los servicios
Creación de servicios en OneConnect
Se debe navegar al apartado de "Services and Ingress", "Create", "Apply YAML" y aplicar los siguientes archivos. Esto es válido para todos los servicios y pueden ser creados en cualquier orden. Son en total 7 servicios:
- apigateway-service.yaml
- auth-service.yaml
- builder-service.yaml
- cwcback-service.yaml
- emailbuilder-service.yaml
- logs-service.yaml
- metrics-service.yaml
Configuración del clúster para Ingress de Producer (OPCIONAL)
NOTA: Este paso aplica únicamente si, durante el Paso 3 (creación de los deployments), la variable de entorno KUBERNETES_ISINGRESSACTIVE
en el manifiesto builder-deployment.yaml
se configuró con el valor true
. - Se debe navegar al apartado de "Services and Ingress", seleccionar "create" y posteriormente dar clic en "ingress". Debería aparecer un pop-up para habilitar la configuración necesaria en el clúster para tener ingress, como se muestra en la imagen. Dar clic en el botón "Enable".
- Se debe esperar unos minutos mientras se reconfigura el clúster.
- Será posible navegar al apartado de "Services and Ingress", seleccionar "Ingress" y la opción "Create" estará habilitada.
- Para crear un Ingress en Azure, no se debe aplicar el manifiesto
.yaml
que viene en la configuración. En su lugar, se debe utilizar el asistente de Azure en la opción "Create, Ingress".
- Deben ser creados dos Ingress: uno llamado
producer-oneconnect
y otro llamado apigateway
, ambos en el namespace "oneconnect". En ambos casos, se hace referencia al servicio apigateway
. En el momento de la creación, los pasos son igualmente válidos para ambos servicios.
- El paso de la creación del Key Vault debe realizarse una sola vez y solo se deben agregar más certificados en caso de que sean dominios diferentes para el apigateway y el oneconnect.
- Se debe crear un nuevo Key Vault porque la política de Azure para Ingress los requiere como obligatorios.
- Se debe hacer clic en la opción "Select a certificate" y crearlo con las opciones por defecto.
- Se puede seleccionar el Key Vault creado y debe elegirse al momento de crearlo. En la opción "Select Certificate", se debe convertir el certificado al formato
.pfx
para poder importarlo y hacer referencia en el Key Vault.
- Se puede proceder a revisar la configuración y crear el ingress.
Creación de un load balancer interno como punto de entrada privado
NOTA: Si la variable de entorno KUBERNETES_ISINGRESSACTIVE
está configurada en false
, debes seguir este paso para:
- Mantener los servicios restringidos exclusivamente al entorno interno sin conexión a internet.
- Generar un punto de entrada privado que permita el acceso al portal de usuario y a los workspaces creados.
Instrucciones:
- Navega al apartado "Services and Ingress" en el clúster de Kubernetes.
- Selecciona las opciones "Create", luego "Apply YAML".
- Aplica el manifiesto
Internal-loadbalancer.yaml
para configurar el balanceador de carga interno.
Esto creará un punto de entrada privado que garantizará la conectividad dentro del entorno interno en Azure.
Este manifiesto viene configurado para crear el punto de entrada interno al apigateway que se debe colocar en la conexión del frontend de la plataforma de usuario de oneconnect.
Después de que se genere el load balancer, la IP que aparece como "external" es la IP privada a la que se debe abrir la conexión para los servicios en la nube, en el puerto 9000.
Por ejemplo, un endpoint válido para realizar peticiones REST de login sería: http://10.224.0.222:9000/auth/api/v1/auth/signin
Opcionalmente, si se requiere generar una IP interna para un workspace y no se puede usar el cluster IP del despliegue, después de generar un workspace se puede seguir el mismo paso usando el manifiesto internallb-workspace.yaml
y cambiar los valores en XXX por el nombre del workspace generado.
Debe verse de esta forma en el YAML del workspace, en la sección de deployment dentro de workloads.
Copiar el valor del label "oneconnect"
Esto generará un load balancer similar, donde la IP externa será la IP privada que se debe colocar en la configuración de SAP.