0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · Leçon

Déploiement sur Kubernetes avec Actions

Configurez le déploiement continu sur des clusters Kubernetes et gérez les déploiements et les services directement depuis GitHub Actions.

Déploiement sur Kubernetes avec Actions est une leçon CI/CD with GitHub Actions & DevOps Pipelines gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage CI/CD with GitHub Actions & DevOps Pipelines, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours CI/CD with GitHub Actions & DevOps Pipelines comprend 4 leçons au total.

Introduction au déploiement continu de K8s avec Actions

Bienvenue ! Dans cette leçon, vous apprendrez à mettre en place le déploiement continu (CD) sur des clusters Kubernetes à l'aide de GitHub Actions.

Automatiser les déploiements permet de mettre rapidement et de manière fiable en production les modifications de votre application, sans étapes manuelles.

Nous aborderons l'authentification, l'application de manifestes Kubernetes et la gestion des mises à jour.

Principes essentiels du déploiement sur K8s

Avant de déployer, rappelons rapidement deux ressources Kubernetes fondamentales :

  • Déploiements : ils gèrent les pods de votre application et veillent à ce qu'un nombre souhaité de répliques soit toujours en cours d'exécution. Ils prennent en charge les mises à jour et les restaurations.
  • Services : ils définissent la manière d'accéder à votre application, par exemple en interne au sein du cluster ou de manière externe via un LoadBalancer.

Notre objectif est d'appliquer à notre cluster, depuis GitHub Actions, les fichiers YAML qui les définissent.

Authentifier Actions auprès de K8s

Pour effectuer un déploiement, votre flux de travail GitHub Actions doit communiquer avec le serveur d'API de votre cluster Kubernetes.

Cette opération nécessite une authentification. La méthode standard pour s'authentifier auprès de Kubernetes consiste à utiliser un fichier kubeconfig.

Nous devons fournir de manière sécurisée le contenu de ce fichier à l'exécuteur de notre flux de travail.

Sécuriser kubeconfig

Le fichier kubeconfig contient des informations sensibles, comme les points de terminaison du cluster et les identifiants utilisateur. Il doit rester secret !

GitHub Actions fournit des secrets à cette fin. Vous enregistrerez le contenu de votre fichier kubeconfig en tant que secret du dépôt.

Comment obtenir votre kubeconfig ? Cela dépend de votre fournisseur K8s, par exemple aws eks update-kubeconfig ou gcloud container clusters get-credentials.

Configurer le contexte K8s

Une fois votre kubeconfig enregistré en tant que secret, appelons-le KUBE_CONFIG_DATA, votre flux de travail peut l'utiliser.

La pratique courante consiste à écrire le contenu du secret dans un fichier temporaire sur l'exécuteur, puis à définir la variable d'environnement KUBECONFIG pour qu'elle pointe vers ce fichier.

Cela indique à kubectl où trouver les informations de connexion au cluster.

Utiliser `kubectl` dans les flux de travail

kubectl est l'outil officiel en ligne de commande pour interagir avec les clusters Kubernetes. Les exécuteurs de GitHub Actions disposent de kubectl préinstallé.

Après avoir configuré le kubeconfig, vous pouvez exécuter n'importe quelle commande kubectl dans les étapes de votre flux de travail.

Voyons un exemple de base :

name: K8s Setup Test

on: [workflow_dispatch]

jobs:
  test-kubeconfig:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Set up Kubeconfig
        env:
          KUBE_CONFIG_DATA: ${{ secrets.KUBE_CONFIG_DATA }}
        run: |
          mkdir -p ~/.kube
          echo "$KUBE_CONFIG_DATA" > ~/.kube/config
          chmod 600 ~/.kube/config
          echo "KUBECONFIG=$HOME/.kube/config" >> $GITHUB_ENV

      - name: Verify kubectl access
        run: kubectl version --client

Manifeste de déploiement K8s simple

Voici un manifeste Kubernetes de base contenant un Deployment et un Service pour une application « hello-world ». C'est ce que nous demanderons à Kubernetes d'exécuter.

Cet exemple utilise une simple image Nginx, exposée sur le port 80.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-app-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: hello-app
  template:
    metadata:
      labels:
        app: hello-app
    spec:
      containers:
      - name: hello-app
        image: nginx:latest
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: hello-app-service
spec:
  selector:
    app: hello-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  type: LoadBalancer

Flux de travail complet de déploiement

Intégrons maintenant l'étape de déploiement à un flux de travail. Après avoir créé et envoyé votre image de conteneur, comme dans les leçons précédentes, vous pouvez la déployer.

Ce flux de travail suppose que votre secret kubeconfig est configuré et que le fichier manifeste, par exemple k8s/deployment.yaml, existe dans votre dépôt.

name: Deploy to Kubernetes

on:
  push:
    branches:
      - main
  workflow_dispatch:

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Set up Kubeconfig
        env:
          KUBE_CONFIG_DATA: ${{ secrets.KUBE_CONFIG_DATA }}
        run: |
          mkdir -p ~/.kube
          echo "$KUBE_CONFIG_DATA" > ~/.kube/config
          chmod 600 ~/.kube/config
          echo "KUBECONFIG=$HOME/.kube/config" >> $GITHUB_ENV

      - name: Deploy application to K8s
        run: kubectl apply -f k8s/deployment.yaml

Mettre à jour votre application

L'une des fonctionnalités remarquables de kubectl apply est son idempotence. Si les ressources définies dans votre YAML existent déjà, kubectl apply les mettra à jour au lieu d'en créer de nouvelles.

Pour déployer une nouvelle version de votre application, il vous suffit de mettre à jour l'étiquette de l'image dans votre deployment.yaml et d'envoyer la modification. GitHub Actions se déclenchera alors et Kubernetes effectuera une mise à jour progressive, en remplaçant progressivement les anciens pods par de nouveaux afin de réduire au minimum l'interruption de service.

Vérification rapide

Vous avez appris les étapes essentielles pour déployer une application sur Kubernetes à l'aide de GitHub Actions.

Parmi les propositions suivantes, quelle est la séquence correcte des étapes d'un flux de travail GitHub Actions pour déployer un manifeste Kubernetes ?

Récapitulatif et prochaines étapes

Excellent travail ! Vous avez appris à mettre en place le déploiement continu sur Kubernetes à l'aide de GitHub Actions.

  • Nous stockons les données sensibles de kubeconfig dans les secrets GitHub.
  • Les flux de travail utilisent ce secret pour configurer kubectl.
  • kubectl apply -f sert à déployer ou à mettre à jour les manifestes K8s.
  • Kubernetes gère les mises à jour progressives lorsque des modifications sont appliquées.

Cette combinaison puissante automatise vos déploiements et rend votre processus de développement plus fluide et plus rapide. Continuez à explorer les fonctionnalités K8s plus avancées !

Questions Fréquemment Posées

La leçon « Déploiement sur Kubernetes avec Actions » est-elle gratuite ?

Oui — le texte complet de « Déploiement sur Kubernetes avec Actions » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours CI/CD with GitHub Actions & DevOps Pipelines, passe à CoddyKit PRO. Le cours CI/CD with GitHub Actions & DevOps Pipelines comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Déploiement sur Kubernetes avec Actions » ?

Configurez le déploiement continu sur des clusters Kubernetes et gérez les déploiements et les services directement depuis GitHub Actions. Tu pratiques CI/CD with GitHub Actions & DevOps Pipelines avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer CI/CD with GitHub Actions & DevOps Pipelines ?

Aucune expérience préalable n'est requise. CI/CD with GitHub Actions & DevOps Pipelines sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Déploiement sur Kubernetes avec Actions » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon CI/CD with GitHub Actions & DevOps Pipelines ?

Oui. Chaque leçon CI/CD with GitHub Actions & DevOps Pipelines inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Création d’images Docker avec Actions
  2. Envoi d’images vers des registres
  3. Déploiement sur Kubernetes avec Actions
  4. Charts Helm et manifestes Kubernetes en intégration et déploiement continus
← Retour à CI/CD with GitHub Actions & DevOps Pipelines