GNU/Linux >> Tutoriels Linux >  >> Linux

Comment supprimer un service dans Kubernetes

Dans cette astuce Kubernetes, vous découvrirez comment supprimer un service dans Kubernetes.

Qu'est-ce qu'un service Kubernetes ?

Les services permettent la communication entre divers composants à l'intérieur et à l'extérieur de l'application. Les services Kubernetes vous aident à connecter des applications avec d'autres applications ou utilisateurs. Il fournit une adresse IP virtuelle (VIP) stable. En utilisant une adresse IP de service, les clients peuvent se connecter de manière fiable aux conteneurs exécutés à l'intérieur des pods.

Par exemple, votre application comporte des groupes de pods exécutés pour différentes sections, comme un groupe pour servir la charge frontale aux utilisateurs et un autre groupe pour exécuter les processus back-end et un troisième groupe se connectant à une source de données externe.

Ce sont les services qui permettent la connectivité entre ces groupes de pods. Vous pouvez avoir autant de services que nécessaire au sein du cluster.

Pourquoi utilisons-nous le service ?

Les pods Kubernetes sont des ressources non fiables et non permanentes, car ils sont créés et détruits pour correspondre à l'état de votre cluster. Lorsque vous créez un déploiement Kubernetes pour exécuter votre application, il peut créer et détruire des pods de manière dynamique.

Chaque pod a sa propre adresse IP et cela peut changer ultérieurement car ce pod peut être détruit et un nouveau peut apparaître.

Cela conduit à un problème :si un ensemble de pods (appelez-les "backends") fournit des fonctionnalités à d'autres pods (appelez-les "frontends") à l'intérieur de votre cluster, comment les frontends trouvent-ils et gardent-ils une trace de l'adresse IP à laquelle se connecter ? , pour que le frontend puisse utiliser la partie backend de la charge de travail ?

C'est la raison pour laquelle les architectes de Kubernetes ont proposé une solution appelée Service.

Suppression du service Kubernetes

Commencez par répertorier les services disponibles dans votre cluster kubernetes.

Cette commande listera tous les services créés dans tous les espaces de noms :

[email protected]:~/pod-create# kubectl get svc --all-namespaces -o wide
NAMESPACE     NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                  AGE     SELECTOR
default       kubernetes   ClusterIP   10.96.0.1        <none>        443/TCP                  24d     <none>
kube-system   kube-dns     ClusterIP   10.96.0.10       <none>        53/UDP,53/TCP,9153/TCP   64d     k8s-app=kube-dns
webapps       my-dep-svc   ClusterIP   10.100.159.167   <none>        8080/TCP                 2m45s   tier=front-end

Vous pouvez voir un service nommé my-dep-svc créé dans webapps espace de noms.

Décrivons ce service pour comprendre rapidement ses fonctionnalités.

[email protected]:~/pod-create# kubectl describe svc my-dep-svc --namespace=webapps
Name:              my-dep-svc
Namespace:         webapps
Labels:            <none>
Annotations:       Selector:  tier=front-end
Type:              ClusterIP
IP:                10.100.159.167
Port:              <unset>  8080/TCP
TargetPort:        80/TCP
Endpoints:         172.16.213.223:80,172.16.213.5:80
Session Affinity:  None
Events:            <none>

Comme je l'ai mentionné précédemment, un service est un regroupement de pods. Vous pouvez constater que ce service a deux points de terminaison associés à cela. Plus d'informations sur l'association des points de terminaison dans un futur article peut-être.

Service my-dep-svc a une adresse IP virtuelle qui lui est assignée 10.100.159.167 .

Pour une démonstration rapide, essayons d'accéder à l'application exécutée sur ces deux points de terminaison (pods) en utilisant l'adresse IP du service (10.100.159.167) et son port (8080).

[email protected]:~/pod-create# curl 10.100.159.167:8080
<html><body><h1>It works!</h1></body></html>
[email protected]:~/pod-create#

Je pense que vous avez peut-être déjà une idée de base sur les services Kubernetes.

Désormais, il existe deux façons de supprimer un service dans Kubernetes. Voyons-les un par un.

Méthode 1 :Utiliser la commande kubectl delete pour supprimer le service

Vous pouvez supprimer un service dans Kubernetes en fournissant le nom de la ressource directement à la commande kubectl :

[email protected]:~/pod-create# kubectl delete svc --namespace=webapps my-dep-svc
service "my-dep-svc" deleted

Maintenant, si vous répertoriez tous les services :

[email protected]:~/pod-create# kubectl get svc --all-namespaces -o wide
NAMESPACE     NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                  AGE   SELECTOR
default       kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP                  24d   <none>
kube-system   kube-dns     ClusterIP   10.96.0.10   <none>        53/UDP,53/TCP,9153/TCP   64d   k8s-app=kube-dns

Méthode 2 :Supprimer en faisant référence au même fichier YAML par lequel il a été créé

Le fichier de configuration YAML à partir duquel le service my-dep-svc a été créé.

[email protected]:~/pod-create# cat my-dep-svc.yml
apiVersion: v1
kind: Service
metadata:
   name: my-dep-svc
   namespace: webapps
spec:
  selector:
    tier: front-end
  ports:
    - protocol: TCP
      port: 8080
      targetPort: 80

Supprimez maintenant le service en faisant référence au même fichier YAML qui a été utilisé pour le créer.

[email protected]:~/pod-create# kubectl delete -f my-dep-svc.yml
service "my-dep-svc" deleted

Encore une fois, listez tous les services.

[email protected]:~/pod-create# kubectl get svc --all-namespaces -o wide
NAMESPACE     NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                  AGE   SELECTOR
default       kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP                  24d   <none>
kube-system   kube-dns     ClusterIP   10.96.0.10   <none>        53/UDP,53/TCP,9153/TCP   64d   k8s-app=kube-dns

C'est ça. Vous avez appris à supprimer un service dans Kubernetes. Restez à l'écoute pour en savoir plus.


Linux
  1. Comment utiliser Podman dans Kubernetes

  2. Comment créer un service Systemd sous Linux

  3. Comment supprimer des tâches cron

  4. Comment supprimer des pods dans Kubernetes [Quick K8s Tips]

  5. Comment supprimer un déploiement Kubernetes [Quick K8s Tips]

Comment créer un StatefulSet dans Kubernetes

Comment installer Kubernetes sur Ubuntu 20.04

Comment supprimer un répertoire dans Ubuntu 20.04

Comment supprimer un fichier dans Ubuntu

Comment supprimer un domaine dans SolidCP ?

Comment supprimer un domaine dans WebsitePanel 2.1 ?