【技术实现步骤摘要】
一种实现Kubernetes集群外服务发现的方法及装置
[0001]本专利技术涉及集群服务
,具体为一种实现Kubernetes集群外服务发现的方法及装置。
技术介绍
[0002]Kubernetes提供了云原生的服务发现机制service,service包括ClusterIP、NodePort、LoadBalancer。它们在某些需求简单、无成本顾虑、网络设施能力良好等情况下能较好地发挥作用,但在其他实际环境中则会面临极大的挑战。
[0003]例如,使用NodePort service无外部依赖、无成本,但有外部流量单点的问题,需cl ient实现复杂的负载逻辑;例如,使用LoadBalancer service能解决前者的问题,但每个LoadBalancer service都需要额外的SLB实例,部署成本和运维成本随着数量规模的攀升而攀升,而在IaaS能力较弱的场景下(无SLB)就只能在降低可用性或复杂改造中做选择;又例如,企业在实施容器化迁移的过程中集群外业务对集群内业务的访问,在迁移前和迁移后难以保持一 ...
【技术保护点】
【技术特征摘要】
1.一种实现Kubernetes集群外服务发现的方法,其特征在于:包括以下方法步骤:S1:在Kubernetes中部署Service Controller ManagerDeployment和ConfigMap,其中Service Controller ManagerDeployment简称为SCM;S2:通过service注解增强,其支持scm/enabled和scm/proxymode注解;S3:通过SCM监听原生的Kubernetes service,SCM根据默认配置叠加service annotation的指定配置决定scm
‑
loadbalancer
‑
service的网络模式,并支持中转和直连两种模式;S4:通过SCM识别集群外节点的软件环境,依次包括ebpf、ipvs和iptables,并自适应在集群外节点上完成Cluster IP和其相关的负载均衡设置,还包括service域名的设置。2.根据权利要求1所述的一种实现Kubernetes集群外服务发现的方法,其特征在于:所述默认配置即为SCM ConfigMap,SCM需观察集群主机和endpoint的变化,及时调整集群外主机上的proxy。3.根据权利要求1所述的一种实现Kubernetes集群外服务发现的方法,其特征在于:所述S1中SCM部署部分,包括SCM以Deployment的方式部署和SCM配置以ConfigMap的方式挂载到SCM Pod上。4.根据权利要求3所述的一种实现Kubernetes集群外服务发现的方法,其特征在于:所述SCM的配置项包括:a、集群外主机信息;b、网络连接模式即connectMode,支持转发和直连,默认为转发;转发表示集群外主机上的请求经集群主机NodePort做中转,direct表示集群外主机的请求与Pod IP直连;c、代理模式即proxyMode,支持auto、ebpf、ipvs、iptables,默认为auto;Auto表示根据集群外主机的系统情况选择最优方案,依次为ebpf、ipvs、iptables;ebpf、ipvs、iptables各自表示采用自身技术实现代理。5.根据权利要求1所述的一种实现Kubernetes集群外服务发现的方法,其特征在于:所述S2中注解增强部分中,SCM会针对携带特定annotation的service进行处理,annotation包括:a、scm/enabled=[true|false],true表示开启,开启时SCM会在集群外主机上为ClusterIP/NodePort类型的service生成proxy,False或没有该annotation时SCM忽略该service;b、scm/proxymode=[auto|ebpf|ipvs|iptables],含义同SCM ConfigMap,优先级高于SCM ConfigMap中的配置。6.根据权利要求1所述的一种实现Kubernetes集群外服务发现的方法,其特征在于:所述S3的service监听步骤中,SCM list&watch service针对类型为ClusterIP/NodePort且annotationscm/enabled=true的service进行过滤,接着根据事件类型做进一步的处理,包括Add、Update、Delete。7.根...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。