Instalador de Sensedia Service Mesh

Sobre el instalador

El instalador de Sensedia Service Mesh se ha simplificado.

En 3 pasos ya tienes Sensedia Service Mesh instalado en su cluster.

Requerimientos

  • Un cluster Kubernetes.

    • Las versiones de Kubernetes soportadas son 1.22 - 1.25.

  • Cualquier herramienta necesaria para interactuar con su Kubernetes o proveedor de nube. Normalmente, esto incluye una herramienta de interfaz de línea de comando. A continuación encontrará algunos enlaces útiles para obtener estas herramientas, así como para consultar la documentación de su proveedor si necesita información más detallada:

  • Docker, para ejecutar el instalador.

  • Cert-Manager (el gestor de certificados nativo de Kubernetes)

  • Proveedor de OpenId Connect

  • Una conexión con Keycloak

Paso 01: Obtenga los archivos de configuración

Dentro del directorio deseado, ejecute el siguiente comando para obtener los archivos de configuración que utilizará el instalador:

curl -L https://sensedia-mesh-installer.sensedia.com/ | sh -

Si el comando anterior se ha ejecutado correctamente, se creará el directorio sensedia-mesh-config en la ubicación donde se ha ejecutado. Este directorio contiene los siguientes archivos:

.
├── .env
├── setup.sh
└── values
    └── sensedia
        ├── keycloak-adp-values.yaml
        ├── manager-values.yaml
        └── operator-values.yaml

Los archivos .env, keycloak-adp-values.yaml y manager-values.yaml deberán ser modificados en el paso siguiente.

El archivo operator-values.yaml deberá, en principio, permanecer vacío. Si es necesario, el equipo de Sensedia proporcionará información para añadir a él.

Paso 02: Configuración de la instalación

La instalación de Sensedia Service Mesh requiere algunas configuraciones.

Para realizarlas, es necesario modificar los siguientes archivos contenidos en el directorio sensedia-mesh-config:

  • .env

  • values/sensedia/keycloak-adp-values.yaml

  • values/sensedia/manager-values.yaml

Las siguientes subsecciones ofrecen instrucciones sobre cómo realizar las configuraciones de instalación.

Indique la URL del repositorio Helm

  1. Contacte con Sensedia para obtener la URL del repositorio Helm;

  2. Sustituye el parámetro <HELMR> en el archivo .env por la URL que ha obtenido:

# Helm repository for Sensedia Mesh
SENSEDIA_HELM_REPO=<HELMR>

# Attention!!! Be careful when changing the value to true! It will be used to remove Istio and Sensedia Mesh
FORCE_UNINSTALL_SERVICES=false

El instalador no solicita confirmación antes de eliminar los servicios.

Por lo tanto, para evitar que los servicios sean eliminados por accidente, el valor por defecto de FORCE_UNINSTALL_SERVICES es false.

Configure Keycloak para gestionar los permisos de usuario

En el archivo values/sensedia/keycloak-adp-values.yaml, sustituye los valores indicados por <EDIT> por los valores correspondientes a su conexión con Keycloak:

# -- Enable to install Sensedia Mesh Keycloak Adapter
enabled: true

# -- keycloak connection parameters
keycloak:
  # -- The base url for connecting to a Keycloak Admin API. It should contain the scheme, host and port, but not path. For example: https://keycloak.mydomain.com/
  baseUrl: <EDIT>
  # -- Sensedia Service Mesh Client Id for authenticating when using Keycloak Admin Apis with the OAuth2 Client Credentials Protocol
  clientId: <EDIT>
  # -- Sensedia Service Mesh Client Secret for authenticating when using Keycloak Admin Apis with the OAuth2 Client Credentials Protocol
  clientSecret: <EDIT>
  # -- The Keycloak realm that Sensedia Mesh will authenticate to. All Sensedia Mesh client configuration and its users should belong to this realm
  realm: <EDIT>
Con el valor del campo enabled especificado como true, se instalará el Keycloak Adapter.

Autenticación

Sensedia Service Mesh requiere un proveedor de OpenId Connect para la autenticación.

Para configurar OpenId Connect, tendrá que crear un nuevo Client en su proveedor de OpenId y obtener la siguiente información de él:

  • Client Secret

  • Client Id

  • URL del proveedor

Con esta información, sustituye los valores indicados por <EDIT> en los campos manager.openid.baseUrl, manager.oauth.client.id y manager.oauth.client.secret del archivo values/sensedia/manager-values.yaml:

webUI:
  host: <EDIT>
  scheme: "http"

manager:
  sensediaAuth:
    enabled: false
  openid:
    enabled: true
    baseUrl: <EDIT>
    scopes: profile;email
  oauth:
    client:
      id: <EDIT>
      secret: <EDIT>
  iam:
    adapter: keycloak

ingress:
  enabled: true
  host: <EDIT>
  tls: true
  annotations: <EDIT>

Además de estos campos, existen los campos opcionales manager.openid.scopes y manager.openid.extraParams.

La configuración de manager.openid.scopes permite al Sensedia Service Mesh obtener el nombre de usuario y la dirección de correo electrónico y utilizarlos para mostrar la información del usuario en la interfaz gráfica del producto.

El valor de manager.openid.extraParams es específico de cada proveedor de OpenId. Puede ser utilizado para especificar parámetros de query a la URL de autenticación OpenID, en el formato "clave=valor". Por ejemplo, utilizando extraParams: "hd=sensedia.com", estamos solicitando al proveedor que sólo acepte cuentas de sensedia.com para iniciar una sesión.

Exposición de la interfaz Web de Sensedia Service Mesh

La instalación de Sensedia Service Mesh no expone la aplicación fuera del cluster Kubernetes. La razón de esto es permitir que cada usuario decida qué enfoque utilizar para hacerlo.

El punto de entrada de la aplicación es el servicio mesh-router del namespace sensedia-system. Para exponer la aplicación, simplemente exponga ese servicio.

Para obtener información detallada de cada proveedor de servicios de nube, consulte la siguiente documentación:

En el archivo values/sensedia/manager-values.yaml deberá indicar:

  • El host de su entorno provisionado en los campos webUI.host y ingress.host;

  • Las anotaciones específicas de su proveedor de servicios en nube en el campo ingress.annotations.

(Opcional) Configuración de su propia instancia de MongoDB

El instalador ya tiene una instancia de MongoDB preconfigurada.

Si desea utilizar la configuración de su propia instancia, edite el archivo values/sensedia/manager-values.yaml para incluir la información correspondiente como se indica a continuación:

manager:
  mongodb: # parameters for MongoDB connection
    host: "mesh-manager-mongodb"
    port: "27017"
    database: "mesh-manager"
    user: "admin" # application's database user, used by mesh-manager
    password: "admin"
    migrationUser: "admin" # migration's database user with "dbAdmin" role, used to create the required collections and indexes for the application
    migrationPassword: "admin"
mongodb: # demo feature. Creates a database automatically
  auth:
    rootPassword: "root" # sets the password for the root user
    databases: ["mesh-manager"] # database's name
    usernames: ["admin"] # initializes database with these users
    passwords: ["admin"] # sets the password for the users above, respectively

Paso 03: Instalación de Sensedia Service Mesh

  1. Acceda a un cluster de Kubernetes donde se instalará Sensedia Service Mesh.

  2. Compruebe que dispone de los permisos necesarios para acceder a este cluster. Para eso, puede intentar ejecutar el siguiente comando:

    kubectl get po -A
  3. En el directorio sensedia-mesh-config, ejecute el siguiente comando para instalar Sensedia Service Mesh y sus dependencias:

    ./setup.sh

Verificación de la instalación

Puede utilizar el siguiente comando para comprobar si las aplicaciones helm están instaladas:

helm list -n sensedia-system

NAME          NAMESPACE       REVISION UPDATED                        STATUS   CHART                        APP VERSION
mesh-init     sensedia-system 1        2022-03-08 16:04:25 -0300 -03  deployed sensedia-mesh-init-1.4.0     1.4.0.0
mesh-manager  sensedia-system 1        2022-03-08 16:50:28 -0300 -03  deployed sensedia-mesh-manager-1.4.0  1.4.0.0
mesh-operator sensedia-system 1        2022-03-08 16:04:25 -0300 -03  deployed sensedia-mesh-operator-1.4.0 1.4.0.0

Si hay algún error, intente repetir el proceso o contacte con el soporte de Sensedia.

Acceso a la interfaz Web de usuario

Obtenga el ingress mesh-manager con este comando:

kubectl get ingress sensedia-mesh-manager -n sensedia-system

NAME                    HOSTS                                                         ADDRESS                                                                  PORTS     AGE
sensedia-mesh-manager   manager-sensedia-mesh-api-platform-testing.sensedia-eng.com   e1a0fd59-sensediasystem-se-6385-1406950746.us-east-1.elb.amazonaws.com   80, 443   43m

El host debe coincidir con el configurado previamente al instalar el manager. A continuación, podrá acceder a la interfaz de usuario a través de su navegador.

Si todo el proceso ha ido bien, verás todas sus mallas (meshes) en la pantalla principal.

successful install
Pantalla principal de la interfaz gráfica de Sensedia Service Mesh

Desinstalación

  1. En el archivo .env del directorio sensedia-mesh-config, cambie el valor de la variable FORCE_UNINSTALL_SERVICES a true.

  2. Ejecute el siguiente comando en el directorio sensedia-mesh-config (esto desinstalará Sensedia Service Mesh y sus dependencias):

./setup.sh uninstallAll
El instalador no solicita confirmación antes de eliminar los servicios.
Thanks for your feedback!
EDIT

Share your suggestions with us!
Click here and then [+ Submit idea]