首页 > 其他分享 >在k8S中,Servic类型有哪些?

在k8S中,Servic类型有哪些?

时间:2024-02-10 14:44:35浏览次数:33  
标签:服务 Service 哪些 Servic 访问 集群 DNS Pod k8S

在Kubernetes(k8s)中,Service是用于定义一组Pod的访问策略和机制的资源对象。以下是Kubernetes Service支持的主要类型:

  1. ClusterIP

    • 这是默认的服务类型。创建一个仅集群内部可访问的虚拟IP地址(VIP)。应用程序只能通过内部集群DNS名称从集群内的其他Pod或服务访问这个Service。
  2. NodePort

    • 除了分配一个ClusterIP之外,NodePort还会为Service在每个节点上开启一个静态端口,使得外部客户端可以通过任意节点的IP地址加上这个特定端口来访问Service。这意味着,尽管Service本身仍然不可直接从集群外部访问,但通过任何节点的特定端口可以间接地与Service通信。
  3. LoadBalancer

    • 类似于NodePort,LoadBalancer类型的服务也会绑定到一个ClusterIP,并且在集群外部暴露一个负载均衡器。对于运行在公有云环境中的Kubernetes集群(如GCP、AWS、Azure等),这通常会自动配置一个云提供商的负载均衡器,将流量路由到后端的Pod。这样就可以从互联网直接访问服务了。
  4. ExternalName

    • 这种类型的服务不创建代理,而是返回CNAME记录指向一个外部DNS名称。它主要用于集群内服务指向集群外服务的情况,不涉及任何网络代理或负载均衡。
  5. Headless Service(无头服务)

    • 虽然不是一种正式的服务类型,但在某些情况下,可以通过设置spec.clusterIP: None创建一个特殊的“无头”服务。这种服务不会获取Cluster IP,而是只为Pod提供DNS解析,让客户端可以直接通过DNS解析获得Pod的IP列表,进而直接连接到各个Pod实例。

综上所述,每种Service类型都适用于不同的场景,从仅限集群内部访问到公开暴露给外部用户,以及实现更灵活的服务发现和连接方式。

标签:服务,Service,哪些,Servic,访问,集群,DNS,Pod,k8S
From: https://www.cnblogs.com/huangjiabobk/p/18012870

相关文章

  • 在k8S中,Service分发后端的策略是什么?
    在Kubernetes(k8s)中,Service可以使用多种策略来分发流量到后端Pod。以下是一些主要的分发策略:ClusterIP(默认策略):Service会获取一个仅集群内部可访问的虚拟IP(ClusterIP),kube-proxy组件根据Service定义的SessionAffinity(如启用)和负载均衡策略将请求转发到后端Pod池。R......
  • 在k8S中,自动扩容机制是什么?
    在Kubernetes(k8s)中,自动扩容机制主要用于根据资源使用情况动态调整Pod副本的数量,以确保服务的稳定性和高效性。主要实现这一功能的组件是HorizontalPodAutoscaler(HPA)。HorizontalPodAutoscaler工作原理如下:监控指标:HPA通过与KubernetesMetricsServer或者其他的自定......
  • 在k8S中,deployment升级策略是什么?
    在Kubernetes(k8s)中,Deployment的升级策略主要指的是在更新Pod副本以部署新的容器镜像或配置时所采用的方法。主要有两种内置的升级策略:滚动更新(RollingUpdate):这是Deployment默认使用的升级策略。在滚动更新中,Deployment控制器会按批次替换现有的Pod,每次只替换一部......
  • 在k8S中,DaemonSet类型的资源特性有哪些?
    Kubernetes(k8S)中的DaemonSet是一种控制器资源,它具有以下关键特性:每个节点运行一个实例:DaemonSet确保集群中的每个节点(满足特定条件的节点)上都运行一个Pod副本。这意味着无论何时创建或加入新的节点到集群中,DaemonSet都会自动为新节点调度和管理一个Pod。目标节点......
  • 在k8S中,初始化容器(init container)概念原理是什么?
    在Kubernetes(k8S)中,初始化容器(InitContainer)是一个特殊类型的容器,它会在应用程序容器启动之前运行。它的主要目的是执行一些必要的先决条件任务,这些任务必须在主应用容器开始服务前完成。初始化容器的概念原理如下:顺序执行:Pod中可以定义多个初始化容器,它们按照配置文件......
  • 在k8S中,deployment升级过程是什么?
    在Kubernetes(k8s)中,Deployment升级过程是一个受控且平滑的过程,用于将应用的新版本无缝地替换旧版本。以下是Deployment进行滚动升级的基本步骤:更新Deployment配置:首先,你需要更新Deployment的yaml配置文件,例如更改镜像标签到新版本的应用程序镜像。提交变更:应用这些更......
  • 在k8S中,Pod的常见调度方式有哪些?
    在Kubernetes(k8s)中,Pod的调度可以通过多种方式来实现其在集群中的节点分配。以下是Pod常见的调度方式:默认调度:默认情况下,Kubernetes调度器会自动根据资源需求(CPU、内存等)、节点标签选择器、污点和容忍度(TaintsandTolerations)、亲和性和反亲和性规则等因素为Pod分......
  • k8s 常用命令
    pod:1、查看所有工作空间的podkubectlgetpods-A2、查看所有pod的标签kubectlgetpods--show-labels3、查看pod的详细信息(如ip)kubectlgetpods-owide4、查看某个pod的报错和详细信息(如查看pod为什么Pending)kubectldescribepoddb-mysql-f7fbfdd68-nf2jk......
  • src.serviceImpl.UserDetailsServiceImpl
    packagecom.oep.backend.serviceImpl;importcom.baomidou.mybatisplus.core.conditions.query.QueryWrapper;importcom.oep.backend.mapper.AccountMapper;importcom.oep.backend.pojo.Account;importcom.oep.backend.serviceImpl.utils.UserDetailsImpl;importor......
  • src.backend.serviceImpl.UserDetailsServiceImpl
    packagecom.oep.backend.serviceImpl;importcom.oep.backend.pojo.Account;importlombok.AllArgsConstructor;importlombok.Data;importlombok.NoArgsConstructor;importorg.springframework.security.core.GrantedAuthority;importorg.springframework.securit......