Instala y administra Spinnaker en Google Cloud Platform

¿Quiero usar esta solución?

Spinnaker en Google Cloud Platform es una herramienta que ayuda a instalar fácilmente un instancia de Spinnaker lista para la producción y administrar esa instancia a lo largo del tiempo.

Esta solución es para…

  • Cualquiera que desee instalar fácilmente Spinnaker de código abierto, en una configuración lista para la producción, en Google Cloud Platform

  • Cualquiera que desee hacer una prueba con Spinnaker, a fin de decidir si es la solución de EC adecuada para sus necesidades

  • Administradores que gestionarán una o más instancias de Spinnaker de larga duración, como agregar administradores adicionales, agregar cuentas, actualizar, etcétera.

Esta solución te da…

  • Recomendaciones y prácticas recomendadas de Google para instalar y ejecutar Spinnaker en GCP

  • Preintegración con muchos otros servicios con los que se suele usar Spinnaker

  • Aplicaciones de muestra y otras ayudas para tener una experiencia más fluida

¿Qué es esta solución?

Spinnaker en Google Cloud Platform es una solución para instalar y administrar Spinnaker en Google Cloud Platform. Consiste en una consola de instalación y administración, Spinnaker y sus microservicios, y aplicaciones de muestra.

¿Qué es Spinnaker?

Spinnaker es una plataforma de entrega continua de múltiples nubes y código abierto para actualizar cambios de software con alta velocidad y confianza.

Si deseas obtener más información sobre Spinnaker, visita el sitio web de Spinnaker.

¿Qué es Deck?

Deck es la IU de Spinnaker. Accedes a Deck de una de las siguientes maneras:

  • Mediante redirección de puertos

    La consola de administración proporciona un comando para reenviar el puerto 8080 y un botón que permite hacer clic y acceder a Deck a través de ese puerto.

  • Por Internet, en un dominio disponible públicamente

    Este dominio está protegido con Identity-Aware Proxy.

Consola de administración

La consola de administración te permite hacer lo siguiente con facilidad:

  • Instala Spinnaker

    Spinnaker para Google Cloud Platform te permite obtener una versión de trabajo de Spinnaker de código abierto que se ejecuta en Google Kubernetes Engine. Una vez instalada, puedes ponerla a disposición de tus usuarios. El flujo de instalación comienza en la consola de administración después de que inicias la solución.

  • Administra Spinnaker

    Con esta misma consola de administración puedes administrar y operar la instalación de Spinnaker, por ejemplo, agregar administradores y crear cuentas para implementar en clústeres de GKE adicionales o también en otros proveedores.

    El flujo de administración comienza después de que terminas de instalar Spinnaker. También puedes abrirlo directamente a través de un vínculo desde la página de aplicaciones de GKE en Google Cloud Console.

La consola de administración utiliza Cloud Shell, con instrucciones que se muestran en una guía del lado derecho de la ventana. La guía muestra los comandos que se ejecutarán, y puedes hacer clic en ellos para copiarlos en Cloud Shell y ejecutarlos allí.

¿Qué es Cloud Shell?

Cloud Shell es una herramienta de Google Cloud Platform que proporciona acceso de línea de comandos a GCP.

¿Cómo encuentro y restablezco las instrucciones?

  • Si desaparecen las instrucciones del panel de la derecha, ingresa el siguiente comando en Cloud Shell:

    cloudshell launch-tutorial ~/spinnaker-for-gcp/scripts/install/provision-spinnaker.md
    
  • Si necesitas encontrar el camino de regreso a la consola de administración, puedes seguir las instrucciones de Instalar Spinnaker en Google Cloud Platform para relanzarla.

  • Regresa a este documento si te pierdes.

¿Se me factura por esto?

Se te facturan los recursos de Google Cloud Platform que se instalan como parte de Spinnaker para Google Cloud Platform.

…y posiblemente otros recursos, en función de las opciones que seleccionas cuando instalas y configuras Spinnaker. Puedes usar la calculadora de precios de Google Cloud Platform para estimar el costo de esta solución.

Obtén más información sobre los precios de Google Cloud y la prueba gratuita.

Instalar y usar Spinnaker en Google Cloud Platform

Si quieres acceder a esta solución, debes hacer clic en el botón Ir a Spinnaker para Google Cloud Platform en la página de Spinnaker para GCP en Marketplace.

Después de instalar Spinnaker para Google Cloud Platform, puedes acceder a Spinnaker y a la consola de administración desde Google Cloud Console.

Instala Spinnaker en Google Cloud Platform

  1. Puedes iniciar la solución desde la página Spinnaker para GCP del Marketplace si haces clic en el botón Ir a Spinnaker para Google Cloud Platform.

  2. Cuando pregunte si deseas abrir en Cloud Shell, haz clic en Continuar.

    Se abre Cloud Shell, junto con un árbol de archivos que muestra los archivos del repositorio de Spinnaker y las instrucciones.

    Consola de administración

    El repositorio spinnaker-for-gcp está clonado en tu Cloud Shell.

  3. Sigue las instrucciones que se muestran en la pantalla.

El flujo en la consola de administración te guía a través del proceso de instalación y te presenta los comandos, que puedes copiar en la ventana de Cloud Shell y, luego, ejecutar si presionas Entrar. Los comandos ejecutan secuencias de comandos que automatizan el proceso de instalación de Spinnaker en GKE.

Si el panel de instrucciones desaparece en algún momento, puedes restablecerlo con el siguiente comando, desde Cloud Shell:

cloudshell launch-tutorial ~/spinnaker-for-gcp/scripts/install/provision-spinnaker.md

Acceder a Spinnaker

Después de instalar Spinnaker, puedes ejecutar un comando para reenviar puertos, lo que te permitirá acceder a la IU Deck y comenzar a usar Spinnaker. Puedes compartir el comando de reenvío de puertos con otros usuarios y, si tienen acceso al clúster de GKE, pueden comunicarse con Deck (la IU de Spinnaker) en el puerto 8080.

Alternativamente, puedes exponer Spinnaker en la Internet pública, protegido con Identity-Aware Proxy.

Ambas alternativas se describen a continuación.

Accede a Spinnaker mediante el reenvío puertos

Puedes ejecutar un comando en Cloud Shell en la consola de administración para redireccionar puertos y así acceder a Spinnaker desde localhost:8080.

  1. Haz clic para copiar el comando connect_unsecured.sh en la consola de administración y presiona Entrar.

    Esto reenvía el puerto local 8080 al puerto 9000 (el puerto que usa Deck) en el pod que ejecuta Deck.

  2. Haz clic en el vínculo “Conectar a Spinnaker…”. Esto destaca el botón Vista previa.

  3. Haz clic en el botón Vista previa destacado y selecciona Vista previa en el puerto 8080.

    Haz clic para obtener una vista previa en el puerto 8080

Se abrirá Deck, la interfaz de usuario de Spinnaker, en tu navegador. El sitio de documentación de Spinnaker contiene instrucciones para usar Spinnaker.

En la consola de administración, hay algunas otras acciones que puedes realizar:

  • Haz que Spinnaker esté disponible de forma segura para tus equipos sin tener que redireccionar puertos.
  • Mira el registro de auditoría de Spinnaker
  • Consulta registros de microservicios de Spinnaker
  • Haz clic en Siguiente para pasar a la parte de administración de Spinnaker de la solución.
  • Comparte el comando de redirección de puertos con otros usuarios. Si tienen acceso al clúster de GKE, pueden llegar a Deck (la IU de Spinnaker) en el puerto 8080.

Brinda a los usuarios acceso a Spinnaker por Internet

La consola incluye un comando que te ayuda a crear un extremo seguro desde el cual exponer Spinnaker a los usuarios, de forma segura, a través de Internet.

  1. Navega al paso 2 del flujo de instalación en la consola de administración (“Conectar a Spinnaker”).

  2. En “Exponer Spinnaker públicamente”, haz clic en el botón para copiar el comando a la línea de comandos y presiona Entrar.

    La secuencia de comandos crea un nuevo extremo desde el que se puede entregar la instancia de Spinnaker. Cuando finalice la secuencia de comandos, la guía de la consola pasará a mostrar instrucciones para configurar OAuth de modo que los usuarios puedan acceder a este extremo.

  3. Sigue esas instrucciones en pantalla.

    Cuando crees las credenciales de OAuth, asegúrate de copiar el ID de cliente y el secreto generados. Deberás proporcionarlos cuando lo solicite la secuencia de comandos.

Ahora tienes un extremo de Spinnaker que puedes compartir con los usuarios, que se autentican para entrar con OAuth2. En la consola de administración, se muestra un vínculo a Spinnaker. También hay un vínculo en la página de aplicaciones de GKE para esta instancia de Spinnaker.

Administra Spinnaker

Usa la consola de administración para administrar tu instancia de Spinnaker, que incluye lo siguiente:

  • Agrega administradores (operadores)
  • Agrega cuentas de proveedor de servicios en la nube

    Un proveedor es el entorno de la nube (por ejemplo, Google Compute Engine) en el que implementarás tus aplicaciones

  • Actualiza Spinnaker

  • Invoca comandos de Halyard para configurar Spinnaker

  • Invoca comandos spin para administrar recursos de Spinnaker, como aplicaciones y canalizaciones

  1. Accede a la parte de administración de esta consola.

    Usa una de las siguientes opciones:

    Si la consola ya está abierta:

    1. Al final del flujo de instalación, haz clic en Siguiente.

    2. Copia el comando en la página Próximos pasos y presiona Entrar.

      El panel de instrucciones cambia para iniciar el proceso de administración.

      Comienza a administrar Spinnaker desde la consola

    Si la consola aún no está abierta, haz lo siguiente:

    1. Ve a la página de aplicaciones de Google Kubernetes Engine.

    2. Abre la aplicación Spinnaker.

      La descripción de la aplicación incluye un vínculo: Abrir entorno de administración en Cloud Shell.

    3. Haz clic en ese vínculo para abrir la consola de administración, que ahora comienza con la función de administración/administrador.

      Comienza a administrar Spinnaker desde la página de aplicaciones de GKE

    4. Selecciona tu proyecto de GCP y haz clic en Iniciar.

Agrega administradores para tu instancia de Spinnaker

Puedes dar acceso a más operadores, que luego pueden usar la consola de administración.

  1. En la página de permisos de IAM, asigna a la persona la función Owner en el proyecto de GCP en el que instalaste Spinnaker.

  2. Si estás entregando Spinnaker en un extremo protegido por IAP, y si la persona a la que le estás asignando derechos de operador aún no tiene acceso de usuario, usa el siguiente comando (que también se encuentra en el paso 5 de la parte de administración de la consola):

    ~/spinnaker-for-gcp/scripts/manage/grant_iap_access.sh
    

    … y sigue las instrucciones en la línea de comandos de Cloud Shell.

Agrega cuentas de proveedor de servicios en la nube

Puedes usar la consola de administración a fin de agregar cuentas para tantos proveedores de servicios en la nube como Spinnaker admite. Necesitarás una para cada nube en la que los usuarios deseen implementar aplicaciones. Por ejemplo, si implementarán aplicaciones en Google Compute Engine y AWS, agregarás una cuenta de proveedor para cada una.

La consola de administración incluye el siguiente comando para agregar una cuenta de GKE:

~/spinnaker-for-gcp/scripts/manage/add_gke_account.sh

Y para Google Compute Engine:

~/spinnaker-for-gcp/scripts/manage/add_gce_account.sh

Y para Google App Engine:

~/spinnaker-for-gcp/scripts/manage/add_gae_account.sh

Puedes ejecutar estos comandos desde la consola de administración o ingresarlos en Cloud Shell contra una instancia existente de Spinnaker.

Ejecuta comandos de Halyard

Puedes invocar cualquier comando de hal para configurar y administrar tu instalación de Spinnaker.

Para hacerlo, invoca el comando desde Cloud Shell en la consola de administración, después de que hayas instalado Spinnaker.

Actualiza Spinnaker

  1. Busca la versión a la que deseas actualizar.

    La página Versiones, en spinnaker.io, enumera las versiones estables disponibles.

  2. En la consola, navega al flujo de administración:

    ~/spinnaker-for-gcp/scripts/manage/update_console.sh

  3. Haz clic en Siguiente hasta que veas la pantalla titulada “Secuencias de comandos para comandos comunes”.

  4. En “Actualiza Spinnaker”, copia el primer comando a shell y presiona Entrar.

    Ese comando es…

    cloudshell edit \
     ~/spinnaker-for-gcp/scripts/install/properties
    
  5. Edita la versión de Spinnaker en el archivo properties que se muestra.

    export SPINNAKER_VERSION=1.19.3
    

    En la página Versions de Spinnaker, se muestran las versiones disponibles más recientes.

  6. Usa el siguiente comando para invocar a Halyard y aplicar los cambios:

    ~/spinnaker-for-gcp/scripts/manage/update_spinnaker_version.sh
    

Reinicia la consola de administración.

Si necesitas reiniciar la consola por algún motivo (por ejemplo, si cerraste la pestaña o la ventana), puedes hacerlo de la misma manera que la iniciaste. También puedes iniciarla desde la página de aplicaciones de GKE en Google Cloud Console, si ya instalaste Spinnaker para Google Cloud Platform.

Cuando reinicias la consola, te pregunta si deseas reanudar desde donde te quedaste, si lo deseas.

Actualiza la consola de administración

  1. En la consola de administración, navega al paso 3, “Secuencias de comandos para comandos comunes”, y desplázate hasta la parte inferior de la página.

  2. Ejecuta el comando que se muestra en “Actualizar el entorno de administración”.

La consola de administración se actualiza para incluir los últimos cambios.

Quita Spinnaker para Google Cloud Platform

Si deseas quitar Spinnaker por cualquier motivo, sigue estos pasos:

  1. Abre la consola de administración y haz clic en Siguiente hasta llegar a la página “Borrar Spinnaker”.

  2. Copia el comando en la terminal de Cloud Shell y presiona Entrar.

Se borrarán todos los recursos que se crearon para esta instancia de Spinnaker y cualquier recurso existente en el que se haya implementado.

Aplicaciones de muestra

La solución Spinnaker para Google Cloud Platform viene con aplicaciones de muestra que te ayudarán a comenzar a usar Spinnaker.

Para instalarlas…

  1. En la consola de administración, haz clic en Siguiente hasta que llegues al paso titulado “Usa Spinnaker”.

  2. En Instala aplicaciones y canalizaciones de muestra, haz clic en el botón para pegar el comando y presiona Entrar.

    Cloud Shell muestra una lista de aplicaciones de muestra disponibles, numeradas.

  3. Presiona el número correspondiente a la aplicación que deseas o el número correspondiente a “Salir” para salir sin instalar ninguna.

  4. Presiona Entrar.

    El panel del instructivo ahora muestra orientación para la aplicación de muestra.

  5. Para salir de la app de muestra y regresar a la sección de administración de la consola, haz clic en Inicio y luego en Siguiente. Luego, desplázate hasta la parte inferior de la página “Comenzar una compilación nueva”. y ejecuta el comando en “Volver a la consola de Spinnaker”.

Otras consideraciones

Spinnaker para arquitectura GCP

Spinnaker y sus microservicios se instalan en GKE con la siguiente arquitectura:

arquitectura de Spinnaker en GCP

Instala Spinnaker en un clúster existente

Puedes instalar la instancia o instancias de Spinnaker en una infraestructura preexistente, en lugar de hacer que esta solución cree una nueva.

El clúster debe tener lo siguiente:

  • Alias de IP habilitados, ya que esta usa instancia alojada de Redis

  • Permiso completo de Cloud Platform para sus nodos si usas la cuenta de servicio predeterminada del proyecto

Antes de ejecutar la secuencia de comandos de instalación, haz lo siguiente:

  1. Copia y ejecuta el siguiente comando (que también está disponible en el paso 1 del flujo de instalación):

    cloudshell edit \
        ~/spinnaker-for-gcp/scripts/install/properties
    

    El archivo properties se abre en el editor de archivos.

  2. Edita esta sección del archivo properties para identificar el clúster de Kubernetes en el que se instalará Spinnaker:

    # If cluster does not exist, it will be created.
    export GKE_CLUSTER=$DEPLOYMENT_NAME
    export ZONE=us-west1-b
    export REGION=us-west1
    
  3. Del mismo modo, edita otras propiedades para identificar otras cuentas y la infraestructura existente que desees usar, si corresponde.

    Por ejemplo, una instancia actual de Cloud Memorystore Redis, un depósito o una cuenta de servicio. En cada caso, si la infraestructura no existe, la creará la secuencia de comandos de instalación.

Administra varias instalaciones de Spinnaker

Si ejecutas varias instancias de Spinnaker, deben estar en clústeres separados y, por lo tanto, en diferentes contextos de Kubernetes.

Para administrar una de esas instalaciones…

  1. Obtén tu credencial

    gcloud container get-credentials
    
  2. Cambia al contexto de Kubernetes apropiado.

    kubectl config use-context <CONTEXT_NAME>
    
  3. Busca la configuración almacenada en ese clúster.

    ~/spinnaker-for-gcp/scripts/manage/pull_config.sh.
    

La configuración que hay ahora en ~/spinnaker-for-gcp/scripts/install/properties es la de esa instancia de Spinnaker. Realiza las tareas de administración habituales disponibles, como ejecutar comandos hal. Spinnaker aplica esos comandos a la instancia de Spinnaker en el contexto elegido.