GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo eliminar un servicio en Kubernetes

En este consejo de Kubernetes, aprenderá a eliminar un servicio en Kubernetes.

¿Qué es un servicio de Kubernetes?

Los servicios permiten la comunicación entre varios componentes dentro y fuera de la aplicación. Los servicios de Kubernetes lo ayudan a conectar aplicaciones con otras aplicaciones o usuarios. Proporciona una dirección IP virtual (VIP) estable. Mediante el uso de una IP de servicio, los clientes pueden conectarse de manera confiable a los contenedores que se ejecutan dentro de los pods.

Por ejemplo, su aplicación tiene grupos de pods que se ejecutan para varias secciones, como un grupo para servir la carga frontal a los usuarios y otro grupo para ejecutar procesos back-end y un tercer grupo que se conecta a una fuente de datos externa.

Son los servicios los que permiten la conectividad entre estos grupos de pods. Puede tener tantos servicios como necesite dentro del clúster.

¿Por qué usamos el Servicio?

Los pods de Kubernetes son recursos poco confiables y no permanentes porque se crean y destruyen para coincidir con el estado de su clúster. Cuando crea una implementación de Kubernetes para ejecutar su aplicación, puede crear y destruir pods de forma dinámica.

Cada pod tiene su propia dirección IP y eso podría cambiar en un momento posterior porque ese pod podría destruirse y podría aparecer uno nuevo.

Esto lleva a un problema:si algún conjunto de Pods (llámelos "backends") proporciona funcionalidad a otros Pods (llámelos "frontends") dentro de su clúster, ¿cómo descubren los frontends y realizan un seguimiento de a qué dirección IP conectarse? , para que el frontend pueda usar la parte backend de la carga de trabajo?

Esa es la razón por la que los arquitectos de Kubernetes propusieron una solución que se conoce como Servicio.

Eliminación del servicio Kubernetes

Primero enumere los servicios disponibles en su clúster de kubernetes.

Este comando enumerará todos los servicios creados dentro de todos los espacios de nombres:

[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

Puede ver un servicio llamado my-dep-svc creado dentro de webapps espacio de nombres.

Describamos ese servicio para entender su funcionalidad rápidamente.

[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>

Como mencioné anteriormente, un servicio es una agrupación de pods. Puede que este servicio tenga dos puntos finales asociados con esto. Más sobre la asociación de puntos finales en un artículo futuro quizás.

Servicio my-dep-svc tiene asignada una IP virtual 10.100.159.167 .

Para una demostración rápida, intentemos acceder a la aplicación que se ejecuta en esos dos puntos finales (pods) usando la IP del servicio (10.100.159.167) y su puerto (8080).

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

Creo que ya tienes una idea básica sobre los servicios de Kubernetes.

Ahora, hay dos formas de eliminar un servicio en Kubernetes. Vamos a verlos uno por uno.

Método 1:Usar el comando kubectl delete para eliminar el servicio

Puede eliminar un servicio en Kubernetes proporcionando el nombre del recurso directamente al comando kubectl:

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

Ahora, si enumera todos los servicios:

[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étodo 2:Eliminar al hacer referencia al mismo archivo YAML con el que se creó

El archivo de configuración YAML desde el cual el servicio my-dep-svc fue creado.

[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

Ahora elimine el servicio consultando el mismo archivo YAML que se utilizó para crearlo.

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

Nuevamente enumere todos los servicios.

[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

Eso es todo. Aprendió a eliminar el servicio en Kubernetes. Estén atentos para más.


Linux
  1. Cómo usar Podman dentro de Kubernetes

  2. Cómo crear un servicio Systemd en Linux

  3. Cómo eliminar trabajos cron

  4. Cómo eliminar pods en Kubernetes [Consejos rápidos de K8s]

  5. Cómo eliminar una implementación de Kubernetes [Consejos rápidos de K8s]

Cómo crear un StatefulSet en Kubernetes

Cómo instalar Kubernetes en Ubuntu 20.04

Cómo eliminar un directorio en Ubuntu 20.04

Cómo eliminar un archivo en Ubuntu

¿Cómo eliminar un dominio en SolidCP?

¿Cómo eliminar un dominio en WebsitePanel 2.1?