DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Uncategorized»Configurer les vérifications de l’état de Kubernetes – DZone
    Uncategorized

    Configurer les vérifications de l’état de Kubernetes – DZone

    février 28, 2023
    Configurer les vérifications de l'état de Kubernetes - DZone
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    Kubernetes est une plate-forme open source d’orchestration de conteneurs qui permet de gérer et de déployer des applications dans un environnement cloud. Il est utilisé pour automatiser le déploiement, la mise à l’échelle et la gestion des applications conteneurisées. C’est un moyen efficace de gérer la santé des applications avec les sondes Kubernetes. Cet article traite des sondes Kubernetes, des différents types disponibles et de la manière de les implémenter dans votre environnement Kubernetes.

    Que sont les sondes Kubernetes ?

    Les sondes Kubernetes sont des vérifications de l’état utilisées pour surveiller l’état des applications et des services dans un cluster Kubernetes. Ils sont utilisés pour détecter tout problème potentiel avec les applications ou les services et identifier les goulots d’étranglement potentiels des ressources. Les sondes sont configurées pour s’exécuter à intervalles réguliers et envoyer un signal au plan de contrôle Kubernetes si elles détectent des problèmes avec l’application ou le service.

    Les sondes Kubernetes sont généralement implémentées à l’aide de l’API Kubernetes, qui leur permet d’interroger l’application ou le service pour obtenir des informations. Ces informations peuvent ensuite être utilisées pour déterminer l’état de santé de l’application ou du service. Les sondes Kubernetes peuvent également être utilisées pour détecter les changements dans l’application ou le service et envoyer une notification au plan de contrôle Kubernetes, qui peut alors prendre des mesures correctives. Les sondes Kubernetes sont une partie importante de la plate-forme Kubernetes, car elles contribuent à garantir le bon fonctionnement des applications et des services. Ils peuvent être utilisés pour détecter les problèmes potentiels avant qu’ils ne deviennent graves, ce qui vous permet de prendre rapidement des mesures correctives.

    Un message réussi pour une sonde de préparation indique que le conteneur est prêt à recevoir du trafic. Si une vérification de l’état de préparation réussit, le conteneur est considéré comme prêt et peut commencer à recevoir des demandes d’autres conteneurs, services ou clients externes.

    Un message réussi pour une sonde d’activité indique que le conteneur est toujours en cours d’exécution et fonctionne correctement. Si une vérification de la vivacité réussit, le conteneur est considéré comme vivant et sain. Si une sonde d’activité échoue, le conteneur est considéré comme étant dans un état d’échec et Kubernetes tentera de redémarrer le conteneur pour restaurer sa fonctionnalité. Les sondes de préparation et de vivacité renvoient un message réussi avec un code de réponse HTTP de 200-399 ou une connexion socket TCP est réussie. Si la sonde échoue, elle renverra un code de réponse HTTP non-2xx ou une connexion TCP en échec, indiquant que le conteneur n’est pas prêt ou actif.

    Un message réussi pour une sonde Kubernetes indique que le conteneur est prêt à recevoir du trafic ou est toujours en cours d’exécution et fonctionne correctement, selon le type de sonde.

    Types de sondes Kubernetes

    Il existe trois types de sondes :

    1. Sondes de démarrage
    2. Sondes de préparation
    3. Sondes de vivacité

    1. Sondes de démarrage

    Une sonde de démarrage est utilisée pour déterminer si un conteneur a démarré avec succès. Ce type de sonde est généralement utilisé pour les applications qui mettent plus de temps à démarrer ou pour les conteneurs qui effectuent des tâches d’initialisation avant d’être prêts à recevoir du trafic. La sonde de démarrage est exécutée une seule fois, après la création du conteneur, et elle retardera le démarrage des sondes de préparation et de vivacité jusqu’à ce qu’elle réussisse. Si la sonde de démarrage échoue, le conteneur est considéré comme n’ayant pas démarré et Kubernetes tentera de redémarrer le conteneur.

    2. Sondes de préparation

    Une sonde de préparation est utilisée pour déterminer si un conteneur est prêt à recevoir du trafic. Ce type de sonde est utilisé pour s’assurer qu’un conteneur est entièrement opérationnel et peut accepter les connexions entrantes avant qu’il ne soit ajouté à l’équilibreur de charge de service. Une sonde de préparation peut être utilisée pour vérifier la disponibilité des dépendances d’une application ou effectuer toute autre vérification indiquant que le conteneur est prêt à servir le trafic. Si la vérification de la préparation échoue, le conteneur est supprimé de l’équilibreur de charge de service jusqu’à ce que la vérification réussisse à nouveau.

    3. Sondes de vivacité

    Une sonde de vivacité est utilisée pour déterminer si un conteneur est toujours en cours d’exécution et fonctionne correctement. Ce type de sonde est utilisé pour détecter et récupérer des plantages ou des raccrochages de conteneurs. Une sonde de vivacité peut être utilisée pour vérifier la réactivité d’une application ou effectuer toute autre vérification indiquant que le conteneur est toujours vivant et sain. Si la sonde de vivacité échoue, Kubernetes tentera de redémarrer le conteneur pour restaurer sa fonctionnalité.

    Chaque type de sonde a ses propres options de configuration, telles que le point de terminaison à vérifier, l’intervalle de sonde et les seuils de réussite et d’échec. En utilisant ces sondes, Kubernetes peut s’assurer que les conteneurs fonctionnent et sont sains et peut prendre les mesures appropriées si un conteneur ne répond pas.

    Comment implémenter les sondes Kubernetes

    Les sondes Kubernetes peuvent être mises en œuvre de différentes manières :

    • La première consiste à utiliser l’API Kubernetes pour interroger l’application ou le service afin d’obtenir des informations. Ces informations peuvent ensuite être utilisées pour déterminer l’état de santé de l’application ou du service.
    • La deuxième méthode consiste à utiliser le protocole HTTP pour envoyer une requête à l’application ou au service. Cette requête peut être utilisée pour détecter si une application ou un service est réactif, ou s’il met trop de temps à répondre.
    • La troisième méthode consiste à utiliser des sondes personnalisées pour détecter des conditions spécifiques dans une application ou un service. Les sondes personnalisées peuvent être utilisées pour détecter des éléments tels que l’utilisation des ressources, des réponses lentes ou des modifications dans l’application ou le service.

    Une fois que vous avez décidé du type de sonde que vous utiliserez, vous pouvez ensuite configurer la sonde à l’aide de l’API Kubernetes. Vous pouvez spécifier la fréquence de la sonde, le type de sonde et les paramètres de la sonde. Une fois la sonde configurée, vous pouvez la déployer sur le cluster Kubernetes.

    Aujourd’hui, je vais vous montrer comment configurer les vérifications de l’état de votre application déployée sur Kubernetes avec le protocole HTTP pour vérifier si l’application est prête, en ligne et démarrée conformément à nos exigences.

    Conditions préalables

    • Un cluster Kubernetes de n’importe quel fournisseur de cloud. Vous pouvez même utiliser Minikube ou Kind pour créer un cluster à nœud unique.
    • Docker Desktop pour conteneuriser l’application.
    • Docker Hub pour pousser l’image du conteneur vers le registre Docker.
    • Node.js installé, car nous utiliserons un exemple d’application Node.js.

    Didacticiel

    • Fourchez l’exemple d’application ici.
    • Entrez dans le dossier principal de l’application avec la commande :
      • cd Kubernetes-Probes-Tutorial
    • Installez les dépendances avec la commande :
    • Exécutez l’application localement à l’aide de la commande :

    Vous devriez voir l’application s’exécuter sur le port 3000.

    Dans le dossier de l’application, vous devriez voir le Dockerfile avec le contenu de code suivant :

    # Use an existing node image as base image
    FROM node:14-alpine
    
    # Set the working directory in the container
    WORKDIR /app
    
    # Copy package.json and package-lock.json to the container
    COPY package*.json ./
    
    # Install required packages
    RUN npm install
    
    # Copy all files to the container
    COPY . .
    
    # Expose port 3000
    EXPOSE 3000
    
    # Start the application
    CMD [ "npm", "start" ]

    Ce Dockerfile consiste à créer une image conteneur de notre application et à la pousser vers le Docker Hub.

    Ensuite, créez et transférez votre image vers le Docker Hub à l’aide de la commande suivante :

    docker buildx build --platform=linux/arm64 --platform=linux/amd64  -t docker.io/Docker Hub username/image name:tag --push  -f ./Dockerfile .

    Vous pouvez voir l’image poussée sur votre compte Docker Hub sous les référentiels.

    Référentiels

    Ensuite, déployez les fichiers manifestes. Dans le dossier de l’application, vous remarquerez un deployment.yaml fichier avec vérifications/sondes de santé incluses, telles que les sondes de préparation et de vivacité.

    Note: nous avons utilisé notre nom d’image poussé dans le fichier YAML :

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: notes-app-deployment
      labels:
        app: note-sample-app
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: note-sample-app
      template:
        metadata:
          labels:
            app: note-sample-app
        spec:
          containers:
          - name: note-sample-app-container
            image: pavansa/note-sample-app
            resources:
              requests:
                cpu: "100m"
            imagePullPolicy: IfNotPresent
            ports:
            - containerPort: 3000
            readinessProbe:
              httpGet:
                path: /
                port: 3000
            livenessProbe:
              httpGet:
                path: /
                port: 3000
              initialDelaySeconds: 30
              periodSeconds: 10
              timeoutSeconds: 5

    Vous pouvez voir l’image utilisée et les contrôles de santé configurés dans le fichier YAML ci-dessus.

    Bilans de santé

    Nous sommes tous prêts avec notre fichier YAML. En supposant que vous ayez un cluster en cours d’exécution, déployons le fichier manifeste mentionné ci-dessus avec la commande :

    kubectl apply -f deployment.yaml

    Vous devriez voir le déploiement réussi du fichier : « deployment.apps/notes-app-deployment créé.”

    Vérifions l’état du pod avec la commande suivante pour nous assurer que les pods sont en cours d’exécution :

    Commande 1

    Décrivons un pod à l’aide de la commande suivante :

    kubectl describe pod notes-app-deployment-7fb6f5d74b-hw5fn

    Tu peux voir le « Vivacité et préparation” lorsque vous décrivez les pods.

    Vivacité et préparation

    Ensuite, vérifions la section des événements.

    Événements

    Vous pouvez voir les différents événements, tels que « programmé, » « tiré, » « créé, » et « commencé.” Tous les événements de pod ont réussi.

    Conclusion

    Les sondes Kubernetes sont une partie importante de la plate-forme Kubernetes, car elles contribuent à garantir le bon fonctionnement des applications et des services. Ils peuvent être utilisés pour détecter les problèmes potentiels avant qu’ils ne deviennent graves, ce qui vous permet de prendre rapidement des mesures correctives.

    Les sondes Kubernetes sont de deux types :

    1. Sondes de vivacité
    2. Sondes de préparation

    Avec des sondes personnalisées qui peuvent être utilisées pour détecter des conditions spécifiques dans une application ou un service. La mise en œuvre des sondes Kubernetes est un processus simple qui peut être effectué à l’aide de l’API Kubernetes.

    Si vous cherchez un moyen d’assurer la santé de vos applications et services, les sondes Kubernetes sont la solution. Alors, assurez-vous d’implémenter les sondes Kubernetes dans votre environnement Kubernetes dès aujourd’hui !

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.