【K3s】第7篇 详解Kubernetes发布服务类型(例如:暴露给 Kubernetes 集群外部的 IP 地址)

news2025/1/16 0:14:59

目录

1、发布服务类型

2、NodePort 类型

选择你自己的端口

 为 type: NodePort 服务自定义 IP 地址配置


1、发布服务类型

对一些应用的某些部分(如前端),可能希望将其暴露给 Kubernetes 集群外部的 IP 地址。

Kubernetes ServiceTypes 允许指定你所需要的 Service 类型。

Type 的取值以及行为如下:

ClusterIP:通过集群的内部 IP 暴露服务,选择该值时服务只能够在集群内部访问。 这也是你没有为服务显式指定 type 时使用的默认值。

NodePort:通过每个节点上的 IP 和静态端口(NodePort)暴露服务。 为了让节点端口可用,Kubernetes 设置了集群 IP 地址,这等同于你请求 type: ClusterIP 的服务。

LoadBalancer:使用云提供商的负载均衡器向外部暴露服务。 外部负载均衡器可以将流量路由到自动创建的 NodePort 服务和 ClusterIP 服务上。

ExternalName:通过返回 CNAME 记录和对应值,可以将服务映射到 externalName 字段的内容(例如,foo.bar.example.com)。 无需创建任何类型代理。

type 字段被设计为嵌套功能 - 每个级别都添加到前一个级别。 这并不是所有云提供商都严格要求的(例如:Google Compute Engine 不需要分配节点端口来使 type: LoadBalancer 工作,但另一个云提供商集成可能会这样做)。 虽然不需要严格的嵌套,但是 Service 的 Kubernetes API 设计无论如何都需要它。

你也可以使用 Ingress 来暴露自己的服务。 Ingress 不是一种服务类型,但它充当集群的入口点。 它可以将路由规则整合到一个资源中,因为它可以在同一 IP 地址下公开多个服务

2、NodePort 类型

如果你将 type 字段设置为 NodePort,则 Kubernetes 控制平面将在 --service-node-port-range 标志指定的范围内分配端口(默认值:30000-32767)。 每个节点将那个端口(每个节点上的相同端口号)代理到你的服务中。 你的服务在其 .spec.ports[*].nodePort 字段中报告已分配的端口。

使用 NodePort 可以让你自由设置自己的负载均衡解决方案, 配置 Kubernetes 不完全支持的环境, 甚至直接暴露一个或多个节点的 IP 地址。

对于 NodePort 服务,Kubernetes 额外分配一个端口(TCP、UDP 或 SCTP 以匹配服务的协议)。 集群中的每个节点都将自己配置为监听分配的端口并将流量转发到与该服务关联的某个就绪端点。 通过使用适当的协议(例如 TCP)和适当的端口(分配给该服务)连接到所有节点, 你将能够从集群外部使用 type: NodePort 服务。

选择你自己的端口

如果需要特定的端口号,你可以在 nodePort 字段中指定一个值。

控制平面将为你分配该端口或报告 API 事务失败。

这意味着你需要自己注意可能发生的端口冲突。

你还必须使用有效的端口号,该端口号在配置用于 NodePort 的范围内。

以下是 type: NodePort 服务的一个示例清单,它指定了一个 NodePort 值(在本例中为 30007)。

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  type: NodePort
  selector:
    app.kubernetes.io/name: MyApp
  ports:
      # 默认情况下,为了方便起见,`targetPort` 被设置为与 `port` 字段相同的值。
    - port: 80
      targetPort: 80
      # 可选字段
      # 默认情况下,为了方便起见,Kubernetes 控制平面会从某个范围内分配一个端口号(默认:30000-32767)
      nodePort: 30007

 为 type: NodePort 服务自定义 IP 地址配置

你可以在集群中设置节点以使用特定 IP 地址来提供 NodePort 服务。 如果每个节点都连接到多个网络(例如:一个网络用于应用程序流量,另一个网络用于节点和控制平面之间的流量), 你可能需要执行此操作。

如果你要指定特定的 IP 地址来代理端口,可以将 kube-proxy 的 --nodeport-addresses 标志或 kube-proxy 配置文件的等效 nodePortAddresses 字段设置为特定的 IP 段。

此标志采用逗号分隔的 IP 段列表(例如 10.0.0.0/8192.0.2.0/25)来指定 kube-proxy 应视为该节点本地的 IP 地址范围。

例如,如果你使用 --nodeport-addresses=127.0.0.0/8 标志启动 kube-proxy, 则 kube-proxy 仅选择 NodePort 服务的环回接口。 --nodeport-addresses 的默认值是一个空列表。 这意味着 kube-proxy 应考虑 NodePort 的所有可用网络接口。

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

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

相关文章

Vue二次封装组件并发布到npm仓库

1.认识npm NPM的全称是Node Package Manager,是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。 使用Vue框架进行开发,组件封装是一个很常规的操作。一个封装好的组件可以在项目的任意地方使…

FFmpeg简单使用:解封装h264 ---- 提取SPS PPS

前言 我们从flv和mp4等文件解封装读取的AVPacket并没有SPS、PPS数据,而是保存在 AVFormatContext -> streams -> codecpar -> extradata里面,下面我们打开一个flv文件看一下 分析一下这块数据,起始位置:0980 大小&#…

【软件测试】测试点总结,收取短信验证码的测试(详全),你的即用宝典......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 现在的APP&#xff…

技术评审管理方案

技术评审(Technical Review, TR)的目的是尽早地发现工作成果中的缺陷,并帮助开发人员及时消除缺陷,从而有效地提高产品的质量。 技术评审过程域是SPP模型的重要组成部分。本规范阐述了技术评审过程域的三个主要规程: …

基于Java(SSM+SpringBoot+Thymeleaf)+MySQL 开发的论坛社区网站【100010072】

基于 SSM Spring Boot Thymeleaf 开发的论坛社区网站 项目概述 本项目是依据 2019 年牛客项目,基于 SSM Spring Boot Thymeleaf 开发的论坛社区网站,网站实现了如下功能: 使用 Spring Email Interceptor Spring Security 等实现网站…

unity组件介绍

所有物体都是一个空物体,加上一些组件才形成了所需要的GameObject。 这是一个空物体,在Scene场景中没有任何外在表现,因为它只有Transform这个组件,表示它仅仅只有位置,旋转和缩放。 Mesh组件 Mesh Filter mesh filt…

【聆思CSK6 视觉AI开发套件试用】(有彩蛋)AI头肩手势检测

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动,更多开发板试用活动请关注极术社区网站。作者:Tony_c217AK 牛逼的AI套件 如何3分钟体验AI功能(windows系统 ) 插入上图左边的USB(上图中靠近左边的USB接口),给设备上…

锁,CAS,Synchronized 原理

作者:~小明学编程 文章专栏:JavaEE 格言:热爱编程的,终将被编程所厚爱。 目录 常见的锁 悲观锁与乐观锁 悲观锁 乐观锁 读写锁 重量级锁 vs 轻量级锁 挂起等待锁和自旋锁 公平锁和非公平锁 可重入锁与不可重入锁 CAS …

JavaDS4-链表

目录 1.定义 2.结构 2.1.类似火车 2.2.分类 2.2.1.按方向分 2.2.2.按是否带头节点分 2.2.3.按是否循环分 3.重点掌握 3.1.无头单向非循环链表 3.1.1.在链表的头部添加节点 3.1.2.在链表的任意位置index处添加节点 3.1.3.在链表的尾部添加节点 3.1.4.查询链表的任意…

如何使用单总线?

如何使用单总线?一、什么叫单总线?二、单总线协议?三、怎么使用单总线来做开发?IBUTTON 钥匙读取复制设备项目一、什么叫单总线? 1.如下图,使用单总线的传感器DS18B20 2.使用单总线的储物柜钥匙 3.定义&…

元素偏移量 offset、元素可视区 client和元素滚动 scroll

1、元素偏移量 offset 系列 1.1、offset 概述 offset 翻译过来就是偏移量, 我们使用 offset系列相关属性可以动态的得到该元素的位置(偏移)、大小等。 获得元素距离带有定位父元素的位置获得元素自身的大小(宽度高度&#xff09…

【java】static关键字

static可以修饰的内容如下: ● 变量 ● 方法 ● 代码块 ● 内部类 那就有一个问题,为什么static不能修饰外部类? 我们首先看一下static的作用是什么? 先看看其他人怎么解释的: A static method can be accessed with…

RK3588平台开发系列讲解(进程篇)进程的简介

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、进程的四要素二、进程的三种状态三、task_struct数据结构四、进程优先级五、进程系统调用沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍进程的相关知识。 一、进程的四要素 1、有一段程序供其…

Axure 原型适应到不同平台的方法

“老师,公司要求我做一个不同机型的原型,不想重新做,可以适配吗?” “老师,手机有那么多类型,我难道要做那么多的原型吗?” “老师,axure中怎么进行原型的适配呢?应该怎…

云服务器搭建网站(初学)

第一步:来到/var/www/目录下 第二步:在www目录下创建web1文件夹 第三步:来到root目录 第四步:在root目录上传所需要的压缩包 第五步:解压刚刚上传的压缩包到指定的目录(我们刚刚所创建的web1目录&#xff…

HTML5 文件操作

文章目录HTML5 文件操作file元素选择单个文件选择多个文件美化file元素File对象获取文件信息转化单位FileReader对象读取txt文本在线预览图片拖拽文件并读取拖拽图片并预览Blob对象创建并下载txt文件将Canvas下载为一张图片HTML5 文件操作 file元素 语法 <input type&quo…

SpringIOC流程以及Mybatis架构

1、Spring IOC 流程图 ![在这里插入图片描述](https://img-blog.csdnimg.cn/626a8582f4b14ac3983567a85bce1d4d.png IOC 依赖注入整体流程 1、环境初始化 2、Bean工厂初始化 3、读取项目配置 4、定义解析Bean-->BeanDefintion 5、将BeanDefinition存储工厂类的Map 6、通过…

Golang 将视频按照时间维度剪切 | Golang工具

目录 前言 环境依赖 代码 总结 前言 本文提供将视频按照时间维度进行剪切的工具方法&#xff0c;一如既往的实用主义。 主要也是学习一下golang使用ffmpeg工具的方式。 环境依赖 ffmpeg环境安装&#xff0c;可以参考我的另一篇文章&#xff1a;windows ffmpeg安装部署_阿…

2022 IoTDB Summit:IoTDB PMC 乔嘉林《端边云协同:Apache IoTDB 全新单机分布式架构》...

12 月 3 日、4日&#xff0c;2022 Apache IoTDB 物联网生态大会在线上圆满落幕。大会上发布 Apache IoTDB 的分布式 1.0 版本&#xff0c;并分享 Apache IoTDB 实现的数据管理技术与物联网场景实践案例&#xff0c;深入探讨了 Apache IoTDB 与物联网企业如何共建活跃生态&#…

具有循环条件gan的实值(医疗)时间序列生成-2017

REAL-VALUED (MEDICAL) TIME SERIES GENERATION WITH RECURRENT CONDITIONAL GANS ABSTRACT 生成对抗网络(GANs)作为一种训练模型以产生逼真数据的框架已经取得了显著的成功。在这项工作中&#xff0c;我们提出了循环GAN (RGAN)和循环条件GAN (RCGAN)来生成真实的实值多维时间…