GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So löschen Sie einen Dienst in Kubernetes

In diesem Kubernetes-Tipp erfahren Sie, wie Sie einen Dienst in Kubernetes löschen.

Was ist ein Kubernetes-Dienst?

Dienste ermöglichen die Kommunikation zwischen verschiedenen Komponenten innerhalb und außerhalb der Anwendung. Kubernetes-Dienste helfen Ihnen, Anwendungen mit anderen Anwendungen oder Benutzern zu verbinden. Es bietet eine stabile virtuelle IP (VIP)-Adresse. Durch die Verwendung einer Dienst-IP können Clients zuverlässig eine Verbindung zu den Containern herstellen, die in den Pods ausgeführt werden.

Beispielsweise verfügt Ihre Anwendung über Gruppen von Pods, die für verschiedene Abschnitte ausgeführt werden, z. B. eine Gruppe zum Bereitstellen von Front-End-Load für Benutzer und eine andere Gruppe zum Ausführen von Back-End-Prozessen und eine dritte Gruppe, die eine Verbindung zu einer externen Datenquelle herstellt.

Es sind Dienste, die die Konnektivität zwischen diesen Gruppen von Pods ermöglichen. Sie können innerhalb des Clusters beliebig viele Dienste haben.

Warum nutzen wir den Service?

Kubernetes-Pods sind unzuverlässige und nicht dauerhafte Ressourcen, da sie erstellt und zerstört werden, um dem Zustand Ihres Clusters zu entsprechen. Wenn Sie eine Kubernetes-Bereitstellung zum Ausführen Ihrer App erstellen, kann diese Pods dynamisch erstellen und löschen.

Jeder Pod hat seine eigene IP-Adresse und die kann sich zu einem späteren Zeitpunkt ändern, da dieser Pod zerstört werden und ein neuer auftauchen könnte.

Dies führt zu einem Problem:Wenn einige Pods (nennen wir sie „Back-Ends“) innerhalb Ihres Clusters Funktionen für andere Pods (nennen wir sie „Front-Ends“) bereitstellen, wie finden die Front-Ends dann heraus, mit welcher IP-Adresse eine Verbindung hergestellt werden soll, und behalten sie im Auge , damit das Frontend den Backend-Teil der Workload verwenden kann?

Aus diesem Grund haben die Kubernetes-Architekten eine Lösung entwickelt, die als Service bekannt ist.

Löschen des Kubernetes-Dienstes

Listen Sie zuerst die verfügbaren Dienste in Ihrem Kubernetes-Cluster auf.

Dieser Befehl listet alle Dienste auf, die in allen Namespaces erstellt wurden:

[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

Sie können einen Dienst namens my-dep-svc sehen innerhalb von webapps erstellt Namensraum.

Lassen Sie uns diesen Dienst beschreiben, um seine Funktionalität schnell zu verstehen.

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

Wie ich bereits erwähnt habe, ist ein Service eine Gruppierung von Pods. Sie können, dass diesem Dienst zwei Endpunkte zugeordnet sind. Mehr über die Zuordnung von Endpunkten vielleicht in einem zukünftigen Artikel.

Dienst my-dep-svc hat eine virtuelle IP zugewiesen 10.100.159.167 .

Versuchen wir für eine kurze Demo, auf die Anwendung zuzugreifen, die auf diesen beiden Endpunkten (Pods) ausgeführt wird, indem wir die Service-IP (10.100.159.167) und ihren Port (8080) verwenden.

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

Ich denke, Sie haben jetzt vielleicht eine grundlegende Vorstellung von Kubernetes-Diensten.

Nun gibt es zwei Möglichkeiten, einen Dienst in Kubernetes zu löschen. Sehen wir sie uns nacheinander an.

Methode 1:Verwenden Sie den kubectl delete-Befehl, um den Dienst zu löschen

Sie können einen Dienst in Kubernetes löschen, indem Sie den Ressourcennamen direkt an den kubectl-Befehl übergeben:

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

Wenn Sie nun alle Dienste auflisten:

[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

Methode 2:Löschen durch Bezugnahme auf dieselbe YAML-Datei, durch die sie erstellt wurde

Die YAML-Konfigurationsdatei, aus der der Dienst my-dep-svc wurde erstellt.

[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

Löschen Sie nun den Dienst, indem Sie auf dieselbe YAML-Datei verweisen, mit der er erstellt wurde.

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

Listen Sie noch einmal alle Dienste auf.

[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

Das ist es. Sie haben gelernt, Dienste in Kubernetes zu löschen. Bleiben Sie dran für mehr.


Linux
  1. So verwenden Sie Podman innerhalb von Kubernetes

  2. So erstellen Sie einen Systemd-Dienst unter Linux

  3. So löschen Sie Cronjobs

  4. So löschen Sie Pods in Kubernetes [Schnelle K8s-Tipps]

  5. So löschen Sie eine Kubernetes-Bereitstellung [Schnelle K8s-Tipps]

So erstellen Sie ein StatefulSet in Kubernetes

So installieren Sie Kubernetes unter Ubuntu 20.04

So löschen Sie ein Verzeichnis in Ubuntu 20.04

So löschen Sie eine Datei in Ubuntu

Wie lösche ich eine Domain in SolidCP?

Wie lösche ich eine Domain in WebsitePanel 2.1?