【Kubernetes】服务(Service)是什么?有什么用?有哪些类型?
系列文章目录
K8s中的Namespace是什么?
Kubernetes 集群的组件介绍
Kubernetes 对象是什么?
Pod——k8s中最重要的对象之一
Kubernetes 和 Docker 之间有什么区别?
部署安装 K8s 为什么要关闭 swap 分区?
k8s中容器之间、pod之间如何进行网络通信?
从不同的角度理解静态Pod和动态/普通Pod的区别
本篇目录
- 系列文章目录
- 什么是Service?
- 为什么要有Service?
- Service类型有哪些?
- 如何定义 Service?
什么是Service?
Kubernetes 中的 Service 是一组Pod集合的抽象,能够将Pod 集合在网络上公开出去。我们可以使用 Service 让一组 Pod 可在网络上访问,这样客户端就能与之交互。在这种情况下,在集群内外部访问Pod时并不是直接接触Pod,而是通过Service。Service也是K8s里的资源对象。在创建的时候要定义端点集合(所谓端点集合就是Pod集合,也就是这个Service代表了哪些Pod),并且还要定义策略来决定如何访问到这些Pod。
为什么要有Service?
Pod是动态的,是临时资源,它不可靠也不耐用。每个Pod都有自己的IP地址,哪怕一个Pod“重启”了,它的IP也会发生变化。所以我们不希望前端客户端直接和每个Pod单独通讯,这样的通讯是不可靠的。
所以就提出了Service抽象。Service对象创建后,Kubernetes会为它分配一个IP地址,这个IP地址比较持久,不会轻易改变,前端只需要知道这个Service的IP地址就可以了,然后Service会将传过来的流量转发到它代表的Pod集合中的一个或一些Pod上去。
Service类型有哪些?
-
ClusterIP
Service的默认类型就是ClusterIP。也就是通过集群的内部 IP 公开 Service,选择该值时 Service 只能够在集群内部访问。
-
NodePort
这种类型是通过 每个节点上的IP和特定的静态端口(NodePort) 来公开Service。也就是说每个节点会将这个端口(每个节点上的相同端口号)上的流量代理到所创建的 Service。这样通过合适的协议和分配给该Service的端口连接到任何一个节点,我们都能从集群外部访问NodePort类型的Service·。
-
LoadBalancer
在使用支持外部负载均衡器的云平台时,如果将
type
设置为"LoadBalancer"
, 则平台会为 Service 提供负载均衡器 -
ExternalName
类型为 ExternalName 的 Service 将 Service 映射到 DNS 名称,而不是典型的选择算符。
如何定义 Service?
Service是Kubernetes中的一个对象,可以使用 Kubernetes API 创建、查看或修改 Service 定义。
例如,假定有一组 Pod,每个 Pod 都在侦听 TCP 端口 9376,并且它们还被打上 app.kubernetes.io/name=MyApp
标签。我们就可以定义一个 Service 来发布该 TCP 侦听器:
apiVersion: v1
kind: Service
metadata:name: my-service
spec:selector:app.kubernetes.io/name: MyAppports:- protocol: TCPport: 80targetPort: 9376
应用上述清单时,系统将创建一个名为 “my-service” 的、 服务类型默认为 ClusterIP 的 Service。 该 Service 指向带有标签 app.kubernetes.io/name: MyApp
的所有 Pod 的 TCP 端口 9376。
需要解释的是,清单里的port指的是暴露给客户端的端口,外部的流量从port端口经过kube-proxy流入到后端pod的targetPort上,最后进入容器。
相关文章:
【Kubernetes】服务(Service)是什么?有什么用?有哪些类型?
系列文章目录 K8s中的Namespace是什么? Kubernetes 集群的组件介绍 Kubernetes 对象是什么? Pod——k8s中最重要的对象之一 Kubernetes 和 Docker 之间有什么区别? 部署安装 K8s 为什么要关闭 swap 分区? k8s中容器之间、pod之间…...

【前端素材】推荐优质后台管理系统DAdmin平台模板(附源码)
一、需求分析 1、系统定义 后台管理系统是一种用于管理网站、应用程序或系统的管理界面,通常由管理员和工作人员使用。它提供了访问和控制网站或应用程序后台功能的工具和界面,使其能够管理用户、内容、数据和其他各种功能。 2、功能需求 后台管理系…...
Redis高级特性详解:事务处理、发布订阅、持久化和集群
Redis(Remote Dictionary Server)是一个开源的基于内存的数据结构存储系统,被广泛应用于缓存、队列、计数器等场景中。除了基本的键值存储功能外,Redis还提供了许多高级特性,包括事务处理、发布订阅、持久化和集群。在…...
nwjs做自动化测试
分别是2个常用的自动化测试化框架 GitHub - nwutils/nw-selenium-javascript-example: An example of end-to-end testing with Selenium for NW.js apps via JavaScript GitHub - nwutils/nw-puppeteer-example: An example of using NW.js via Puppeteer. 看习惯使用哪个&…...

【前端素材】推荐优质在线特殊品牌商城电商网页eStore平台模板(附源码)
一、需求分析 1、系统定义 在线特殊品牌商城是指一个通过互联网提供特定品牌或特殊类型商品购买服务的电子商务平台。这类商城专注于某个特定品牌、设计风格或商品类型,为顾客提供独特、专业的购物体验。 2、功能需求 在线特殊品牌商城是指一个通过互联网提供特…...

Redis之一: 简介及环境安装搭建
什么是NoSQL? NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。 NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据…...

关于电脑一天24小时多少度电电脑的一天用电量计算
随着这几年物价的上涨,一些地区的电价越来越高,而我们经常需要使用电脑,那么一台电脑一天24小时用多少度电呢? 如何计算电脑一天的用电量? 让我们跟随小编来了解更多吧。 1、功耗、主机箱功耗 现在的计算机中…...
Unity3D 物理引擎的基本配置详解
前言 在Unity3D中,物理引擎主要由两部分组成:碰撞检测和物理模拟。在本文中,我们将详细介绍Unity3D物理引擎的基本配置,并给出相应的技术详解和代码实现。 对惹,这里有一个游戏开发交流小组,希望大家可以…...

CSS:弹性盒子Flexible Box布局
CSS:Flexible Box弹性盒子布局 一、flex布局原理 flex是flexible Box的缩写,意为 ”弹性布局“,用来为盒状模型提供最大的灵活性,任何一个容器都可以指定为flex布局。 当我们的父盒子设置为flex布局之后,子元素的 float 、clear 和 vert…...

java常用环境docker安装
配置目录 rocketmqredismysql不配置binlog配置binlog Nacoszookeeper 本文为精简安装,部分不带容器卷映射,仅供以学习使用。 rocketmq nameservice sudo docker run -d \ --privilegedtrue \ --name rmqnamesrv \ -p 9876:9876 \ -e "MAX_HEAP_SI…...

Code-Audit(代码审计)习题记录6-7
介绍: 自己懒得搭建靶场了,靶场地址是 GitHub - CHYbeta/Code-Audit-Challenges: Code-Audit-Challenges为了方便在公网练习,可以随地访问,本文所有的题目均来源于网站HSCSEC-Code Audit 6、习题6 题目内容如下: 源代…...
go 的使用总结
go的内存逃逸? go语言在编辑阶段通过逃逸分析把分配在栈上变量 分配到堆上去。 栈内存: 一段连续的内存,便于高效运行指令过程中的临时变量存储。 堆内存: 主要由垃圾回收器 回收没有被引用的指针。 逃逸分析:栈内…...

无线水电表智能化管理系统
无线水电表智能化管理系统是一项利用先进技术对水电用量进行实时监测和精细管理的创新系统。这一系统通过应用无线通讯技术,实现了水电表数据的远程传输和集中管理,为用户提供了便捷、精准的用能监测和管理服务。 无线水电表智能化管理系统的首要优势在于…...

发掘效率黑科技:Allure报告助您事半功倍提升测试效能!
Allure 简介与安装 Allure 是由 Java 语⾔开发的⼀个轻量级,灵活的测试报告⼯具。 Allure 多平台的 Report 框架。 Allure ⽀持多语⾔,包括 python、JaveScript、PHP、Ruby 等。 可以为开发/测试/管理等人员提供详尽的的测试报告,包括测试…...

Spring Web 过滤器使用常见错误(上)
我们都知道,过滤器是 Servlet 的重要标准之一,其在请求和响应的统一处理、访问日志记录、请求权限审核等方面都有着不可替代的作用。在 Spring 编程中,我们主要就是配合使用ServletComponentScan 和 WebFilter 这两个注解来构建过滤器。 说起…...

【数据结构】周末作业
1.new(struct list_head*)malloc(sizeof(struct list_head*)); if(newNULL) { printf("失败\n"); return; } new->nextprev->next; prev->nextnew; return; 2.struct list_head* pprev->next; prev->nextp->next; p->next->prevpr…...

java 企业培训管理系统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目
一、源码特点 java 企业培训管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0&…...

在SAP HANA中使用OData(二)
通常有两种方式通过OData来暴露SAP HANA中的数据库对象,一是直接使用Database Object,比如前一篇和本篇文章介绍的例子,这种方式针对于数据已经存在于SAP HANA中,在Repository中没有对应的设计时对象(Design-time Object)…...
【Docker】前端基于dockerfiel构建镜像部署,实现在容器启动时传递环境变量, 请求不同服务地址
前端部署采用 docker 的方式, 实现在容器启动时传递环境变量, 请求不同服务地址 实现思路: 定义.env.xxx 文件(环境变量赋值),在compose.yml中引入.env.xxx 文件,环境变量通过nginx的sub_filte…...
评估测试接口软件与网站的使用方法及优劣势比较
评估测试接口软件与网站的使用方法及优劣势比较 导言 在软件开发和测试过程中,对接口进行测试是至关重要的一步。测试接口的软件和网站提供了各种工具和方法,以便开发人员和测试人员能够有效地测试他们的应用程序接口。本文将探讨几种常见的测试接口软…...

UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...

【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...