首页 > 其他分享 >在k8S中,Service分发后端的策略是什么?

在k8S中,Service分发后端的策略是什么?

时间:2024-02-10 14:44:06浏览次数:31  
标签:分发 负载 策略 Service IP proxy Pod k8S

在Kubernetes (k8s) 中,Service可以使用多种策略来分发流量到后端Pod。以下是一些主要的分发策略:

  1. ClusterIP (默认策略):

    • Service会获取一个仅集群内部可访问的虚拟IP(ClusterIP),kube-proxy组件根据Service定义的SessionAffinity(如启用)和负载均衡策略将请求转发到后端Pod池。
  2. Round Robin:

    • 默认的负载均衡策略是轮询(Round Robin),kube-proxy会按顺序将请求均匀地分配给后端Pod。
  3. Session Affinity (Client IP):

    • 如您之前所述,可以通过设置sessionAffinity: ClientIP来实现基于客户端IP地址的会话保持。这意味着从同一个客户端IP发起的连续请求会被路由至同一后端Pod,直到会话超时或Pod不再可用。
  4. Session Affinity (cookie):

    • Kubernetes 1.8版本及更高版本支持基于cookie的会话亲和性,这允许通过HTTP cookie来维持客户端会话与后端Pod的连接。
  5. Headless Service:

    • 不提供ClusterIP的服务类型,它返回Pods的Endpoints列表而不做负载均衡,客户端可以直接与Pod通信。
  6. NodePort:

    • 在每个节点上开启特定端口,让外部能够直接通过这个端口访问Service,负载均衡由kube-proxy在同一节点上的Pod间执行或者由外部负载均衡器完成。
  7. LoadBalancer:

    • 如果云提供商支持,可以创建一个外部负载均衡器资源,它将暴露服务到公网,并根据配置的负载均衡策略将流量分发到各个Pod。
  8. ExternalName:

    • 这种类型的服务不直接指向集群中的Pod,而是解析为一个外部DNS名称。
  9. IPVS (IP Virtual Server) 转发模式:

    • 在kube-proxy中,可以配置使用IPVS作为代理模式以替换iptables,IPVS提供了更高效的负载均衡算法和更强的网络功能。

综上所述,每种策略的选择取决于应用需求、集群环境以及性能要求。

标签:分发,负载,策略,Service,IP,proxy,Pod,k8S
From: https://www.cnblogs.com/huangjiabobk/p/18012871

相关文章

  • 在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......
  • 解决kubeadm部署的k8s 集群证书过期
    目录一、查看证书过期时间1.1方式一1.2方式二二、通过命令续期2.1修改集群内所有机器的时间,模拟证书在过期的边缘2.2查看证书有效期2.3备份原有数据2.4备份证书2.5更新证书2.6确认证书有效期2.7更新kubeconfig文件2.8更新客户端证书2.9重启相关的po......