kubernetes实践之四十三: Service详解
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,一:简介通过Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并将请求负载分发到后端各个应用容器上,实现Pod的负载均衡。二:Service定义模版重要属性说明1.spec.ty
千家信息网最后更新 2025年12月01日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安全错误
数据库的锁怎样保障安全
机算机网络技术是学什么的
用户收藏数据库表
吞食天地下载软件开发
网络安全法宣传小报
可以同时备份一个或多个数据库
郑州市奥瑞网络技术有限公司
迷你军团服务器开放时间
机有网络技术有限公司
数据库创建代码截图
sql数据库只显示一个字段
数据库候选原理
JAVA软件开发的自我介绍
未成年攻击服务器
国家规定网络安全
软件开发培训学习价格
软件开发服务费入
数据库解答高手
网络安全等级保护测评师费用
服务器找客户的方法
学生评估平台软件开发
广西计算机网络技术大专
重庆网络安全攻防竞赛
软件开发财务预算报告模板
NBA2k21mt模式服务器
网络安全检查频次
服务器433
aspnet怎么输入数据库
数据库开发主要做什么
神农架靠谱的软件开发团队
软件开发的对赌协议