k8s教程(service篇)-资源定义详解

01 引言

声明:本文为《Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)》的读书笔记

ServiceKubernetes实现微服务架构的核心概念,通过创建Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并且将请求负载分发到 后端的各个容器应用上,本文主要对Service的资源定义进行详细说明。

02 资源定义详解

通过Service的定义设置的访问地址是DNS域名格式的服务名称,对于客户端应用来说,网络访问方式并没有改变(DNS域名的作用等价于主机名、互联网域名或IP地址)。

Service还提供了负载均衡器功能,将客户端请求负载分发到后端提供具体服务的各个Pod上

Service的YAML格式的定义文件的完整内容如下:

apiVersion: v1 
kind: Service  
metadata:     
	name: string   
	namespace: string   
	labels:
		- name: string
	annotations:
		- name: string
spec:          
	selector:[]     
	type: string
	clusterIP: string
	sessionAffinity:string 
	ports:
	- name: string
	  protocol: string
	  port: int
	  targetPort: int
	  nodePort: int
	status:
	  loadBalancer:
		ingress:
			ip: string
			hostname: string

属性说明:

属性名称取值类型必选取值说明
versionStringV1
kindStringService
metadataObject元数据
metadata.nameStringService名称,需符合RFC 1035规范
metadata.namespaceString命名空间,不指定系统时将使用名称为default的命名空间
metadata.labels[]list自定义标签属性列表
metadata.annotation[]list自定义注解属性列表
specObject详细描述
spec.selector[]listLabel Selector配置,将选择具有指定Label标签的Pod作为管理范围
spec.typeStringService的类型,指定Service的访问方式,默认值为ClusterIP。 ClusterIP:虚拟服务IP地址,该地址用于Kubernetes 集群内部的Pod访问,在Node上kube-proxy通过设置的 iptables规则进行转发. NodePort:使用宿主机的端口,使能够访问各Node的外 部客户端通过Node的P地址和端口号就能访问服务. LoadBalancer:使用外接负载均衡器完成到服务的负载分发,需要在spec.status.loadBalancer字段指定外部负载均 衡器的P地址,同时定义nodePort和clusterIP,用于公有 云环境
spec.clusterIPString虚拟服务的P地址,当type=ClusterIP时,如果不指定,则系统进行自动分配,也可以手工指定;当type=LoadBalancer 时,需要指定
spec.sessionAffinityString是否支持Session,可选值为ClientIP,默认值为None。 ClientIP:表示将同一个客户端(根据客户端的IP地址决定) 的访问请求都转发到同一个后端Pod
spec.ports[]listService端口列表
spec.ports[].nameString端口名称
spec.ports[].protocolString端口协议,支持TCP和UDP,默认值为TCP
spec.ports[].portint服务监听的端口号
spec.ports[].targetPortint需要转发到后端Pod的端口号
spec.ports[].nodePortint当spec.type=NodePort时,指定映射到宿主机的端口号
StatusObject当spec.type=LoadBalancer时,设置外部负载均衡器的地址,用于公有云环境
status.loadBalancerObject外部负载均衡器
status.loadBalancer.ingressObject外部负载均衡器
status.loadBalancer.ingress.ipString外部负载均衡器的IP地址
status.loadBalancer.ingress.hostnameString外部负载均衡器的主机名

03 文末

本文主要讲解了Service资源类型的定义模板,以及对模板里面属性的解析,希望能帮助到大家,谢谢大家的阅读,本文完!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值