当前位置:首页 >综合 >如何删除 Kubernetes 中的服务 何删另一组用于运行后端进程

如何删除 Kubernetes 中的服务 何删另一组用于运行后端进程

2024-06-30 16:33:44 [百科] 来源:避面尹邢网

如何删除 Kubernetes 中的何删服务

系统 Linux 我们今天介绍下如何在 Kubernete 中删除服务。

什么是何删 Kubernetes 服务

服务使应用程序内外的各种组件之间能够进行通信。Kubernetes 服务可以帮助我们将应用程序与其他应用程序或用户连接在一起。何删它提供了一个稳定的何删虚拟 IP(VIP)地址。通过使用服务 IP,何删客户端可以可靠地连接到 pods 内运行的何删容器。

如何删除 Kubernetes 中的服务 何删另一组用于运行后端进程

例如,何删你的何删应用程序有多组 pod 运行在不同的部分,比如一组用于向用户提供前端负载,何删另一组用于运行后端进程,何删第三组连接到外部数据源。何删

如何删除 Kubernetes 中的服务 何删另一组用于运行后端进程

正是何删服务实现了这些 pod 组之间的连接,使得我们可以在集群中拥有所需数量的何删服务。

如何删除 Kubernetes 中的服务 何删另一组用于运行后端进程

为什么要使用服务

Kubernetes Pods 是何删不可靠且非永久性的资源,因为它们是何删根据集群的状态创建和销毁的。当你创建一个 Kubernetes 部署来运行你的应用程序时,它可以动态地创建和销毁 Pods。

每个 pod 都有自己的 IP 地址,并且有可能发生变化,因为这个 pod 有可能被注销然后再出现一个新的。

这就导致了一个问题:如果某组 Pod(称之为“后端”)为集群内的其他 Pod(也称之为“前端”)提供功能,那么前端如何找到并跟踪要连接的 IP 地址,以便前端可以使用工作负载的后端部分呢?

这就是 Kubernetes 设计者提出服务这一解决方案的原因。

删除 Kubernetes 服务

要删除服务,首先需要列出 kubernetes 集群中的可用服务列表。

如下命令可列出所有在命名空间内创建的所有服务:​

$ 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

如上所示,在命名空间 webapps 中可以看到一个名为 my-dep-svc 的服务。

让我们描述一下该服务,以便快速理解其功能。如下:​

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

正如我们前面提到的,服务是一组 pod,可以看到该服务有两个与之相关联的端(endpoints)。

服务 my-dep-svc 的虚拟 IP 地址为 10.100.159.167。

为了快速演示,让我们尝试使用服务IP(10.100.159.167)及其端口(8080)访问在这两个端点(pod)上运行的应用程序。如下:​

$ curl 10.100.159.167:8080
<html><body><h1>It works!</h1></body></html>

这样大家对 Kubernetes 服务应该有了一个基本的了解。

删除 Kubernetes 中的服务,大致有两种方法。

方法1:使用 kubectl delete 命令删除服务

根据服务资源的名称,使用 kubectl 命令来删除该服务。如下所示:​

$ kubectl delete svc --namespace=webapps my-dep-svc
service "my-dep-svc" deleted

现在再看一下服务列表:​

$ 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

方法2:通过引用创建该文件的相同 YAML 文件进行删除

创建 my-dep-svc 服务的 YAML 配置文件。​

$ 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

现在,通过引用用于创建服务的 YAML 文件来删除该服务。​

$ kubectl delete -f my-dep-svc.yml
service "my-dep-svc" deleted

再列出所有服务:​

$ 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
责任编辑:庞桂玉 来源: TIAP Kubernetes服务

(责任编辑:综合)

    推荐文章
    热点阅读