首页 > 其他分享 >Kubernetes--LoadBalancer类型的Service资源和ExternalName Service

Kubernetes--LoadBalancer类型的Service资源和ExternalName Service

时间:2022-10-07 12:55:09浏览次数:52  
标签:Service Kubernetes -- redis svc IP地址 客户端

LoadBalancer类型的Service资源

NodePort类型的Service资源虽然能够于集群外部访问得到,但外部客户端必须得事先得知NodePort和集群中至少一个节点的IP地址,且选定的节点发生故障时,客户端还得自行选择请求访问其他的节点。另外,集群节点很可能是某IaaS云环境中使用私有IP地址的VM,或者是IDC中使用的私有地址的物理机,这类地址对互联网客户端不可达,因此,一般还应该在集群之外创建一个具有公网IP地址的负载均衡器,由它接入外部客户端的请求并调度至集群节点相应的NodePort之上。

IaaS云计算环境通常提供了LBaaS(Load Balancer as a Service)服务,它允许租户动态地在自己的网络中创建一个负载均衡设备。那些部署于此类环境之上的Kubernetes集群在创建Service资源时可以直接调用此接口按需创建出一个软负载均衡器,而具有这种功能的Service资源即为LoadBalancer类型。不过,如果Kubernetes部署于裸的服务器之上,系统管理员也可以自行手动部署一个负载均衡器(推荐使用冗余配置),并配置其将请求流量调度至各个节点的NodePort之上即可。

  • 下面是一个LoadBalancer类型的Service资源配置清单,若Kubernetes系统满足其使用条件,即可自行进行应用测试。需要注意的是,有些环境中可能还需要为Service资源的配置定义添加Annotations,必要时请自行参考Kubernetes文档中的说明~:
kind: Service
apiVersion: v1
metadata:
  name: myapp-svc-lb
spec:
  type: LoadBalancer
  selector:
    app: myapp
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
    nodePort: 32224

进一步地,在IaaS环境支持手动指定IP地址时,用户还可以使用.spec.loadBalancerIP指定创建的负载均衡器使用的IP地址,并可使用.spec.loadBalancerSourcwRanges指定负载均衡器允许的客户端来源的地址范围。

ExternalName Service

ExternalName类型的Service资源用于将集群外部的服务发布到集群中以供Pod中的应用程序访问,因此,它不需要使用标签选择器关联任何的Pod对象,但必须要使用spec.externalName属性定义一个CNAME记录用于返回外部真正提供服务的主机的别名,而后通过CNAME记录值获取到相关主机的IP地址。

下面是一个ExternalName类型的Service资源示例,名为external-redis-svc,相应的externalName为“redis.ilinux.io”:

kind: Service
apiVersion: v1
metadata:
  name: external-redis-svc
spec:
  type: ExternalName
  externalName: redis.ilinux.io
  ports:
  - protocol: TCP
    port: 6379
    targetPort: 6379
    nodePort: 0
  selector: {}
待Service资源external-redis-svc创建完成后,各Pod对象即可通过external-redis-svc或其FQDN格式的名称external-redis-svc.default.svc.cluster.local访问相应的服务。ClusterDNS会将此名称以CNAME格式解析为.spec.externalNAME字段中的名称,而后通过DNS服务将其解析为相应的主机的IP地址。例如,通过此前创建的交互Pod资源客户端进行服务名称解析:
]$ nslookup external-redis-svc
Server:        223.5.5.5
Address:    223.5.5.5#53

 

由于ExternalNAME类型的Service资源实现于DNS级别,客户端将直接接入外部的服务而完全不需要服务代理,因此,它也无须配置ClusterIP,此种类型的服务也成为Headless Service。

标签:Service,Kubernetes,--,redis,svc,IP地址,客户端
From: https://www.cnblogs.com/zhangxin9/p/16759535.html

相关文章

  • Springboot 之 Filter 实现 Gzip 压缩超大 json 对象
    简介在项目中,存在传递超大json数据的场景。直接传输超大json数据的话,有以下两个弊端占用网络带宽,而有些云产品就是按照带宽来计费的,间接浪费了钱传输数据大导致......
  • 深入掌握智能指针
    智能指针介绍学习C++的人,一直在接触裸指针,一边感受着它的强大,一边感受着它的坑爹。当然,坑不坑爹在于开发者,指针本身近乎完美,但奈何用的人比较猥琐,给自己埋下无数的坑,还哭......
  • 报告分享|中国手术机器人行业研究报告
     报告链接:http://tecdat.cn/?p=28767当前,我国是全球第三大手术机器人市场,弗若斯特沙利文报告数据显示,2020年我国手术机器人市场规模全球占比5.1%;前两大市场分别是美国和......
  • 报告分享|2022年中国口腔医疗行业发展趋势研究报告
     报告链接:http://tecdat.cn/?p=28769 2022年《中国口腔医疗行业发展趋势研究报告》国家重视口腔卫生事业,2019年1月31日,国家卫健委发布《健康口腔行动方案(2019-2025年)》......
  • 报告分享|2022户外露营消费趋势洞察报告
    报告链接:http://tecdat.cn/?p=28771大背景下,国内游客消费偏好与出行方式也发生了变化;碎片化、短距离出游兴起,以本地游、周边游微代表的短时、短途、高频“微旅行”模式加......
  • 08第二章:【07】迪米特原则(LOD)
    迪米特法则(LawofDemeter)(DemeterPrinciple)一、基本介绍1、一个对象应该对其他对象保持最少的了解;2、类与类关系越密切,耦合度越大;3、迪米特法则(DemeterPrinciple)又......
  • 报告分享|2022年中国跨境电商服务行业趋势报告
     报告链接:http://tecdat.cn/?p=28912《2022年中国跨境电商服务行业趋势报告》跨境电商服务行业为跨境电商企业在出海的各个环节上提供专业产品及服务。跨境电商服务可分......
  • 报告分享|新零售时代下,商场导购生存与发展报告
     报告链接:http://tecdat.cn/?p=28899开麦就是主播,跨柜也能推广…这就是百货新零售导购团队们的新面貌。2022年,在导购关爱保障上的投入将大幅增长,同比提升68%。依托多年......
  • 通用后台管理系统需求分析
    系统需求分析2.1系统可行性分析 2.1.1技术可行性从零开始搭建一个项目骨架,最好选择合适熟悉的技术,并且在未来易拓展,适合微服务化体系等。所以一般以Springboot作为我们......
  • 深入理解css 笔记(1)
     如果要掌握css,一定要理解基础知识,并且深入的理解。css的意思是层叠样式表。我们先讲层叠。我们需要理解浏览器如何解析样式规则。每条规则单独看很简单,但是当两条规则......