【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上,最后进入容器

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

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

相关文章

ZABBIX修改web界面的 “支持“,“帮助”,“Integrations“。等菜单按钮,百试百灵,删除修改Help,Support菜单

♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥ **ZABBIX修改web界面的 “支持”,“帮助”,“Integrations”。等菜单按钮&#xff0c…

基于 Transformer 的中文对联生成器

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心&…

javaWeb学习04

AOP核心概念: 连接点: JoinPoint, 可以被AOP控制的方法 通知: Advice 指哪些重复的逻辑,也就是共性功能(最终体现为一个方法) 切入点: PointCut, 匹配连接点的条件,通知仅会在切入点方法执行时被应用 目标对象: Target, 通知所应用的对象 通知类…

模糊PID控制算法实战讲解-案例温度控制(附C语言实现)

可结合之前的文章一起理解: 控制算法-PID算法总结-从公式原理到参数整定解析(附C源码)_pid自整定算法-CSDN博客 模糊控制算法实战讲解-案例温度控制(附C语言实现)-CSDN博客 目录 一、模糊PID控制的原理 1.1 模糊化…

边读 Emacs Lisp Intro 边做题(五)

文章目录 边读Emacs Lisp Intro边做题(五) 边读Emacs Lisp Intro边做题(五) 打开emacs,按C-h i打开Info页,找到Emacs Lisp Intro。 这里的\\b\\([^ \n\t]\\)[ \n\t]\\1\\b抄自题目描述中提供的链接&#…

Decision Transformer

DT个人理解 emmm, 这里的Transformer 就和最近接触到的whisper一样,比起传统Transformer,自己还设计了针对特殊情况的tokens。比如whisper里对SOT,起始时间,语言种类等都指定了特殊tokens去做Decoder的输入和输出。 DT这里的作为输入的Tokens由RL里喜闻乐见的历史数据:…

Java优先级队列--堆

目录 1. 优先级队列 1.1 概念 2.优先级队列的模拟实现 2.1 堆的概念 2.2 堆的存储方式 2.3 堆的创建 2.3.1 堆向下调整 2.3.2 堆的创建 2.3.3 建堆的时间复杂度 2.4 堆的插入与删除 2.4.1 堆的插入 2.4.2 堆的删除 2.5 用堆模拟实现优先级队列 3.常用接口介绍 3…

Eigen-Block块操作

Block块操作 一、使用块操作二、列和行三、Corner-related操作四、向量的块运算 块是矩阵或数组的矩形部分。块表达式既可以用作右值,也可以用作左值。与通常的Eigen表达式一样,只要让编译器进行优化,这种抽象的运行时成本为零。优化都是自动…

什么是VR紧急情况模拟|消防应急虚拟展馆|VR游戏体验馆加盟

VR紧急情况模拟是利用虚拟现实(Virtual Reality,简称VR)技术来模拟各种紧急情况和应急场景的训练和演练。通过VR技术,用户可以身临其境地体验各种紧急情况,如火灾、地震、交通事故等,以及应对这些紧急情况的…

贪心算法(算法竞赛、蓝桥杯)--修理牛棚

1、B站视频链接&#xff1a;A27 贪心算法 P1209 [USACO1.3] 修理牛棚_哔哩哔哩_bilibili 题目链接&#xff1a;[USACO1.3] 修理牛棚 Barn Repair - 洛谷 #include <bits/stdc.h> using namespace std; const int N205; int m,s,c,ans; int a[N];//牛的位置标号 int d[N…

奇怪的需求之与图片做交互

1.起因 客户想要展示自己的地图,该地图上有各种工作数据,和工作点位,已有的地图不能满足需求.于是提出将这张图片当成大背景 2.经过 鉴于文件格式和尺寸的原因,协商后客户提出将图片做成缩放效果,同时具有点击效果,原先直接进入的主页,现在为点击图片中的某条线路进入主页面…

Ubuntu tesseract使用全是干货

文字检测 方案 利用opencv二值化处理。最后检测使用google的开源库libtesseract识别文字。 tesseract安装 apt install libtesseract-dev # 前面那个是英文&#xff0c;后面那个是中文 apt install tesseract-oct tesseract-ocr-chi-sim手册 手册 qt creator中使用 pro文…

[LeetCode]143.重排链表

143. 重排链表 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/reorder-list/description/ 题目 示例 解题思路 寻找链表中点 链表逆序 合并链表 注意到目标链表即为将原链表的左半端和反转后的右半端合并后的结果。 这样我们的任务即可划分为三步&a…

Redis 8种基本数据类型及常用命令和数据类型的应用场景

小伙伴们好&#xff0c;欢迎关注&#xff0c;一起学习&#xff0c;无限进步 文章内容为学习的一些笔记及工作中遇到的一些问题 文章目录 Redis 五大数据类型keyStringListSetHashSorted Set 三种特殊类型Geospatial 地理位置HyperloglogBitmap Redis 五大数据类型 redis 官方网…

Python中的os库

一.OS库简介 OS是Operating System的简写&#xff0c;即操作系统。 OS库是一个操作系统接口模块&#xff0c;提供一些方便使用操作系统相关功能的函数。 二.OS库常用函数 2.1文件和目录 2.1.1&#xff1a;os.getcwd() 作用&#xff1a;返回当前工作目录&#xff0c;结果是…

Python中re(正则)模块的使用

re 是 Python 标准库中的一个模块&#xff0c;用于支持正则表达式操作。通过 re 模块&#xff0c;可以使用各种正则表达式来搜索、匹配和操作字符串数据。 使用 re 模块可以帮助在处理字符串时进行高效的搜索和替换操作&#xff0c;特别适用于需要处理文本数据的情况。 # 导入…

怎样把python字符串中的emoji表情包去掉或忽略?

要从Python字符串中去掉或忽略表情符号&#xff0c;可以使用正则表达式来过滤掉所有的Unicode码点大于\uFFFF的字符。这些字符通常是表情符号。 以下是一个示例代码&#xff1a; import redef remove_emojis(text):emoji_pattern re.compile("["u"\U0001F600…

如何在Window系统部署BUG管理软件并结合内网穿透实现远程管理本地BUG

文章目录 前言1. 本地安装配置BUG管理系统2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射本地服务3. 测试公网远程访问4. 配置固定二级子域名4.1 保留一个二级子域名5.1 配置二级子域名6. 使用固定二级子域名远程 前言 BUG管理软件,作为软件测试工程师的必备工具之一。在…

微信小程序开启横屏调试

我们先打开小程序项目 开启真机运行 目前是一个竖屏的 然后打开全局配置文件 app.json 给下面的 window 对象 下面加一个 pageOrientation 属性 值为 landscape 运行结果如下 然后 我们开启真机运行 此时 就变成了个横屏的效果

Android、ios 打包一键生成自定义尺寸应用图标

这里以uniapp 打包为例 这里是打包时分别需要使用的尺寸 打开一键生成应用图标 在线工具 一键生成应用图标https://icon.wuruihong.com/ 上传你的应用图标 上传后在这里添加你需要用到的尺寸 开始生成 下载你批量生成的图标