kubernetes实践之四十三: Service详解
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,一:简介通过Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并将请求负载分发到后端各个应用容器上,实现Pod的负载均衡。二:Service定义模版重要属性说明1.spec.ty
千家信息网最后更新 2026年10月31日kubernetes实践之四十三: Service详解一:简介
通过Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并将请求负载分发到后端各个应用容器上,实现Pod的负载均衡。
二:Service定义模版重要属性说明
1.spec.type Service的类型,指定Service的访问方式,默认值为ClusterIP.
a.ClusterIP: 虚拟的服务IP地址,该地址用于Kubernetes集群内部的Pod访问,在Node 上kube-proxy通过设置的Iptables规则进行转发。
b.NodePort: 使用宿主机的端口,使能够访问各Node的客户端通过Node的IP地址和端口号就能访问服务。
c.LoadBalancer: 使用外接负载均衡器完成到服务的负载分发
2.spec.sessionAffinity: 是否支持Session,可选值为ClientIP,默认值为空,ClientIP表示将同一个客户端的访问请求都转发到同一个后端Pod。
三:Service的基本用法
1.通常用法,服务作为Pod的负载均衡器。目前的负载分发策略有:
a. RoundRobin: 轮询模式,即轮询将请求转发到后端各个Pod上。
b.SessionAffinity: 基于客户端IP地址进行回话保持的模式。
2.多端口Service,有时候一个容器应用也可能提供多个端口的服务,那么在Service定义中也可以相应地设置为将多个端口对应到多个应用服务。
在某些环境中,应用系统需要将一个外部数据库作为后端服务进行连接,或将另一个集群或Namespace中的服务作为服务的后端,这时可以通过创建一个无Label Selector的Service来实现(此时需要创建一个和该Service同名的Endpoint)。
四:集群外部访问Pod或Service的方法
1.将容器应用的端口号映射到物理机
a. 通过设置容器级别的hostPort,将容器应用的端口映射到物理机上
a.通过配置nodePort映射到物理机,同时设置Service的类型为NodePort
通过Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并将请求负载分发到后端各个应用容器上,实现Pod的负载均衡。
二:Service定义模版重要属性说明
1.spec.type Service的类型,指定Service的访问方式,默认值为ClusterIP.
a.ClusterIP: 虚拟的服务IP地址,该地址用于Kubernetes集群内部的Pod访问,在Node 上kube-proxy通过设置的Iptables规则进行转发。
b.NodePort: 使用宿主机的端口,使能够访问各Node的客户端通过Node的IP地址和端口号就能访问服务。
c.LoadBalancer: 使用外接负载均衡器完成到服务的负载分发
2.spec.sessionAffinity: 是否支持Session,可选值为ClientIP,默认值为空,ClientIP表示将同一个客户端的访问请求都转发到同一个后端Pod。
三:Service的基本用法
1.通常用法,服务作为Pod的负载均衡器。目前的负载分发策略有:
a. RoundRobin: 轮询模式,即轮询将请求转发到后端各个Pod上。
b.SessionAffinity: 基于客户端IP地址进行回话保持的模式。
2.多端口Service,有时候一个容器应用也可能提供多个端口的服务,那么在Service定义中也可以相应地设置为将多个端口对应到多个应用服务。
点击(此处)折叠或打开
- apiVersion: v1
- kind: Service
- metadata:
- name: webapp
- spec:
- ports:
- - port: 8080
- targetPort: 8080
- name: web
- - port: 8005
- targetPort: 8005
- name: management
在某些环境中,应用系统需要将一个外部数据库作为后端服务进行连接,或将另一个集群或Namespace中的服务作为服务的后端,这时可以通过创建一个无Label Selector的Service来实现(此时需要创建一个和该Service同名的Endpoint)。
点击(此处)折叠或打开
- apiVersion: v1
- kind: Service
- metadata:
- name: mysql-test
- spec:
- ports:
- - port: 3306
点击(此处)折叠或打开
- apiVersion: v1
- kind: Endpoints
- metadata:
- name: mysql-test
- namespace: default
- subsets:
- - addresses:
- - ip: 120.25.154.90
- ports:
- - port: 3306
点击(此处)折叠或打开
- apiVersion: v1
- kind: Service
- metadata:
- name: nginx
- labels:
- app: nginx
- spec:
- ports:
- - port: 80
- clusterIP: None
- selector:
- app: nginx
四:集群外部访问Pod或Service的方法
1.将容器应用的端口号映射到物理机
a. 通过设置容器级别的hostPort,将容器应用的端口映射到物理机上
点击(此处)折叠或打开
- apiVersion: v1
- kind: Pod
- metadata:
- name: webapp
- labels:
- app: webapp
- spec:
- containers:
- - name: webapp
- image: tomcat
- ports:
- - containerPort: 8080
- hostPort: 8081
点击(此处)折叠或打开
- apiVersion: v1
- kind: Pod
- metadata:
- name: webapp
- labels:
- app: webapp
- spec:
- hostNetwork: true
- containers:
- - name: webapp
- image: tomcat
- ports:
- - containerPort: 8080
a.通过配置nodePort映射到物理机,同时设置Service的类型为NodePort
点击(此处)折叠或打开
- apiVersion: v1
- kind: Service
- metadata:
- name: nginx
- labels:
- app: nginx
- spec:
- type: NodePort
- ports:
- - port: 80
- targetPort: 8080
- nodePort: 8081
- selector:
- app: nginx
服务
应用
容器
均衡
地址
物理
端口
口号
客户
多个
客户端
集群
a.
功能
模式
端的
类型
级别
均衡器
相同
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡网
有格互联网科技
湖北九亚互联网络科技有限公司
科技股互联网
互联网和科技创新
互联网科技垄断
青岛互联网科技公司
万易互联网科技有限公司
互联网金融科技平台
上游互联网科技
互联网高科技企业
互联网前沿科技
厦门比较好的科技互联网公司
产业互联网科技服务公司
上海创道互联网络科技有限公司
互联网风格科技公司名称
科技和互联网行业的特点
承德科技产业互联网平台
高科技和互联网的现代国家
山东亿川互联网科技有限责任公司
互联网科技公司电话
紫鲸互联网科技
科技创新互联网企业
科技互联网公司logo
互联网科技创新企业排名
小米互联网科技园设置
工业互联网山东科技大学
福建互联网展示科技馆设计
数字科技和互联网金融哪个好
科技发展第三阶段互联网时代