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ší.