kubernetes实践之四十三: Service详解
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,一:简介通过Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并将请求负载分发到后端各个应用容器上,实现Pod的负载均衡。二:Service定义模版重要属性说明1.spec.ty
千家信息网最后更新 2025年02月02日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安全错误
数据库的锁怎样保障安全
网络安全工程师技术含量
北京数据库日志审计功能
河南电商软件开发哪里有
哪些服务器有安全资质
茂名软件开发者在线咨询
启动子数据库tred使用
软件数据库项目管理
tcga全基因组测序数据库
最新的三种软件开发技术
淘宝店铺服务器出错
福建省天驱企业级服务器
虚拟服务器lan端口如何设置
德州软件开发系统
文明6未进入服务器
硬件技术升级属于网络安全吗
网络安全责任2019
内网服务器链接外网
mysql数据库表名
软件开发的感受
数据库中什么是物质基础
注册境外服务器能访问外网吗
泰兴小型网络技术多少钱
美国网络安全股大跌
上海微信软件开发
北京车车网络技术有限公司举报
浪潮郑州软件开发工程师
sql数据库提示错误
无法加载dll文件数据库
网络技术具体有哪些
服务器机子