HEADER_lecciones_de_software

Instalación y configuración ODM 8.10.3 - AWS EKS

por Diego Alexander Arias, el 28 de diciembre de 2020

configuracion_ODM_Kubernetes

Luego conocer cómo realizar la Instalación y configuración ODM Kubernetes AWS, crearemos la base de datos externa a utilizar por ODM, crearemos los certificados de seguridad, realizar la instalación de ODM v. 8.10.3, configuramos el balanceador ALB y procederemos a configurar el servicio de kubernetes ALB Ingress Controller, para lograr consumir los servicios a través del balanceador.

Pasos para la instalación y configuración ODM 8.10.3 - AWS EKS

1. Crear una base de datos RDS

Abra la consola de Amazon RDS, en la esquina superior derecha, elija la región de AWS en la que desea crear la instancia de base de datos y en el panel de navegación, seleccione Bases de datos.

Elija Crear base de datos y escoja un método de creación de base de datos, seleccione Creación estándar, en la Opciones de motor, utilizar tipo de motor PostgreSQL y para la versión elija la última versión del motor.

Instalación y configuración ODM 8.10.3 - AWS EKS 1

En Plantillas, elija la plantilla que coincida con su caso de uso.

Instalación y configuración ODM 8.10.3 - AWS EKS 2

Instalación y configuración ODM 8.10.3 - AWS EKS 3

Opciones de conmutación por error Multi-AZ, almacenamiento IOPS aprovisionadas y habilitar la protección contra la eliminación, es recomendable usar estas características para cualquier entorno de producción.

Instalación y configuración ODM 8.10.3 - AWS EKS 4

En la sección Configuración, abra Configuración de credenciales, Desmarque la casilla Generar automáticamente una contraseña, Cambie el valor de Nombre y contraseña (postgres).

Instalación y configuración ODM 8.10.3 - AWS EKS 5

Elija Create database (Crear base de datos).

Los detalles de la nueva instancia de base de datos aparecen en la consola de RDS. La instancia de la base de datos tendrá el estado creating hasta que se cree la instancia y esté lista para el uso. Cuando el estado cambie a available, podrá conectarse a la instancia de base de datos.

Instalación y configuración ODM 8.10.3 - AWS EKS 6

Instalación y configuración ODM 8.10.3 - AWS EKS 7

Crea un secreto de base de datos

Para proteger el acceso a la base de datos, debe crear un secreto que encripte el usuario y la contraseña de la base de datos antes de instalar la versión de Helm.

$ kubectl create secret generic odm-db-secret --from-literal=db-user=postgres --from-literal=db-password=postgres

2. Gestionar certificado digital

Crear Certificado

Utilizar el siguiente comando para la generación de un certificado autofirmado.

$ openssl req -x509 -nodes -days 1000 -newkey rsa:2048 -keyout mycompany.key -out mycompany.crt -subj "/CN=*.mycompany.com/OU=it/O=mycompany/L=Paris/C=FR"

Cargar certificado en clúster AWS EKS

$ aws iam upload-server-certificate --server-certificate-name mycompany --certificate-body file://mycompany.crt --private-key file://mycompany.key

Validar la existencia del certificado y tomar el arn.

$ aws iam get-server-certificate --server-certificate-name mycompany

Nota: conservar arn:aws:iam::<AWS-AccountId>:server-certificate/mycompany

Genere JKS del certificado

Crear almacén de llaves a utilizar en el contenedor ODM

$ openssl pkcs12 -export -passout pass:password -passin pass:password -inkey mycompany.key -in mycompany.crt -name mycompany -out mycompany.p12

Importar certificado al almacén de llaves.

$ keytool -importkeystore -srckeystore mycompany.p12 -srcstoretype PKCS12

-srcstorepass password -destkeystore mycompany.jks -deststoretype JKS -deststorepass password

$ keytool -import -v -trustcacerts -alias mycompany -file mycompany.crt -keystore truststore.jks -storepass password -noprompt

3. Instalar una versión ODM Helm release

Prerrequisitos

Cree secreto Kubernetes

Crear un secreto de Kubernetes a partir del certificado generado en el paso: Genere JKS del certificado

         $ kubectl create secret generic mycompany-secret

         --from-file=keystore.jks=mycompany.jks

         --from-file=truststore.jks=truststore.jks

         --from-literal=keystore_password=password

         --from-literal=truststore_password=password

Validar que los secrets hayan existan, mediante el comando.

         $ kubectl get secrets

Descarga y configuración repositorio chart ODM

Validar que se encuentre el repositorio localmente, normalmente está dentro de los archivo con los binarios, en una subcarpetas con nombre charts.

Instalar una versión ODM Helm release

 

Asegurar igualmente que se descarga el archivo manifest.yaml, el cual se utiliza como archivo de entrada para el comando de instalación del HELM.

Consideraciones previas a instalar ODM

Antes de lanzar el comando de instalación con HELM asegurar corregir lo siguiente:

  • En Helm V3 https://github.com/helm/helm/issues/3810 que genera un error como: Error: INSTALL FAILED: Chart requiere kubernetesVersion:> = XXX que es incompatible con Kubernetes vX.XX-xxxxx

Para solucionar este problema:

Modifique el chart usando: tar xvzf ibm-odm-prod-2.3.0.tgz, edite ibm-odm-prod/Chart.yaml y cambie en la línea: kubeVersion: '> = 1.11.0' por kubeVersion: '> = 1.11.0-0'

  • En ODM 8.10.3.0, un error impide la instanciación de la topología.

Para solucionar este problema:

Modifique el chart usando: tar xvzf ibm-odm-prod-2.3.0.tgz, edite ibm-odm-prod/ y edite el archivo values.yaml, posteriormente buscar "dc-jvm-options" y proceder a eliminar o comentar el bloque: recursos:

Instalar Version ODM 8.10.3.0 con Helm

Se requiere helm v3, para ejecutar comando helm install.

$ helm install my-odm-dev-release -f manifest.yaml --set        image.arch=amd64 --set

image.repository=<AWS-AccountId>.dkr.ecr.us-east-1.amazonaws.com --set

image.tag=8.10.3.0 --set image.pullSecrets=ecrodm --set

externalDatabase.type=postgres --set

externalDatabase.serverName=postgres.ciuclv206mko.us-east-1.rds.amazonaws.com --set externalDatabase.secretCredentials=odm-db-secret --set

externalDatabase.port=5432 --set customization.securitySecretRef=mycompany-secret

--set externalDatabase.databaseName=postgres ibm-odm-prod-2.3.0.tgz --debug 

Validar estado de instalación de versión.

$ kubectl get pods

4. Accede a los servicios ODM

Crear un application load balancer

Seguir las instrucciones para mayor detalle: https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html#w243aac23b7c17c10b3b1

Definir balanceador de carga

Abra la consola de Amazon EC2, en la barra de navegación, elija una región para el balanceador de carga. No olvide seleccionar la misma región que utilizó con las instancias EC2.

En el panel de navegación, elegir balanceador de carga y seleccionar Crear balanceador de carga.

Accede a los servicios ODM

Seleccionar tipo de balanceador de carga de aplicaciones y elegir Crear.

Accede a los servicios ODM 2

Configurar el balanceador de carga y el agente de escucha

Para configurar el balanceador de carga y el agente de escucha, se requiere:

  • Nombre: Introduzca un nombre para el equilibrador de carga (Eks-ALB-POCPopular).
  • Esquema y Tipo de dirección IP: Mantenga los valores predeterminados.
  • Listeners: Mantenga el valor predeterminado, que es un oyente que acepta tráfico HTTP en el puerto 80.

Accede a los servicios ODM 3

  • Zonas de disponibilidad: seleccione el VPC que utilizó para sus instancias EC2.

Accede a los servicios ODM 3

Elegir Siguiente: Configurar configuración de seguridad.

Configurar grupo de seguridad balanceador de carga

Permitirá que se comunique con los destinos registrados tanto en el puerto del agente de escucha como en el puerto de comprobación de estado.

Elegir Crear un nuevo grupo de seguridad, escriba el nombre y la descripción del grupo de seguridad o conserve los predeterminados y elija Siguiente: Configuración del enrutamiento.

Configurar grupo de seguridad balanceador de carga

Configure su grupo objetivo

Cree el grupo de destino que se va a utilizar para el direccionamiento de solicitudes.

  • Grupo objetivo: Mantener el valor predeterminado, Nuevo grupo objetivo.
  • Nombre: Introduzca un nombre para el nuevo grupo objetivo (TargetGroup-Eks-ODM).
  • Tipo de destino predeterminado (Instancia), protocolo (HTTP) y puerto (80).
  • Comprobaciones de salud: Mantenga la configuración predeterminada.

Elegir Siguiente: Registrar destinos

Configurar grupo de seguridad balanceador de carga 2

Configurar grupo de seguridad balanceador de carga 3

Registro de destinos con el grupo de destino

Para Instancias, seleccione una o más instancias, conserve el puerto predeterminado (80) y seleccione Añadir a registrado, cuando haya terminado de seleccionar y adicionar instancias, elija Siguiente: Consulte.

Configurar grupo de seguridad balanceador de carga 4

Proceda con la creación y prueba del balanceador de carga.

Crear un ALB Ingress Controller

Para complementar información seguir el siguiente link:

https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html#w243aac23b7c17c10b3b1

Crear proveedor IAM OIDC y asociarlo al cluster

Cree un proveedor IAM OIDC y asóciese con su clúster.

$ eksctl get cluster
$ eksctl utils associate-iam-oidc-provider --region us-east-1 --cluster cluster_EKS_ODM_prueba --approve

Descargue y configure política de IAM en pod ALB Ingress Controller

Esto permite realizar llamadas a las API de AWS en su nombre.

$ curl -o iam-policy.json

https://raw.githubusercontent.com/kubernetes-sigs/aws-alb-ingress-controller/v1.1.8/docs/examples/iam-policy.json


Cree una política de IAM llamada ALBIngressControllerIAMPolicy con el archivo descargado.

$ aws iam create-policy --policy-name ALBIngressControllerIAMPolicy --policy-document file://iam-policy.json

Tome nota del ARN que se devuelve(Ej. arn:aws:iam::<AWS-AccountId>:policy/ALBIngressControllerIAMPolicy)

Cree una cuenta de servicio de Kubernetes

Para crear una cuenta de servicio, un rol de clúster y un enlace de rol de clúster para ALB Ingress Controller, ejecute el siguiente comando:

$curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-alb-ingress-controller/v1.1.8/docs/examples/rbac-role.yaml

Abra el archivo rbac-role.yaml en un editor de texto y luego en la sección ServiceAccount del archivo, reemplace con su ID de cuenta de AWS y el nombre de función con su nombre de función de IAM.

Cresr una cuenta de servicio de Kubernetes

Aplicar la configuración en el servicio kubernete

$ kubectl apply -f rbac-role.yaml

Crear role IAM y asociarla a servicio kubernetes

Cree un rol de IAM para el controlador de ingreso de ALB y adjunte la política a la cuenta de servicio creada en el paso anterior.

$ eksctl create iamserviceaccount --region us-east-1 --name alb-ingress-controller --namespace kube-system --cluster cluster_EKS_ODM_prueba --attach-policy-arn arn:aws:iam::<AWS-AccountId>:policy/ALBIngressControllerIAMPolicy --override-existing-serviceaccounts --approve

Implementar un ALB ingress controller servicio ODM

Para mayor información y detalle ver:

https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html#w243aac23b7c17c10b3b1

$ curl https://raw.githubusercontent.com/kubernetes-sigs/aws-alb-ingress-controller/v1.1.4/docs/examples/alb-ingress-controller.yaml > alb-ingress-controller.yaml

Editar el archivo alb-ingress-controller.yaml y cambiar los campos:

- --cluster-name=<EKS>
- --ingress-class="alb"

Implementar un ALB ingress controller servicio ODM

Implementar el controlador de entrada ALB ingress para ODM

$ kubectl apply -f alb-ingress-controller.yaml

Validar que se encuentre el servicio desplegado y en estado running

$ kubectl get pods -n kube-system

Implementar el servicio de ingress para ODM

Escribe el descriptor de ingreso, debe definir una entrada para enrutar su solicitud a los servicios ODM, aquí hay un descriptor de muestra para implementar la entrada “mycompany”

Implementar el servicio de ingress para ODM

Comando para desplegar el ingress controller

$ kubectl apply -f ingress-mycompany.yaml

Validar estado despliegue a través del comando:

$ kubectl get ingress mycompany -n kube-system

Validar Servicios

Con esta topología de ODM en su lugar, puede acceder a aplicaciones web para crear, implementar y probar sus servicios de decisiones basados ​​en reglas.

Se puede acceder a los servicios desde las siguientes URL:

Componente URL Usuario/Contraseña
Centro de decisiones https://$ROOTURL/decisioncenter/ odmAdmin/odmAdmin
Consola de Decisión Server https://$ROOTURL/res/ odmAdmin/odmAdmin
Tiempo de ejecución de Decisión Server https://$ROOTURL/DecisionService/ odmAdmin/odmAdmin

 

Conceptos de Testing

Temas:Desarrollo de Software

Lecciones Pragma

Lecciones en Academia Pragma

Aquí encontrarás tutoriales técnicos para que apliques en temas de desarrollo de software, cloud, calidad en software y aplicaciones móviles. 

También puedes visitar nuestro Blog con contenido actual sobre Transformación Digital, Marketing, Conocimiento de Usuario y más. 

Blog

Suscríbete a la academia

Descarga la Guía para trabajar con ambientes IBM Websphere Portal