服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - 如何删除 Kubernetes 中的服务

如何删除 Kubernetes 中的服务

2023-05-08 17:09未知服务器之家 Linux

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

如何删除 Kubernetes 中的服务

什么是 Kubernetes 服务

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

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

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

为什么要使用服务

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

延伸 · 阅读

精彩推荐
  • Linuxlinux驱动程序开发详细介绍

    linux驱动程序开发详细介绍

    前提,一般来说内核代码的错误可能会引起一个用户进程的死亡,或者整个系统的瘫痪,更严重的后果,可能导致磁盘损伤~因此建议最好有一台实验机进行...

    Linux教程网5392019-12-17
  • Linux将 Linux 终端与 Nautilus 文件管理器结合起来

    将 Linux 终端与 Nautilus 文件管理器结合起来

    Nautilus 是 GNOME 桌面环境中的图形化文件浏览器。你可以使用它来访问和管理系统中的文件和文件夹。 尽管并非所有人都喜欢使用终端来管理文件和目录,...

    未知812023-08-08
  • LinuxLinux系统下无法卸载挂载的目录怎么办?

    Linux系统下无法卸载挂载的目录怎么办?

    我们在日常运维中经常性会遇到需要进行磁盘的扩容、卸载、挂载等操作,但是有时候这个系统上跑的应用并没有停止或者有其他的运维同事在操作这个目...

    今日头条10302020-12-30
  • Linux在Linux系统中创建新的亚马逊AWS访问密钥的方法

    在Linux系统中创建新的亚马逊AWS访问密钥的方法

    如何在Linux系统中创建新的亚马逊AWS访问密钥?我在配置一个需要访问我的亚马逊AWS帐号的应用时被要求提供AWS访问密钥ID和秘密访问密钥,我怎样创建一个...

    Linux教程网6182019-10-30
  • Linux理解 Linux/Unix 登录脚本的技巧

    理解 Linux/Unix 登录脚本的技巧

    有一些常见的情况,例如从Debian的包管理程序到Iaas的管理中,很多任务需要设置环境变量才能正常运行。 有时,程序通常只需要在 登陆时运行一次,例如...

    未知1042023-05-12
  • Linuxlinux top命令详解

    linux top命令详解

    这篇文章主要介绍了linux top命令详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    sparkdev5622022-03-01
  • Linuxlinux设置tomcat自启动的方法

    linux设置tomcat自启动的方法

    这篇文章主要介绍了linux设置tomcat自启动的方法,需要的朋友可以参考下...

    Linux教程网8512021-10-10
  • Linuxssh 登录很慢该如何解决

    ssh 登录很慢该如何解决

    这篇文章主要介绍了ssh 登录很慢该如何解决的相关资料,这里提供了两种方法,DNS反向解析及关闭ssh的gssapi认证的解决办法,需要的朋友可以参考下...

    linuxeye9922021-12-16