Qu'est-ce que la découverte de service à Kubernetes?

Qu'est-ce que la découverte de service à Kubernetes?
Les microservices sont utilisés dans les systèmes modernes pour les garder évolutifs et fonctionnels. Avec ses outils et ses fonctionnalités, Kubernetes crée le paramètre parfait pour les microservices pour collaborer. La solution dans son ensemble devient beaucoup plus flexible car chaque composant de l'application est déployé dans un conteneur. La découverte de services est le processus de localisation des applications et des microservices sur un réseau.

La technique de trouver automatiquement des appareils et des services sur un réseau est connu sous le nom de Discovery de service. Le protocole de découverte de services (SDP) est une norme de réseautage pour détecter les réseaux et localiser les ressources lorsque les utilisateurs reçoivent des ressources appropriées, telles qu'une imprimante ou un ordinateur portable compatible Bluetooth, la découverte de service aide à réduire les tras de configuration.

La découverte de service est accomplie dans Kubernetes en utilisant des noms de service créés automatiquement correspondant à l'adresse IP du service. Dans Kubernetes, le modèle des services propose le composant le plus fondamental mais crucial de la découverte des microservices. Reconnaître le fonctionnement d'une application sur Kubernetes nécessite une compréhension de la découverte de services. Kubernetes Service Syncs standardise et automatise la connectivité entre les services, résolvant les problèmes de conteneurs dans une conception de microservices. Les services lient les pods au réseau de manière cohérente entre les clusters.

Le processus de détermination de la façon de rejoindre le service est connu sous le nom de Discovery de service. La découverte de service côté serveur et côté client est les principaux types de découverte de service. Les applications client peuvent utiliser des approches de découverte de service côté serveur pour prendre en charge via un routeur ou un équilibreur de chargement. La découverte de services côté client permet aux applications clients de localiser les services en recherchant ou en demandant un registre de services contenant des instances de service et des points de terminaison.

Les instances de service peuvent être enregistrées et temporairement suspendus du registre des services dans deux méthodes différentes. Le modèle d'auto-inscription permet aux entités de service de s'inscrire indépendamment avec le registre des services. Le modèle d'enregistrement tiers implique d'avoir un autre composant système à effectuer l'enregistrement et la dérégtation en raison du service. L'un des composants qui rendent cette plate-forme de conteneur capable et adaptable est la découverte de service Kubernetes. Grâce à la normalisation, les technologies avancées comme le maillage de service rendent la découverte de service Kubernetes plus efficace. Nous examinerons certains des processus de base de la découverte de services à Kubernetes dans ce sujet.

Commençons par mettre en place des services nécessaires pour examiner comment les concepts de service de Kubernetes fonctionnent en termes pratiques. Accédons au terminal de l'Ubuntu 20.04 LTS OS pour parler de la découverte de services à Kubernetes. Pour cela, vous pouvez utiliser la zone d'application ou une clé de raccourci qui est «Ctrl + Alt + T».

Pour initialiser Minikube, exécutez la commande répertoriée ci-dessous.

$ minikube start

L'édition actuelle de Minikube sera affichée dans la sortie de cette instruction. Maintenant, nous ferons un espace de noms nommé «Develop» en utilisant la commande Cat dans le shell.

$ chat << ENDL > développement de noms.YML

Le contenu sera ajouté directement au terminal sans l'ouvrir à partir du fichier.

Pour générer un espace de noms dans le terminal, utilisez la commande comme:

$ kubectl appliquer -f de développement-namespace.YML

L'espace de noms a été créé efficacement. Maintenant encore, nous allons créer un autre espace de noms nommé «Production» en utilisant la commande Cat dans le shell.

Pour générer un espace de noms dans le terminal, exécutez la commande comme:

$ kubectl appliquer -F Production-Namespace.YML

Encore une fois, l'espace de noms a été créé efficacement. Maintenant, nous allons déployer nos exemples d'applications sur les espaces de noms que nous avons créés plus tôt. À cette fin, nous créerons un déploiement nommé «Hello» pour l'espace de noms de développement en utilisant la commande Cat dans le shell.

$ chat << ENDL > Application-déploiement de développement.YML

Le contenu sera ajouté directement au terminal sans l'ouvrir à partir du fichier.

Pour créer un déploiement pour l'espace de noms de développement, exécutez la commande comme:

$ kubectl appliquer -f application-déploiement-développement.YML

Le déploiement a été créé efficacement. Encore une fois, nous créerons un autre déploiement pour un espace de noms nommé «Production» en utilisant la commande Cat dans le shell.

$ chat << ENDL > Production de déploiement de l'application.YML

Pour créer un déploiement pour l'espace de noms de production dans le terminal, utilisez la commande comme:

$ kubectl appliquer -f application d'application-déploiement-production.YML

Le déploiement a été créé efficacement, comme on peut le voir à partir de la sortie affichée. Maintenant, pour définir les pods et pour trouver leur adresse IP, nous allons exécuter la commande ci-dessous sur la liste comme:

$ kubectl décrire les pods - tous les espaces de noms

Les adresses IP pour chaque pod dans la sortie ci-dessus sont internes et uniques à chaque occurrence. Chaque fois que nous redéployons l'application, il recevrait une nouvelle adresse IP. Nous pouvons maintenant tester si nous pouvons ou non cingler un pod à l'intérieur du cluster. Créez un fichier en utilisant la commande Cat comme.

$ chat << ENDL >> Jumpod.YML

Pour créer un pod pour l'espace de noms par défaut dans le shell, exécutez la commande comme:

kubectl appliquer -f Jumpod.YML

Le pod a été créé, comme on peut le voir à partir de l'image ci-dessus. Ping l'adresse IP d'un pod temporaire à l'intérieur de l'espace de noms par défaut en utilisant la commande cat dans le shell en utilisant la commande kubectl exec.

$ kubectl exec -it Jumpod ping 10.244.0.149

Le système de noms de domaine est parmi les aspects essentiels du service Internet efficace (DNS). Tous les contenus Internet et les services Web dépendent du DNS, vous devez donc être en mesure de résoudre les problèmes rapidement. Un outil appelé nslookup est une méthode pour ce faire. NSlookup signifie «Recherche de serveur de noms», il vous permet de vérifier les informations sur un nom de domaine et de découvrir des problèmes. Nous pouvons acquérir le FQDN du pod à l'aide de l'outil NSLookup:

$ kubectl exec -it Jumpod nslookup 10.244.0.149

Maintenant, pour vérifier l'adresse IP déployée externe, nous exécuterons la commande ci-dessous:

$ kubectl obtenez des services - tous les espaces de noms

Conclusion

Lors de la migration vers les microservices, la découverte de services est probablement la partie d'infrastructure la plus importante à mettre en œuvre. Dans ce tutoriel, nous avons vu à quel point il est simple d'exposer une application au public en utilisant les services Kubernetes.