Enseñarle 7 pasos para crear rápidamente un entorno de integración continua de GitLab

Imagen de la cabeza.jpg

Autor | Cuncheng Alibaba Cloud Elastic Computing Team
Source | Cuenta oficial sin servidor, compilado a partir del "Curso abierto de tecnología sin servidor"

Introducción : esta sección del curso le presenta cómo crear rápidamente un entorno de integración continua de GitLab basado en los servicios de Alibaba Cloud Serverless Kubernetes (ASK).

PREGUNTAR introducción

1.PNG

En primer lugar, ¿qué es ASK? ASK es un servicio de contenedor de Kubernetes sin servidor lanzado por Alibaba Cloud. En comparación con el servicio tradicional de Kubernetes, la característica más importante de ASK es que se conecta al clúster de Kubernetes a través de nodos virtuales, y el nodo maestro de Kubernetes también está completamente alojado en Alibaba Cloud Container Service. Por lo tanto, en todo el clúster de ASK, los usuarios no necesitan administrar y operar nodos reales, sino que solo deben preocuparse por los recursos del Pod. El Pod en ASK está alojado en Alibaba Cloud Elastic Container Instance ECI.

Las principales ventajas de ASK son las siguientes:

  • Reducir el umbral para que los usuarios usen Kubernetes sin administrar los nodos de nodo;
  • No es necesario considerar la planificación de la capacidad del nodo;
  • Facturación bajo demanda basada en Pod;
  • La falla del tiempo de inactividad tiene un impacto pequeño y es de nivel de pod.

Al mismo tiempo, los principales escenarios aplicables de ASK son:

  • Flexibilidad comercial en línea (transmisión de video en vivo, educación en línea);
  • Computación de Big Data (Spark);
  • Tarea cronometrada
  • Integración continua CI / CD.

Ventajas de GitLab CI en ASK

Hablando de CI / CD, las dos herramientas más familiares son Jenkins y GitLab CI. Con la popularidad del rol de Devops, cada vez más empresas adoptan GitLab CI como una herramienta de integración continua. Permítanme presentarles Descarga GitLab CI en ASK. gitlab-runner está registrado en el clúster ASK como un Pod, y cada etapa de CI / CD corresponde a un Pod.

2.png

Las ventajas de esto son las siguientes:

  • Alta disponibilidad de servicio (Implementación + PVC);
  • No es necesario mantener los nodos maestro y nodo de K8. Sin tareas de construcción, solo se debe ejecutar un pod (gitlab-runner);
  • Active una tarea de compilación, inicie un Pod y cargue a pedido;
  • La falla del tiempo de inactividad solo afectará al Pod como una unidad.

Demostración práctica

A continuación, le mostraré cómo implementar gitlab-runner en el clúster ASK de Alibaba Cloud y cómo implementar aplicaciones Java en el clúster ASK a través de gitlab CICD Pipeline.

Los principales puntos de conocimiento involucrados son:

  • Guarde la configuración de gitlab runner y ejecutor a través de configMap;
  • Guarde las credenciales de acceso del clúster ASK y la clave del almacén espejo a través del secreto;
  • Cache runner cache y maven warehouse a través de PVC;
  • Almacene en caché las imágenes del contenedor a través de imageCache.

Todos los archivos de configuración (yaml) involucrados en esta lección se han subido a github para que todos los descarguen [ enlace de descarga ].

Comencemos la demostración. Para ver la demostración en video, haga clic en [ Ver enlace ].

1. Prepare el grupo ASK

3.png

  • Después de que se crea el clúster, existe la dirección del enlace de la red pública del servidor API en la información básica

4.png

  • Hay credenciales de acceso al clúster ASK en la información de conexión

5.png

2. Prepare PV / PVC

Prepare dos discos nas, uno para gitlab runner cache y otro para maven warehouse, reemplace la dirección y la ruta del servidor nas usted mismo

kubectl apply -f mvn-pv.yaml
kubectl apply -f mvn-pvc.yaml
kubectl apply -f nas-pv.yaml
kubectl apply -f nas-pvc.yaml

3. Prepare el secreto

  • Copie las claves públicas y privadas del certificado en kubeconfig en secret, secret.yaml
kubectl apply -f secret.yaml
  • La información de autenticación del registro de la ventana acoplable, ECI admite extracción sin contraseña, pero aún se debe utilizar la imagen de la ventana acoplable push
kubectl create secret docker-registry registry-auth-secret --docker-server=registry.cn-hangzhou.aliyuncs.com --docker-username=${xxx} --docker-password=${xxx}
  • Para ver el secreto generado, puede usar el siguiente comando
kubectl get secret registry-auth-secret --output=yaml

4. Prepare ConfigMap

Copie la URL y el token del corredor de gitlab y la dirección del servidor api del clúster ASK en config.yaml

kubectl apply -f config-map.yaml

5. Prepare imageCache (opcional, ahorre tiempo de extracción de imágenes)

Actualmente, AS K instala imagecache-crd de forma predeterminada, puede usar el siguiente comando para consultar, si no, puede instalarlo usted mismo

# 查看image cache crd 是否安转
kubectl get crd
# 安装image cache crd
kubectl apply -f imagecache-crd.yaml
# 制作imagecache
kubectl apply -f imagecache.yaml

6. Implementar gitlab runner

kubectl apply -f gitlab-runner-deployment.yaml

6.png

7. Realice una tarea sencilla de CI

7.png

El .gitlab-ci.yml en git repo es similar a Jenkinsfile y define el flujo de trabajo de la tarea de compilación. Modificamos el archivo src / main / webapp / index.jsp en el proyecto de demostración, y luego git commit -m "change index info" para enviar. La tarea de canalización en gitlab se activa y todo el proceso implica la compilación, el empaquetado y la implementación.

8.png

9.png

Comparación de costos

La comparación de costos entre el uso de ASK y un ECS prepago:

10.png

A partir del cálculo de costos anterior, se puede ver que cuando tiene menos de 126 tareas de CI / CD por día, usar ASK + ECI será más rentable que comprar un ECS con una suscripción mensual. Mientras disfruta de pagar bajo demanda, también reduce los costos de operación y mantenimiento. Más importante aún, cuando la escala comercial se expande y el número de tareas de CI / CD aumenta drásticamente, no hay necesidad de preocuparse por la expansión de los nodos de nodo. La solución ASK + ECI se puede considerar como un estándar hecho a medida para escenarios de integración continua de CI / CD.

La cuenta oficial de Serverless publica la información más reciente sobre la tecnología Serverless, recopila el contenido más completo de la tecnología Serverless, presta atención a la tendencia sin servidor y presta más atención a la confusión y los problemas que encuentra en su práctica.

Supongo que te gusta

Origin blog.51cto.com/14902238/2562256
Recomendado
Clasificación