Cómo borrar un servicio a Kubernetes

Qué tal soy Luis. Os traigo un nuevo post sobre el sistema operativo mas molón. Un placer linuxeros.

En este consejo de Kubernetes, obtendrá información sobre la supresión de un servicio a Kubernetes.

¿Qué es un servicio Kubernetes?

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

Por ejemplo, la 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 de back-end y un tercer grupo que se conecta a una fuente de datos externa.

Son servicios que permiten la conectividad entre estos grupos de pods. Puede tener tantos servicios como sea necesario al clúster.

¿Por qué usamos el Servicio?

Los pods de Kubernetes son recursos poco fiables y no permanentes, ya que se crean y se destruyen para que coincidan con el estado de su clúster. Al crear un despliegue de Kubernetes para ejecutar la aplicación, puede crear y destruir pods dinámicamente.

Cada pod tiene su propia dirección IP y esto puede cambiar en un momento posterior, ya que se puede destruir y puede aparecer uno nuevo.

Esto conlleva un problema: si algún conjunto de Pods (llamados «backends») proporciona funcionalidad a otros Pods (llamados «frontends») dentro de su clúster, como averiguan los frontends y hacen un seguimiento de qué dirección IP debe estar conectado, de por lo que el frontal puede utilizar la parte del fondo de la carga de trabajo?

Este es el motivo por el que los arquitectos de Kubernetes encontraron una solución conocida como Servicio.

Supresión del servicio Kubernetes

Primer listado de servicios disponibles en el clúster de kubernetes.

Esta orden mostrará todos los servicios creados dentro de todos los espacios de nombres:

root@kmaster-rj:~/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 webapps espacio de nombres.

Describimos este servicio para entender su funcionalidad rápidamente.

root@kmaster-rj:~/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 he mencionado anteriormente, un servicio es una agrupación de vainas. Puede que este servicio tenga dos puntos finales asociados con ello. Quizás hay más información sobre la asociación de puntos finales en un futuro artículo.

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

Para hacer una demostración rápida, probamos de acceder a la aplicación que se ejecuta en estos dos puntos finales (pods) mediante la IP de servicio (10100159167) y su puerto (8080).

root@kmaster-rj:~/pod-create# curl 10.100.159.167:8080
<html><body><h1>It works!</h1></body></html>
root@kmaster-rj:~/pod-create#

Creo que es posible que ya tenga una idea básica sobre los servicios de Kubernetes.

Ahora, hay dos maneras de eliminar un servicio a Kubernetes. Veamos uno por uno.

Método 1: utilice la orden kubectl delete para eliminar el servicio

Puede eliminar el servicio a Kubernetes proporcionando el nombre del recurso directamente al orden kubectl:

root@kmaster-rj:~/pod-create# kubectl delete svc --namespace=webapps my-dep-svc
service "my-dep-svc" deleted

Ahora, si enumere todos los servicios:

root@kmaster-rj:~/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: elimínelo remitiendo el mismo archivo YAML por el que se creó

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

root@kmaster-rj:~/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 remitiendo el mismo archivo YAML que se utilizó para crearlo.

root@kmaster-rj:~/pod-create# kubectl delete -f my-dep-svc.yml
service "my-dep-svc" deleted

Vuelva a enumerar todos los servicios.

root@kmaster-rj:~/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

Esto es. Ha aprendido a suprimir el servicio a Kubernetes. Estad atentos a más.

Este Blog lo escribimos para ayudar y servir de ayuda a la comunidad Linux. Esperamos que os guste.

Leave a Reply