GNU/Linux >> Linux Esercitazione >  >> Linux

Come eliminare un servizio in Kubernetes

In questo suggerimento su Kubernetes imparerai come eliminare un servizio in Kubernetes.

Cos'è un servizio Kubernetes?

I servizi consentono la comunicazione tra vari componenti all'interno e all'esterno dell'applicazione. I servizi Kubernetes ti aiutano a connettere le applicazioni insieme ad altre applicazioni o utenti. Fornisce un indirizzo IP virtuale (VIP) stabile. Utilizzando un IP di servizio, i client possono connettersi in modo affidabile ai contenitori in esecuzione all'interno dei pod.

Ad esempio, la tua applicazione ha gruppi di pod in esecuzione per varie sezioni, come un gruppo per fornire il carico front-end agli utenti e un altro gruppo per l'esecuzione di processi back-end e un terzo gruppo che si connette a un'origine dati esterna.

Sono i servizi che consentono la connettività tra questi gruppi di pod. Puoi avere tutti i servizi richiesti all'interno del cluster.

Perché utilizziamo il servizio?

I pod Kubernetes sono risorse inaffidabili e non permanenti perché vengono creati e distrutti per adattarsi allo stato del tuo cluster. Quando crei una distribuzione Kubernetes per eseguire la tua app, può creare e distruggere i pod in modo dinamico.

Ogni pod ha il proprio indirizzo IP e questo potrebbe cambiare in un secondo momento perché quel pod potrebbe essere distrutto e potrebbe emergerne uno nuovo.

Questo porta a un problema:se alcuni set di Pod (chiamateli "backend") forniscono funzionalità ad altri Pod (chiamateli "frontend") all'interno del vostro cluster, in che modo i frontend scoprono e tengono traccia di quale indirizzo IP connettersi a , in modo che il frontend possa utilizzare la parte backend del carico di lavoro?

Questo è il motivo per cui gli architetti Kubernetes hanno escogitato una soluzione nota come Servizio.

Eliminazione del servizio Kubernetes

Per prima cosa elenca i servizi disponibili nel tuo cluster kubernetes.

Questo comando elencherà tutti i servizi creati all'interno di tutti gli spazi dei nomi:

[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

Puoi vedere un servizio chiamato my-dep-svc creato all'interno di webapps spazio dei nomi.

Descriviamo quel servizio per comprenderne rapidamente la funzionalità.

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

Come accennato in precedenza, un servizio è un raggruppamento di pod. È possibile che questo servizio abbia due endpoint associati a questo. Maggiori informazioni sull'associazione degli endpoint in un articolo futuro forse.

Servizio my-dep-svc ha un IP virtuale assegnato 10.100.159.167 .

Per una rapida demo, proviamo ad accedere all'applicazione in esecuzione su questi due endpoint (pod) utilizzando l'IP del servizio (10.100.159.167) e la relativa porta (8080).

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

Penso che a questo punto potresti avere un'idea di base sui servizi Kubernetes.

Ora, ci sono due modi per eliminare un servizio in Kubernetes. Vediamoli uno per uno.

Metodo 1:usa il comando kubectl delete per eliminare il servizio

Puoi eliminare un servizio in Kubernetes fornendo il nome della risorsa direttamente al comando kubectl:

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

Ora, se elenchi tutti i servizi:

[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

Metodo 2:elimina facendo riferimento allo stesso file YAML con cui è stato creato

Il file di configurazione YAML da cui il servizio my-dep-svc è stato creato.

[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

Ora elimina il servizio facendo riferimento allo stesso file YAML utilizzato per crearlo.

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

Elenca di nuovo tutti i servizi.

[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

Questo è tutto. Hai imparato a eliminare il servizio in Kubernetes. Resta sintonizzato per saperne di più.


Linux
  1. Come usare Podman all'interno di Kubernetes

  2. Come eliminare i lavori cron

  3. Come eliminare i pod in Kubernetes [Suggerimenti rapidi per K8s]

  4. Come eliminare una distribuzione Kubernetes [Suggerimenti rapidi per K8s]

  5. Come interrompere il servizio systemd

Come creare uno StatefulSet in Kubernetes

Come installare Kubernetes su Ubuntu 20.04

Come eliminare una directory in Ubuntu 20.04

Come eliminare un file in Ubuntu

Come eliminare un dominio in SolidCP?

Come eliminare un dominio in WebsitePanel 2.1?