service类型及功能简介+pod类型

功能定义及简介:

定义:K8s 中的Service是一种抽象,用于定义一组Pod的逻辑集合,并为它们提供统一的网络入口。Service充当了Pod的负载平衡器和服务发现器,为应用程序提供了稳定的网络地址,使得应用程序可以访问与之关联的Pod而无需了解其具体的IP地址或端口。

功能:Service 是 Kubernetes 中一种非常重要的资源,它提供了一种抽象和统一的方式来公开应用程序,并实现负载均衡和服务发现,从而简化了微服务架构中的网络管理和通信。 Service的四种类型

1.cluster ip(默认,集群内部访问,提供pod的vip地址),通过集群的内部 IP 公开 Service,选择该值时 Service 只能够在集群内部访问。
2.nodeport,通过每个节点上的 IP 和静态端口(NodePort)公开 Service。 为了让 Service 可通过节点端口访问,Kubernetes 会为 Service 配置集群 IP 地址, 相当于你请求了 type: ClusterIP 的服务。
 
3.Loadlbalance:公有云ecs负载均衡器,会在每个ecs上启动一个nodeport,然后loadbalacne会自动添加nodeip:nodeport,用于将外部流量均衡地分发到集群中的后端 Pod。LoadBalancer 在云提供商(如AWS、阿里云,腾讯云等)上创建一个负载均衡器,并将该负载均衡器配置为将流量路由到 Kubernetes 集群中的 Service。这使得应用程序可以通过公共 IP 地址或 DNS 名称访问 Kubernetes 集群中的服务
4.ExternalName:将服务映射到 externalName 字段的内容(例如,映射到主机名 api.foo.bar.example)。 该映射将集群的 DNS 服务器配置为返回具有该外部主机名值的 CNAME 记录。代理外部域名就是用的这个类型。

无头service: 无头service是K8S中一种特殊类型的服务,与普通的服务类型(如ClusterIP、NodePort、LoadBalancer)不同,它并不分配 ClusterIP,也不会代理流量到任何后端 Pod。相反,它的主要目的是为了服务发现,通过 DNS 记录提供了服务的所有 Pod 的 IP 地址列表。这样,应用程序可以直接通过 Pod 的 IP 地址来访问服务,而不需要经过 Kubernetes 的服务代理。 由于无头服务提供了每个 Pod 的直接 IP 地址,因此它通常用于运行有状态应用程序,如数据库、缓存。 查询 DNS 记录: 使用 Pod 内置的 DNS 解析功能,可以通过无头服务的 DNS 名称来获取所有后端 Pod 的 IP 地址列表。例如,通过查询 my-headless-service.namespace.svc.cluster.local 可以获取到所有与 my-headless-service 服务关联的 Pod 的 IP 地址列表。

 

静态 Pod 是 Kubernetes 中的一种特殊类型的 Pod。与通常由控制器动态创建和管理的 Pod 不同,静态 Pod 是直接在某个节点上手动创建的。

静态 Pod 的配置文件通常存储在节点上的特定目录中(例如 /etc/kubernetes/manifests)。当 Kubernetes 的 kubelet 启动时,它会扫描该目录,并直接使用这些配置文件创建对应的 Pod。

 

静态 Pod 与其他类型的 Pod 有以下一些区别:

静态 Pod 只能在特定的节点上运行,而不能被调度到集群中的其他节点。
静态 Pod 不受控制器的管理,也不会受到自动伸缩、滚动升级等功能的影响。
静态 Pod 的生命周期与 kubelet 进程的生命周期相绑定,如果 kubelet 停止或重启,那么静态 Pod 也会停止或重启。
静态 Pod 在某些情况下非常有用,例如用于在节点启动时运行一些系统级别的服务或辅助容器。然而,在大规模集群中部署静态 Pod 时需要小心,因为手动管理和维护可能会变得复杂和困难

 

posted @ 2024-04-23 04:45  小雨淅淅o0  阅读(33)  评论(0编辑  收藏  举报