GNU/Linux >> Znalost Linux >  >> Linux

Jak odstranit službu v Kubernetes

V tomto tipu Kubernetes se dozvíte o smazání služby v Kubernetes.

Co je služba Kubernetes?

Služby umožňují komunikaci mezi různými komponentami v rámci aplikace i mimo ni. Služby Kubernetes vám pomohou propojit aplikace s jinými aplikacemi nebo uživateli. Poskytuje stabilní virtuální IP (VIP) adresu. Pomocí servisní IP adresy se klienti mohou spolehlivě připojit ke kontejnerům běžícím uvnitř podů.

Vaše aplikace má například skupiny podů spuštěné pro různé sekce, jako je skupina pro obsluhu front-end zátěže uživatelům a další skupina pro spouštění back-end procesů a třetí skupina připojující se k externímu zdroji dat.

Jsou to služby, které umožňují konektivitu mezi těmito skupinami modulů. V rámci clusteru můžete mít tolik služeb, kolik potřebujete.

Proč používáme službu?

Kubernetes Pods jsou nespolehlivé a netrvalé zdroje, protože se vytvářejí a ničí tak, aby odpovídaly stavu vašeho clusteru. Když vytvoříte Kubernetes Deployment pro spuštění vaší aplikace, může dynamicky vytvářet a ničit Pody.

Každý modul má svou vlastní IP adresu a ta se může později změnit, protože modul může být zničen a může se objevit nový.

To vede k problému:pokud některá sada modulů Pods (nazývejte je „backendy“) poskytuje funkce jiným modulům Pod (říkejte jim „frontendy“) ve vašem clusteru, jak frontendy zjistí a sledují, ke které IP adrese se mají připojit? , aby frontend mohl využívat backendovou část pracovní zátěže?

To je důvod, proč architekti Kubernetes přišli s řešením, které je známé jako služba.

Odstranění služby Kubernetes

Nejprve uveďte dostupné služby ve vašem clusteru kubernetes.

Tento příkaz zobrazí seznam všech služeb vytvořených ve všech jmenných prostorech:

[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

Můžete vidět službu s názvem my-dep-svc vytvořené v rámci webapps jmenný prostor.

Pojďme si tuto službu popsat, abychom rychle pochopili její funkce.

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

Jak jsem již zmínil, služba je seskupení modulů. Můžete, že tato služba má s tím spojené dva koncové body. Více o přidružení koncových bodů možná v budoucím článku.

Služba my-dep-svc má přidělenou virtuální IP adresu 10.100.159.167 .

Pro rychlou ukázku zkusme přistupovat k aplikaci běžící na těchto dvou koncových bodech (podech) pomocí Service IP (10.100.159.167) a jejího portu (8080).

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

Myslím, že už máte základní představu o službách Kubernetes.

Nyní existují dva způsoby, jak odstranit službu v Kubernetes. Pojďme se na ně podívat jeden po druhém.

Metoda 1:Použijte příkaz kubectl delete k odstranění služby

Službu v Kubernetes můžete odstranit zadáním názvu zdroje přímo do příkazu kubectl:

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

Nyní, když vypíšete všechny služby:

[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

Metoda 2:Smažte odkazem na stejný soubor YAML, kterým byl vytvořen

Konfigurační soubor YAML, ze kterého je služba my-dep-svc byl vytvořen.

[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

Nyní smažte službu odkazem na stejný soubor YAML, který byl použit k jejímu vytvoření.

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

Znovu uveďte seznam všech služeb.

[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

A je to. Naučili jste se odstranit službu v Kubernetes. Zůstaňte naladěni na další.


Linux
  1. Jak používat Podman uvnitř Kubernetes

  2. Jak odstranit moduly v Kubernetes [Rychlé tipy K8s]

  3. Jak odstranit nasazení Kubernetes [Rychlé tipy K8s]

  1. Jak vytvořit službu Systemd v Linuxu

  2. Jak odstranit úlohy cron

  3. Jak zastavit službu systemd

  1. Jak nainstalovat Jenkins na Kubernetes

  2. Jak restartovat Kubernetes Pods

  3. Jak spustit MongoDB na Kubernetes