En aquest tema, explorarem com implementar un pipeline de CI/CD (Integració Contínua i Desplegament Continu) utilitzant Kubernetes. Aprendrem a configurar eines populars com Jenkins, GitLab CI/CD i Argo CD per automatitzar el procés de construcció, prova i desplegament d'aplicacions en un clúster de Kubernetes.

Objectius del Tema

  • Entendre els conceptes bàsics de CI/CD.
  • Configurar Jenkins per a CI/CD amb Kubernetes.
  • Utilitzar GitLab CI/CD per desplegar aplicacions en Kubernetes.
  • Implementar Argo CD per a desplegaments continus.

Conceptes Bàsics de CI/CD

Integració Contínua (CI)

La integració contínua és una pràctica de desenvolupament de programari on els desenvolupadors integren el seu codi en un repositori compartit diverses vegades al dia. Cada integració és verificada per una construcció automatitzada (incloent proves) per detectar errors tan aviat com sigui possible.

Desplegament Continu (CD)

El desplegament continu és una pràctica on el codi que passa les proves automàtiques és desplegat automàticament en un entorn de producció. Això permet que les aplicacions siguin desplegades de manera ràpida i fiable.

Configuració de Jenkins per a CI/CD amb Kubernetes

Instal·lació de Jenkins

  1. Desplegar Jenkins en Kubernetes:
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: jenkins
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: jenkins
      template:
        metadata:
          labels:
            app: jenkins
        spec:
          containers:
          - name: jenkins
            image: jenkins/jenkins:lts
            ports:
            - containerPort: 8080
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: jenkins
    spec:
      ports:
      - port: 8080
        targetPort: 8080
      selector:
        app: jenkins
    
  2. Accedir a Jenkins:
    • Exposa el servei de Jenkins utilitzant kubectl port-forward:
      kubectl port-forward svc/jenkins 8080:8080
      
    • Accedeix a Jenkins a través del navegador a http://localhost:8080.

Configuració del Pipeline de Jenkins

  1. Crear un nou pipeline:
    • A la interfície de Jenkins, crea un nou element de tipus "Pipeline".
  2. Definir el pipeline en el fitxer Jenkinsfile:
    pipeline {
        agent any
        stages {
            stage('Build') {
                steps {
                    sh 'echo "Building..."'
                    sh 'mvn clean package'
                }
            }
            stage('Test') {
                steps {
                    sh 'echo "Testing..."'
                    sh 'mvn test'
                }
            }
            stage('Deploy') {
                steps {
                    sh 'echo "Deploying..."'
                    sh 'kubectl apply -f k8s/deployment.yaml'
                }
            }
        }
    }
    

Utilitzar GitLab CI/CD per Desplegar Aplicacions en Kubernetes

Configuració de GitLab CI/CD

  1. Crear un fitxer .gitlab-ci.yml al repositori:

    stages:
      - build
      - test
      - deploy
    
    build:
      stage: build
      script:
        - echo "Building..."
        - mvn clean package
    
    test:
      stage: test
      script:
        - echo "Testing..."
        - mvn test
    
    deploy:
      stage: deploy
      script:
        - echo "Deploying..."
        - kubectl apply -f k8s/deployment.yaml
    
  2. Configurar el clúster de Kubernetes a GitLab:

    • A la interfície de GitLab, aneu a Settings > CI/CD > Kubernetes i afegiu el vostre clúster de Kubernetes.

Implementar Argo CD per a Desplegaments Continus

Instal·lació d'Argo CD

  1. Desplegar Argo CD en Kubernetes:

    kubectl create namespace argocd
    kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
    
  2. Accedir a la interfície d'Argo CD:

    • Exposa el servei d'Argo CD utilitzant kubectl port-forward:
      kubectl port-forward svc/argocd-server -n argocd 8080:443
      
    • Accedeix a Argo CD a través del navegador a https://localhost:8080.

Configuració d'una Aplicació en Argo CD

  1. Crear una aplicació a Argo CD:
    • A la interfície d'Argo CD, crea una nova aplicació especificant el repositori de Git i el camí del manifest de Kubernetes.

Exercicis Pràctics

Exercici 1: Configurar un Pipeline de Jenkins

  • Configura un pipeline de Jenkins que construeixi, provi i desplegui una aplicació en Kubernetes.

Exercici 2: Utilitzar GitLab CI/CD

  • Configura GitLab CI/CD per construir, provar i desplegar una aplicació en Kubernetes.

Exercici 3: Desplegar una Aplicació amb Argo CD

  • Configura Argo CD per desplegar una aplicació des d'un repositori de Git.

Solucions als Exercicis

Solució a l'Exercici 1

  • Segueix els passos descrits a la secció "Configuració del Pipeline de Jenkins".

Solució a l'Exercici 2

  • Segueix els passos descrits a la secció "Configuració de GitLab CI/CD".

Solució a l'Exercici 3

  • Segueix els passos descrits a la secció "Configuració d'una Aplicació en Argo CD".

Resum

En aquest tema, hem après a configurar pipelines de CI/CD utilitzant Jenkins, GitLab CI/CD i Argo CD per automatitzar el procés de construcció, prova i desplegament d'aplicacions en Kubernetes. Hem explorat els conceptes bàsics de CI/CD i hem realitzat exercicis pràctics per reforçar els coneixements adquirits.

Curs de Kubernetes

Mòdul 1: Introducció a Kubernetes

Mòdul 2: Components Bàsics de Kubernetes

Mòdul 3: Gestió de Configuració i Secrets

Mòdul 4: Xarxes en Kubernetes

Mòdul 5: Emmagatzematge en Kubernetes

Mòdul 6: Conceptes Avançats de Kubernetes

Mòdul 7: Monitorització i Registre

Mòdul 8: Seguretat en Kubernetes

Mòdul 9: Escalabilitat i Rendiment

Mòdul 10: Ecosistema i Eines de Kubernetes

Mòdul 11: Estudis de Cas i Aplicacions del Món Real

Mòdul 12: Preparació per a la Certificació de Kubernetes

© Copyright 2024. Tots els drets reservats