Kubernetes服务是集群中部署的一组pod的逻辑抽象(它们都执行相同的功能)。由于Pod是短暂的,因此服务可以为一组提供特定功能(Web服务、图像处理等)的Pod分配一个名称和唯一的IP地址(clusterIP)。只要服务正在运行该IP地址,它就不会改变。服务还为其访问定义策略。
在Kubernetes中,服务和部署有什么区别?
在Kubernetes中,部署是一种使用容器化应用程序启动pod并确保集群上始终运行必要数量的副本的方法。另一方面,服务负责向这些pod公开接口,这使得可以从集群内部或外部进程与服务之间进行网络访问。
Kubernetes服务的组件有哪些?
Kubernetes服务将一组pod连接到一个抽象的服务名称和IP地址。服务提供pod之间的发现和路由。例如,服务将应用程序前端连接到其后端,每个后端都在集群中的单独部署中运行。服务使用标签和选择器将pod与其他应用程序匹配。Kubernetes服务的核心属性是:
可以在没有pod选择器的情况下定义服务。例如,将服务指向不同命名空间或集群中的另一个服务。
Kubernetes服务有哪些类型?
什么是KubernetesClusterIP服务?
ClusterIP是默认的服务类型,用于在集群内部的IP地址上公开服务。仅允许从集群内部访问。

不需要负载平衡且仅公开单个IP的服务可以通过将clusterIP指定为“none”来创建“无头”服务。可以使用选择器定义无头服务,在这种情况下,端点记录在API中创建,修改DNS以返回指向公开服务的pod的地址。没有选择器的无头服务不会创建端点记录。DNS系统为与服务同名的端点配置CNAME记录或记录。
什么是KubernetesNodePort服务?
NodePorts是每个集群节点上的开放端口。Kubernetes会将进入NodePort的流量路由到服务,即使该服务没有在该节点上运行。NodePort旨在作为其他更高级别的入口方法(例如负载平衡器)的基础,并且在开发中很有用。
什么是KubernetesExternalName服务?
ExternalName服务与其他Kubernetes服务类似;它不是通过clusterIP地址访问,而是返回一个CNAME记录,其值在创建服务时在externalName:参数中定义。
什么是Kubernetes负载均衡器服务?
对于在AWS或Azure等公共云提供商上运行的集群,创建负载LoadBalancer服务提供了与clusterIP服务等效的功能,将其扩展到特定于云提供商的外部负载均衡器。Kubernetes将自动创建负载均衡器,在需要时提供防火墙规则,并使用云提供商分配的外部IP地址填充服务。
Kubernetes服务如何工作?
服务只是使用标签指向pod。由于服务不是特定于节点的,因此服务可以指向一个pod,而不管它在任何给定时刻在集群中的哪个位置运行。通过公开服务IP地址和DNS服务名称,只要服务存在,就可以通过任一方法访问应用程序。
您如何定义Kubernetes服务?
服务在YAML中定义,所有Kubernetes对象也是如此。假设您部署了运行后端服务的pod,以处理来自Web前端的数据。要在部署“deployment-backend”上公开名为“service-backend”的服务,您可以使用:
将创建服务“service-backend”,集群中的任何pod都可以通过http://service-backend:4000在其端口333上访问它,或者使用端口4000在集群的IP地址上访问它。
Kubernetes服务也可以使用“kubectlexpose”命令创建,该命令不需要YAML文件。可以使用以下命令创建相同的服务:
kubectl暴露部署部署后端--端口=333--目标端口=4000--名称=服务后端
如何访问Kubernetes服务?
有两种方法可以发现Kubernetes服务:
DNS(最常见):DNS方法是发现服务的推荐方法。要使用此方法,必须首先在集群上安装DNS服务器。DNS服务器监控KubernetesAPI,当一个新服务被创建时,它的名字就可以用于请求应用程序的轻松解析。
ENV变量:此方法依赖于kubelet为运行pod的每个节点的每个活动服务添加环境变量。
本文来源:国外服务器--什么是Kubernetes服务(kubernetesgo)
本文地址:https://www.idcbaba.com/guowai/3086.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1919100645@qq.com 举报,一经查实,本站将立刻删除。



