【kubernetes】service
目录
- 1. 说明
- 2. 原理
- 2.1 服务注册
- 2.2 服务发现
- 2.3 负载均衡
- 3. Service的类型
- 3.1 ClusterIP
- 3.2 NodePort
- 3.3 LoadBalancer
- 3.4 ExternalName
- 4. 使用场景
1. 说明
- 1.kubernetes中的service主要用于提供网络服务,并实现微服务架构中的几个核心功能:全自动的服务注册、服务发现、服务负载均衡等。
- 2.Service在kubernetes中代表了一组Pod的逻辑集合,为Pod提供了一个统一的访问地址和端口。
- 3.通过service的定义,可以对客户端应用屏蔽后端Pod实例数量及Pod IP地址的变化。
- 4.service能够对客户端的请求通过负载均衡策略转发到后端Pod实例,为客户端应用提供一个稳定的服务访问入口地址。
2. 原理
2.1 服务注册
- 1.创建service时,kubernetes会自动创建与service关联的Endpoints资源对象。
- 2.Endpoints对象用于存储Service对应的后端容器应用访问地址列表,即后端Pod的“IP:Port”列表。
- 3.这是由Endpoints Controller完成的,它负责生成和维护所有Endpoints对象。
- 4.Endpoints Controller会持续监听Service和对应的Pod副本列表的变化,在Pod列表发生变化时,实时更新对应的Service的Endpoints对象。
2.2 服务发现
- 1.Kubernetes提供了两种机制供客户端应用以固定的方式获取后端服务的访问地址:环境变量方式和DNS方式。
- 2.客户端Pod在创建时,系统会自动为其容器运行环境注入集群中所有有效Service的信息。
- 3.同时,能够感知集群的DNS服务器(例如CoreDNS)会监视Kubernetes API中的新Service,并为每个Service创建一组DNS记录。
- 4.客户端应用可以通过这两种方式发现需要访问的Service。
2.3 负载均衡
- 1.从Service虚拟IP到后端Pod的负载均衡机制,是由每个Node上的kube-proxy负责实现的。
- 2.kube-proxy可以通过iptables或IPVS模式来实现流量的转发和负载均衡。
- 3.iptables模式使用Linux netfilter处理流量,无需在用户空间和内核空间之间切换,系统开销较低。
- 4.而IPVS模式使用哈希表作为底层数据结构,在内核空间中生效,因此比iptables模式重定向流量的延迟更低,同步代理规则时性能也更好。
3. Service的类型
3.1 ClusterIP
- 1.这是默认的Service类型。
- 2.ClusterIP类型的Service仅在集群内部可访问,外部应用无法直接访问。
- 3.创建Service时,Kubernetes会为Service分配一个虚拟IP地址(ClusterIP),该IP地址仅在集群内部可访问。
3.2 NodePort
- 1.NodePort类型的Service除了在集群内部可访问之外,还可以通过节点的IP地址和NodePort端口号从外部访问。
- 2.创建Service时,Kubernetes会为Service分配一个NodePort端口号,该端口号在所有节点上都可用。
- 3.外部应用可以通过节点的IP地址和NodePort端口号访问Service。
- 4.但这种方式会在集群内每个节点上都占用一个端口,可能会浪费资源。
3.3 LoadBalancer
- 1.LoadBalancer类型的Service在支持LoadBalancer的公有云环境中使用。
- 2.云提供商会自动为这个Service配置一个负载均衡器,并将流量转发到Service的NodePort上。
- 3.这种方式需要额外的成本,例如云服务商的负载均衡器费用。
3.4 ExternalName
- 1.ExternalName类型的Service将Service的名称映射到一个外部域名,使得集群内部可以通过这个Service名称来访问外部的域名。
4. 使用场景
- 1.内部服务暴露:对于仅在集群内部使用的服务,可以使用ClusterIP类型的Service来暴露。
- 2.外部访问服务:对于需要从外部访问的服务,可以使用NodePort或LoadBalancer类型的Service。NodePort类型适用于小规模集群或测试环境,而LoadBalancer类型则适用于需要高可用性和可扩展性的生产环境。
- 3.引入外部服务:对于集群外部的服务,可以使用ExternalName类型的Service将其引入到集群内部来使用。
相关文章:
【kubernetes】service
目录 1. 说明2. 原理2.1 服务注册2.2 服务发现2.3 负载均衡 3. Service的类型3.1 ClusterIP3.2 NodePort3.3 LoadBalancer3.4 ExternalName 4. 使用场景 1. 说明 1.kubernetes中的service主要用于提供网络服务,并实现微服务架构中的几个核心功能:全自动…...
Python卷积神经网络(CNN)来识别和计数不同类型的工业零件
以下三种类型工业零件为例,使用卷积神经网络(CNN)来识别和计数不同类型的工业零件。以下是Python实现步骤: 数据准备:收集并标注包含不同形状(如方形、圆形、扇形)的工业零件图像数据集。 模型…...
MoonSharp 文档二
目录 6.Sharing objects 我们先来简单谈谈类型描述符 先说类型描述 稍微复杂一点 调用静态成员 应该使用 “:” 还是 “.” 重载 ByRef 参数(C# 中的 ref/out) 索引器 userdata 上的运算符和元方法 扩展方法 事件 关于 InteropAccessMode 的…...
android 支持自定义布局、线程安全、避免内存泄漏的 Toast 工具类
支持自定义布局:可以灵活地显示自定义样式的 Toast。 线程安全:确保在主线程中显示 Toast,避免崩溃。 避免内存泄漏:使用 ApplicationContext 和取消机制,防止内存泄漏问题。 工具类:作为一个通用的工具…...
景联文科技:以精准数据标注赋能AI进化,构筑智能时代数据基石
在人工智能技术席卷全球的浪潮中,高质量数据已成为驱动AI模型进化的核心燃料。作为全球领先的AI数据服务解决方案提供商,景联文科技深耕数据标注领域多年,以技术为基、以专业为本,致力于为全球客户提供全场景、高精度、多模态的数…...
Mysql的卸载安装配置以及简单使用
MySQL其它问题已经更新在:MySQL完善配置---可视化-CSDN博客 一、卸载 ①控制面板卸载 ②C盘隐藏项目>ProgramData>mysql相关文件夹,还有Program file下的MySQL文件夹 ③开始菜单栏搜索>服务,找到MySQL相关服务删除,如果再…...
使用 ResponseBodyEmitter 实现异步响应式数据流处理
1. 概述 1.1 什么是 ResponseBodyEmitter ResponseBodyEmitter 是 Spring MVC 提供的一个接口,用于支持异步返回响应数据流。它允许在控制器方法中逐步发送数据给客户端,而无需一次性生成完整的响应。 1.2 使用场景 实时数据推送(如股票行情、聊天消息等)。大量数据分批…...
Uniapp项目运行到微信小程序、H5、APP等多个平台教程
摘要:Uniapp作为一款基于Vue.js的跨平台开发框架,支持“一次开发,多端部署”。本文将手把手教你如何将Uniapp项目运行到微信小程序、H5、APP等多个平台,并解析常见问题。 一、环境准备 在开始前,请确保已安装以下工具…...
Ubuntu 下 nginx-1.24.0 源码分析 - cycle->modules[i]->type
Nginx 中主要有以下几种模块类型 类型 含义 NGX_CORE_MODULE 核心模块(如进程管理、错误日志、配置解析)。 NGX_EVENT_MODULE 事件模块(如 epoll、kqueue 等 IO 多路复用机制的实现)。 NGX_HTTP_MODULE HTTP 模块…...
基于SpringBoot的“文物管理系统”的设计与实现(源码+数据库+文档+PPT)
基于SpringBoot的“文物管理系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统总体功能模块图 E-R实体图 系统首页界面 系统…...
dify + ollama + deepseek-r1+ stable-diffusion 构建绘画智能体
故事背景 stable-diffusion 集成进 dify 后,我们搭建一个小智能体,验证下文生图功能 业务流程 #mermaid-svg-6nSwwp69eMizP6bt {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-6nSwwp69eMiz…...
Android原生gif动图加载AnimatedImageDrawable
Android原生gif动图加载AnimatedImageDrawable 从Android P(9.0)开始,Android系统支持gif动图的原生控件AnimatedImageDrawable,可以播放加载gif动图。 AnimatedImageDrawable官方文档链接: https://developer.andro…...
Windows 系统 Docker Desktop 入门教程:从零开始掌握容器化技术
文章目录 前言一、Docker 简介二、Docker Desktop 安装2.1 系统要求2.2 安装步骤 三、Docker 基本概念四、Docker 常用命令五、实战:运行你的第一个容器5.1 拉取并运行 Nginx 容器5.2 查看容器日志5.3 停止并删除容器 六、总结 前言 随着云计算和微服务架构的普及&…...
记录小白使用 Cursor 开发第一个微信小程序(二):创建项目、编译、预览、发布(250308)
文章目录 记录小白使用 Cursor 开发第一个微信小程序(二):创建项目、编译、预览、发布(250308)一、创建项目1.1 生成提示词1.2 生成代码 二、编译预览2.1 导入项目2.2 编译预览 三、发布3.1 在微信开发者工具进行上传3…...
实战 - 使用 AutoAWQ 进行量化
文章目录 一、准备1、安装 autoawq2、模型准备 二、量化config.json 文件变化 三、加载量化后模型量化后的输出原始输出对比 四、查看模型的精度1、查看模型卡2、查看 config.json 中的 torch_dtype3、打印模型信息4、model.dtype 未必是模型精度 一、准备 1、安装 autoawq p…...
C++20 格式化库:强大的字符串格式化工具
文章目录 格式化语法常见用法1. 填充和对齐2. 数值格式化3. 进制格式化4. 自定义类型 示例代码注意事项 C20 的格式化库是一个强大的工具,用于处理字符串的格式化操作。它提供了类似于 Python 中 str.format() 的功能,但语法和用法更符合 C 的风格。以下…...
【一文学会 HTML5】
目录 HTML概述基本概念HTML 发展历程HTML 基本结构 网页基本标签标题标签(<h1> - <h6>)段落标签(<p>)换行标签(<br>)水平线标签(<hr>)注释࿰…...
如何在WPS中接入DeepSeek并使用OfficeAI助手(超细!成功版本)
目录 第一步:下载并安装OfficeAI助手 第二步:申请API Key 第三步:两种方式导入WPS 第一种:本地大模型Ollama 第二种APIKey接入 第四步:探索OfficeAI的创作功能 工作进展汇报 PPT大纲设计 第五步:我的使用体验(体验建议) …...
蓝耘智算 + 通义万相 2.1:为 AIGC 装上 “智能翅膀”,翱翔创作新天空
1. 引言:AIGC 的崛起与挑战 在过去几年中,人工智能生成内容(AIGC)技术突飞猛进。AIGC 涉及了文本生成、图像创作、音乐创作、视频制作等多个领域,并逐渐渗透到日常生活的方方面面。传统的内容创作方式已经被许多人类创…...
电脑如何在系统默认的壁纸中切换自己喜欢的
1、声明:该切换壁纸仅支持win10。 当你想去切换系统默认的壁纸,但是不知道该怎么切换,别慌,小亦教你几招帮你快速切换自定义壁纸。 我们平常使用的win10桌面壁纸大部分都是 简单、朴素的壁纸,但如果你想要切换自己喜…...
深度解析CloverBootloader内存管理:AptioMemoryFix原理与实现详解
深度解析CloverBootloader内存管理:AptioMemoryFix原理与实现详解 【免费下载链接】CloverBootloader Bootloader for macOS, Windows and Linux in UEFI and in legacy mode 项目地址: https://gitcode.com/gh_mirrors/cl/CloverBootloader CloverBootloade…...
百川2-13B中文优势:OpenClaw在本地化办公场景中的特殊优化技巧
百川2-13B中文优势:OpenClaw在本地化办公场景中的特殊优化技巧 1. 为什么选择百川2-13B处理中文办公文档 去年我在整理团队季度报告时,曾尝试用多个开源模型处理中文PDF和微信群聊记录。当通用英文模型遇到中文标点符号和行业术语时,要么漏…...
STM32F103开发实录:当Clion的智能补全,遇上CubeMX+Keil5的稳定编译链
STM32F103开发实战:CLion智能编码与Keil5稳定编译的完美融合 第一次接触STM32开发时,我被Keil5那复古的界面和笨重的操作流程震惊了。作为一名习惯了现代IDE的开发者,我一直在寻找既能享受CLion智能编码体验,又能利用Keil5成熟编译…...
从Vaihingen数据集到训练样本:高分辨率遥感影像语义分割全流程实战
1. 初识Vaihingen数据集:遥感语义分割的黄金标准 第一次接触Vaihingen数据集时,我被它5厘米的超高分辨率震撼到了。这个由ISPRS提供的基准数据集,虽然只包含38张60006000像素的影像,但每张都清晰地展现了德国小镇Vaihingen的街道、…...
Ubuntu下基于simple-rtsp-server构建轻量级实时视频流媒体服务
1. 为什么选择simple-rtsp-server搭建流媒体服务 最近在给公司搭建内部监控系统时,我对比了市面上七八种RTSP服务器方案,最终选择了simple-rtsp-server。这个用纯C语言编写的轻量级服务器,编译后二进制文件只有几百KB,但性能却出乎…...
Simulink模型到AUTOSAR RTE的‘最后一公里’:手把手教你处理ARXML接口冲突并自动配置ISOLAR
Simulink模型到AUTOSAR RTE的‘最后一公里’:手把手教你处理ARXML接口冲突并自动配置ISOLAR 在汽车电子软件开发中,Simulink与AUTOSAR工具链的集成已经成为行业标配。但当你满怀期待地将Simulink模型导出为ARXML文件,准备导入ISOLAR进行后续开…...
探索水煤气交换反应的SOFC模型:从理论到Comsol仿真
水煤气交换反应的SOFC模型,固体氧化物燃料电池 考察了水煤气反应对电池内部气体浓度,温度的影响,基于仿真软件comsol探究了单通道SOFC的内特性,考虑了传热传质下的SOFC内特性,电池片的厚度来自于实际电池SEM扫描结果&a…...
AI混音师登场:音频自动混音技术全景解读与实战展望
AI混音师登场:音频自动混音技术全景解读与实战展望 引言 在AIGC浪潮席卷内容创作的今天,音频制作领域正经历一场静默革命。从专业录音棚到手机直播间,“一键母带”、“智能平衡”功能已不再陌生。这背后,正是音频自动混音技术在驱…...
OpenClaw技能扩展实战:用百川2-13B-4bits量化模型开发自定义自动化模块
OpenClaw技能扩展实战:用百川2-13B-4bits量化模型开发自定义自动化模块 1. 为什么选择百川2-13B-4bits量化模型 去年冬天,当我第一次尝试用本地部署的大模型开发OpenClaw技能时,显存不足的报错成了家常便饭。直到发现百川2-13B的4bits量化版…...
Wireshark网络协议分析技术与实践指南
1. 网络协议分析技术概述1.1 Wireshark工具简介Wireshark(前称Ethereal)是目前最主流的开源网络协议分析工具,采用WinPCAP接口直接与网卡进行数据报文交换。该工具支持超过2000种网络协议的解析,能够实时捕获和分析网络数据包。1.…...
