【kubernetes】service

news2025/3/9 21:35:51

目录

          • 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将其引入到集群内部来使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2312352.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

嵌入式学习笔记-卡尔曼滤波,PID,MicroPython

文章目录 卡尔曼滤波卡尔曼滤波的核心思想卡尔曼滤波的数学模型1. 状态转移模型(预测系统状态)2. 观测模型(预测测量值) 卡尔曼滤波的五个关键步骤1. 预测状态2. 预测误差协方差3. 计算卡尔曼增益4. 更新状态5. 更新误差协方差 卡…

upload-labs文件上传

第一关 上传一个1.jpg的文件,在里面写好一句webshell 保留一个数据包,将其中截获的1.jpg改为1.php后重新发送 可以看到,已经成功上传 第二关 写一个webshell如图,为2.php 第二关在过滤tpye的属性,在上传2.php后使用b…

C++20 格式化库:强大的字符串格式化工具

文章目录 格式化语法常见用法1. 填充和对齐2. 数值格式化3. 进制格式化4. 自定义类型 示例代码注意事项 C20 的格式化库是一个强大的工具,用于处理字符串的格式化操作。它提供了类似于 Python 中 str.format() 的功能,但语法和用法更符合 C 的风格。以下…

[傻瓜式教学]如何将MathType公式编辑器内嵌到WPS工具栏中

[傻瓜式教学]如何将MathType公式编辑器内嵌到WPS工具栏中 将MathType公式编辑器内嵌到WPS工具栏中 下载好所需文件 我用夸克网盘分享了「mathtype安装教程超简单易上手.zip」,点击链接即可保存。打开「夸克APP」 链接:https://pan.quark.cn/s/4726c684…

分析TCP三次握手与四次挥手

TCP(传输控制协议)通过三次握手建立连接,四次挥手终止连接,确保数据传输的可靠性。 TCP的三个控制标志位: SYN——用于建立连接,同步序列号。 ACK——用于确认收到的数据。 FIN——用于终止连接。 ISN…

【深度学习】宠物品种分类Pet Breeds Classifier

文章目录 宠物品种数据集制作宠物品种标签图像预处理Presizing 损失函数loss观察模型的性能提升模型的性能learning rate finder使用CLR算法训练选择学习率的策略重新训练 迁移学习微调fine_tunefit_one_cycle有判别力的学习率 选择epoch的数量更深的网络架构 宠物品种数据集 …

【从零开始学习计算机科学】HLS算子调度

算子调度 调度是HLS 中的核心问题,为无时序或部分时序的输入指定时钟边界,其对最终结果质量具有很大的影响。调度会影响时钟频率、延时、吞吐率、面积、功耗等多种因素。 调度的输入是控制数据流图,其节点表示算子/操作,有向边表示数据依赖,控制依赖,优先依赖。如果没有…

centos 安装composer 教程

打开命令行 php -r "copy(https://getcomposer.org/installer, composer-setup.php);" sudo php composer-setup.php --install-dir/usr/local/bin --filenamecomposer composer --version sudo chmod us /usr/local/bin/composer Super18120/article/details/14388…

C语言_数据结构总结2:动态分配方式的顺序表

0——静态分配内存的顺序表和动态分配内存的顺序表的相同之处和不同之处 相同之处 基本操作逻辑相同:无论是静态分配还是动态分配的顺序表,其核心的操作逻辑是一致的。例如插入操作都需要将插入位置之后的元素依次后移,删除操作都需要将删除…

WSL安装及问题

1 概述 Windows Subsystem for Linux(简称WSL)是一个在Windows 10\11上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,开发人员可以在 Windows 计算机上同时访问 Windows 和…

基于SpringBoot的商城管理系统(源码+部署教程)

运行环境 数据库:MySql 编译器:Intellij IDEA 前端运行环境:node.js v12.13.0 JAVA版本:JDK 1.8 主要功能 基于Springboot的商城管理系统包含管理端和用户端两个部分,主要功能有: 管理端 首页商品列…

HeidiSQL:一款免费的数据库管理工具

HeidiSQL 是一款免费的图形化数据库管理工具,支持 MySQL、MariaDB、Microsoft SQL、PostgreSQL、SQLite、Interbase 以及 Firebird,目前只能在 Windows 平台使用。 HeidiSQL 的核心功能包括: 免费且开源,所有功能都可以直接使用。…

Ae 效果详解:VR 色差

Ae菜单:效果/沉浸式视频/VR 色差 Immersive Video/VR Chromatic Aberrations VR 色差 VR Chromatic Aberrations效果用于模拟镜头色散现象,在 VR 视频中制造 RGB 通道错位的色彩偏移,以增强视觉风格或创造数字失真效果。 本效果适用于所有色深…

计算机毕业设计SpringBoot+Vue.js制造装备物联及生产管理ERP系统(源码+文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

【Linux内核系列】:深入解析输出以及输入重定向

🔥 本文专栏:Linux 🌸作者主页:努力努力再努力wz ★★★ 本文前置知识: 文件系统以及文件系统调用接口 用c语言简单实现一个shell外壳程序 内容回顾 那么在此前的学习中,我们对于Linux的文件系统已经有了…

PyTorch系列教程:Tensor.view() 方法详解

这篇简明扼要的文章是关于PyTorch中的tensor.view()方法的介绍与应用,与reshape()方法的区别,同时给出示例进行详细解释。 Tensor基础 Tensor(张量)的视图是一个新的Tensor,它与原始Tensor共享相同的底层数据,但具有不同的形状或…

软件测试的基础入门(二)

文章目录 一、软件(开发)的生命周期什么是生命周期软件(开发)的生命周期需求分析计划设计编码测试运行维护 二、常见的开发模型瀑布模型流程优点缺点适应的场景 螺旋模型流程优点缺点适应的场景 增量模型和迭代模型流程适应的场景…

地下变电站如何实现安全智能运营-以110kV站为例看环境监测与设备联控

1、地下变电站简介 在经济发达的地区,由于城市中心土地资源紧张、征地拆迁费用昂贵,因此采用地下变电站来解决这些问题不失为一个好的途径和思路。地下变电站一般采用室内全封闭式组合电气设备,220&#x…

windows无界面后台定时任务 (重启自启动,ODBS为例)

一、前言 mdb(Microsoft Database)是Microsoft Access中使用的一种数据存储格式,可以通过ODBC驱动程序进行访问和操作,在Python中也可以安装相应模块打开。 这是我在项目中更新bs数据的一个实践记录,结合windows定时一起记录一下,方便以后照搬~ 二、安装 Python安装库…

FPGA 实验报告:四位全加器与三八译码器仿真实现

目录 安装Quartus软件 四位全加器 全加器、半加器 半加器: 全加器: 四位全加器电路图 创建项目 半加器 全加器 四位全加器 代码实现 半加器 全加器 四位全加器 三八译码器 创建项目 代码展示 modelsim仿真波形图 四位全加器 三八译码…