kubernetes实践之四十三: Service详解
发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,一:简介通过Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并将请求负载分发到后端各个应用容器上,实现Pod的负载均衡。二:Service定义模版重要属性说明1.spec.ty
千家信息网最后更新 2024年11月20日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安全错误
数据库的锁怎样保障安全
软件开发服务 有些什么成本
应用如何切换不同数据库
北同网络安全插画
什么工作跟软件开发相关
怎么删除网络安全提醒
新吴区项目软件开发代理品牌
北京服务器电源采购
2019网络安全周展板
云浮市软件开发招聘
电脑怎么样取消代理服务器
西安软件开发公司有哪些
虹口区本地网络技术厂家现货
宁海软件开发工程
服务器高度2u
中扬网络技术有限公司怎么样
北理工网络安全研究生就业前景
苏宁使用哪种数据库
手机突然显示服务器无响应
流媒体服务器结构图
数据库建立表有约束吗
贵州专业软件开发服务检测中心
服务器怎么开启ftp
人人保网络技术有限公司
万方数据库对大学生的作用
手机app软件开发排行榜
网络安全和国家安全2000字
昆山市玉山镇思婷软件开发工作室
php迷你服务器
北京掌上新城网络技术
sql数据库恢复软件