Kubernetes-Service

一、service概述

service 是 Kubernetes 最核心概念,通过创建 Service,可以为一组具有相同功能的容器应 用提供一个统一的入口地 址,并且将请求负载分发到后端的各个容器应用上。

二、service定义
# yaml格式的pod定义文件完整内容:
apiVersion: v1 #必选,版本号,例如v1
kind: Service  #必选,Service
matadata:  #必选,元数据
	name: string  #必选,Service名称
	namespace: string   #必选,Service所属的命名空间
	labels: 
		- name: string     #自定义标签名字 
	annotations:       #自定义注释列表
    	- name: string
spec:
	selector: [] #Label Selector配置,选择具有指定label标签的pod作为管理范围
	type: string
	#service的类型,指定service的访问方式,默认ClusterIP
  	#ClusterIP:虚拟的服务ip地址,用于k8s集群内部的pod访问,在Node上kube-porxy通过设置的iptables规则进行转发
 	#NodePort:使用宿主机端口,能够访问各Node的外部客户端通过Node的IP和端口就能访问服务器
  	#LoadBalancer:使用外部负载均衡器完成到服务器的负载分发
  	clusterIP: string
  	#虚拟服务IP地址,当type=ClusterIP时,如不指定,则系统会自动进行分配,也可以手动指定。当type=loadBalancer,需要指定
  	sessionAffinity: string
    #是否支持session,可选值为ClietIP,默认值为空
    #ClientIP表示将同一个客户端(根据客户端IP地址决定)的访问请求都转发到同一个后端Pod
    ports:  #service需要暴露的端口列表  
  		- name: string #端口名称
        protocol: string  #端口协议,支持TCP或UDP,默认TCP
        port: int #服务监听的端口号
        targetPort: int  #需要转发到后端的端口号
        nodePort: int #当type=NodePort时,指定映射到物理机的端口号
    status: #当type=LoadBalancer时,设置外部负载均衡的地址,用于公有云环境    
    loadBalancer:  #外部负载均衡器    
      ingress:  #外部负载均衡器 
      ip: string #外部负载均衡器的IP地址
      hostname: string #外部负载均衡器的机主机
     
        
三、Service类型
1、ClusterIp

默认类型,自动分配一个仅Cluster内部可以访问的虚拟IP

在这里插入图片描述

2、NodePort

在ClusterIP基础上为Service在每台机器上绑定一个端口,这样就可以通过: NodePort来访问该服务。
在这里插入图片描述

3、LoadBalancer

LoadBalancer和NodePort其实是同一种方式。区别在于LoadBalancer比NodePort多了一步,就是可以调用Cloud provider去创建LB来向节点导流。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值