【Kubernetes】Service 的类型有哪些?ClusterIP、NodePort 和 LoadBalancer 的区别?

news2025/3/17 7:29:48
  • 在 Kubernetes 中,Service 是一种抽象的方式,用于将一组 Pod 进行连接并暴露给外部或集群内部访问。
  • 它的主要目的是通过提供稳定的 IP 地址和端口来允许其他服务或客户端与一组 Pod 进行通信。

Service 类型

Kubernetes 中 Service 有四种主要类型,分别是:

  1. ClusterIP (默认类型)
  2. NodePort
  3. LoadBalancer
  4. ExternalName

各种类型的区别

1. ClusterIP
  • 作用:这是默认的 Service 类型,主要用于集群内部的访问。它为 Service 分配一个集群内的 IP 地址。
  • 访问范围:仅限于 Kubernetes 集群内部的其他 Pod 可以访问该 Service,不能从外部直接访问。
  • 适用场景:用于集群内部服务之间的通信,例如微服务架构中的内部通信。
  • 示例
    kind: Service
    apiVersion: v1
    metadata:
      name: my-service
    spec:
      type: ClusterIP
      selector:
        app: my-app
      ports:
        - port: 80
          targetPort: 8080
    
2. NodePort
  • 作用:通过为每个 Node 分配一个端口号(NodePort)来暴露 Service,从而可以通过集群中任意 Node 的 IP 和指定端口访问 Service。
  • 访问范围:可以从集群外部通过 <NodeIP>:<NodePort> 的方式访问服务。通常会与 ClusterIP 配合使用,前者处理集群内部流量,后者则暴露端口给外部。
  • 适用场景:适用于需要从外部访问 Kubernetes 集群内服务的场景,比如开发测试环境。
  • 示例
    kind: Service
    apiVersion: v1
    metadata:
      name: my-service
    spec:
      type: NodePort
      selector:
        app: my-app
      ports:
        - port: 80
          targetPort: 8080
          nodePort: 30007  # 端口号通常在 30000-32767 之间
    
3. LoadBalancer
  • 作用:为 Service 提供一个外部负载均衡器(例如 AWS ELB、GCP Load Balancer 等)。当使用 LoadBalancer 类型时,Kubernetes 会自动请求云服务提供商来创建一个负载均衡器并将流量转发到集群中的 Service
  • 访问范围:可以通过外部负载均衡器的 IP 地址或域名访问集群中的 Service。
  • 适用场景:适用于需要高可用、可伸缩、并且从外部可以访问的服务,如生产环境中的 Web 应用。
  • 示例
    kind: Service
    apiVersion: v1
    metadata:
      name: my-service
    spec:
      type: LoadBalancer
      selector:
        app: my-app
      ports:
        - port: 80
          targetPort: 8080
    
4. ExternalName
  • 作用:通过一个 CNAME 记录,将 Service 映射到外部的 DNS 名称。这意味着该 Service 不会指向集群内的 Pod,而是指向外部的某个 DNS 记录。
  • 访问范围:用于从 Kubernetes 集群内部访问外部服务。
  • 适用场景:适用于需要将外部服务映射到集群内部的场景,例如访问外部的数据库或 API 服务。
  • 示例
    kind: Service
    apiVersion: v1
    metadata:
      name: my-service
    spec:
      type: ExternalName
      externalName: example.com  # 外部 DNS 名称
    

总结:ClusterIP、NodePort 和 LoadBalancer 的区别

类型访问范围适用场景是否支持外部访问使用场景例子
ClusterIP集群内部访问集群内服务间的通信微服务之间的内部通信
NodePort集群内外访问,外部通过 Node IP 和端口访问需要从集群外部访问服务测试环境或开发环境中访问服务
LoadBalancer集群内外访问,提供外部负载均衡器从外部访问服务,需要高可用、负载均衡生产环境中需要外部访问的 Web 应用
ExternalName外部 DNS 名称映射将外部服务映射为 Kubernetes 内部服务访问外部的数据库或 API 服务

小结

  • ClusterIP:只限内部访问,适合内部服务通信。
  • NodePort:允许外部通过指定端口访问集群,适合开发测试环境。
  • LoadBalancer:提供外部负载均衡器,适合生产环境。
  • ExternalName:通过外部 DNS 名称访问服务,适合连接外部资源。

https://github.com/0voice

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

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

相关文章

三格电子Modbus TCP转CANOpen网关相关问答

型号&#xff1a;SG-TCP-COE-210 Q1: Modbus TCP转CANOpen网关的主要功能是什么&#xff1f; A1: 该网关的核心功能是实现 Modbus TCP协议与CANOpen协议之间的双向数据转换&#xff0c;使支持Modbus TCP的工业设备&#xff08;如PLC、HMI&#xff09;能够与基于CANOpen协议的设…

Flutter FloatingActionButton 从核心用法到高级定制

目录 1. 引言 2. FloatingActionButton 的基本用法 3. 主要属性 4. 进阶定制技巧 4.1 扩展型 FAB 4.2 动态变形动画 4.3 多个 FAB 协同 5. 主题与动效集成 5.1 全局主题配置 5.2 平台适配方案 5.3 高级动画控制器 6. 最佳实践 6.1 布局规范 6.2 性能优化 6.3 无…

【恒流源cc与恒压源cv典型电路解析】

在电子电路设计中&#xff0c;恒流源和恒压源是两种至关重要的电源类型&#xff0c;它们分别能为负载提供稳定的电流和电压。以下将详细解析这两种电源的典型电路。 ## 一、恒压源 ### &#xff08;一&#xff09;采用线性稳压器的恒压源电路 1. **电路组成** - 以常见的 78…

Anaconda conda常用命令:从入门到精通

1 创建虚拟环境 conda create -n env_name python3.8 2 创建虚拟环境的同时安装必要的包 conda create -n env_name numpy matplotlib python3.8 3 查看有哪些虚拟环境 以下三条命令都可以。注意最后一个是”--”&#xff0c;而不是“-”. conda env list conda info -e c…

Topo2Seq:突破DETR局限,车道拓扑推理新高度

本篇针对先前DETR类框架远距离感知较弱且车道端点不对齐问题&#xff0c;提出了一种通过拓扑序列学习来增强拓扑推理的新方法Topo2Seq。在OpenLane-V2数据集上的实验结果表明&#xff0c;Topo2Seq在拓扑推理方面实现了最先进的性能。 ©️【深蓝AI】编译 论文标题&#xf…

程序地址空间:深度解析其结构,原理与在计算机系统中的应用价值

目录 1. 程序地址空间回顾 1.1 虚拟地址 2.进程地址空间 分页&虚拟地址空间 引入新概念 解释上述关于同样的地址不同的变量值问题 回答一个历史遗留问题 ​编辑 3.虚拟内存管理 虚拟内存是什么 虚拟地址空间区域划分 为什么要有虚拟地址空间 1. 程序地址空间回…

火语言RPA--列表项内容设置

【组件功能】&#xff1a;设置列表项内容 配置预览 配置说明 索引项位置支持T或# 列表对象待修改内容的索引位置。 内容值 支持T或# 默认FLOW输入项 修改的内容值。 示例 对象修改 描述 列表对象索引为0的数据修改为A字符串&#xff0c;并打印修改结果。 配置 输出结…

1.Qt SDK 的下载和安装

1Qt 下载官⽹&#xff1a; http://download.qt.io/archive/qt/ 2版本自行选择 3下载对应版本的.exe文件 4下载包下载完成 5双击.exe文件&#xff0c;默认下一步&#xff0c;要注册一个qt的账户 6记住程序安装的位置&#xff0c;后面要配置环境变量 7勾3个&#xff08;组件自行…

嵌入式系统中的Board Support Package (BSP)详解:以Xilinx Zynq为例

嵌入式系统中的Board Support Package (BSP)详解&#xff1a;以Xilinx Zynq为例 引言 在嵌入式系统开发中&#xff0c;硬件与软件的无缝集成至关重要。Board Support Package (BSP) 作为连接硬件和操作系统的桥梁&#xff0c;在这一过程中扮演着核心角色。本文将深入探讨BSP的…

Vue 生命周期详解:从创建到销毁的全过程

Vue.js 是一个流行的前端框架&#xff0c;它通过组件化的方式帮助开发者构建用户界面。在 Vue 中&#xff0c;每个组件实例都有其生命周期&#xff0c;从创建、挂载、更新到销毁&#xff0c;Vue 提供了一系列的生命周期钩子函数&#xff0c;允许我们在组件的不同阶段执行自定义…

计算机基础:二进制基础12,十进制数转换为十六进制

专栏导航 本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏&#xff0c;故划分为两个专栏导航。读者可以自行选择前往哪个专栏。 &#xff08;一&#xff09;WIn32 专栏导航 上一篇&#xff1a;计算机基础&#xff1a;二进制基础11&#xff0c;十六进制的位基…

SpringCloud系列教程(十四):Sentinel持久化

Sentinel之前已经搭建和应用成功了&#xff0c;但是它有一个很大的缺点就是官方没有提供持久化的方案&#xff0c;从项目源码上看感觉这款工具也没有完成的太好&#xff0c;所以需要我们去对它进行二次开发。要补充的功能大概如下&#xff1a; 1、将Sentinel接入nacos中&#…

Slider,InputField,Scroll View,Scrollbar及Layout组件

Slider组件 Fill Rect:填充滑动条选中区域的背景图部分 Handle Rect:滑动条的球 Direction:滑动条的滑动方向 Min Value:起始位置的数值&#xff08;浮点数&#xff09; Max Value:结束位置的数值&#xff08;浮点数&#xff09; Whole Numbers:必须为整数&#xff08;布尔…

ollama注册自定义模型(GGUF格式)

文章目录 ollama注册自定义模型&#xff08;GGUF格式&#xff09;下载模型注册模型(GGUF格式) ollama注册自定义模型&#xff08;GGUF格式&#xff09; 需要全程开启ollama nohup ollama serve > ollama.log 2>&1 &需要注意&#xff0c;尽管手动下载的GGUF格式模…

HarmonyOS NEXT 声明式UI语法学习笔记-创建自定义组件

基础语法概述 ArkTS的基本组成 装饰器&#xff1a;用于装饰类、结构、方法以及变量&#xff0c;并赋予其特殊含义。如上图都是装饰器&#xff0c;Component表示自定义组件&#xff0c;Entry表示表示自定义组件的入口组件&#xff0c;State表示组件中的状态变量&#xff0c;当状…

97.HarmonyOS NEXT跑马灯组件教程:基础概念与架构设计

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; HarmonyOS NEXT跑马灯组件教程&#xff1a;基础概念与架构设计 1. 跑马灯组件概述 跑马灯&#xff08;Marquee&#xff09;是一种常见的UI组件&a…

81.HarmonyOS NEXT 状态管理与响应式编程:@Observed深度解析

温馨提示&#xff1a;本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦&#xff01; HarmonyOS NEXT 状态管理与响应式编程&#xff1a;Observed深度解析 文章目录 HarmonyOS NEXT 状态管理与响应式编程&#xff1a;Observed深度解析…

股指期货有卖不出去的时候吗?

在股指期货的交易世界里&#xff0c;很多人都有这样的疑问&#xff1a;股指期货会不会有卖不出去的时候呢&#xff1f;答案是会的&#xff0c;下面咱们就来详细唠唠为啥会出现这种情况。 市场极端行情下难以卖出 1.跌停限制&#xff1a;股指期货和股票一样&#xff0c;也有涨…

开发、科研、日常办公工具汇总(自用,持续更新)

主要记录汇总一下自己平常会用到的网站工具&#xff0c;方便查阅。 update&#xff1a;2025/2/11&#xff08;开发网站补一下&#xff09; update&#xff1a;2025/2/21&#xff08;补充一些AI工具&#xff0c;刚好在做AI视频相关工作&#xff09; update&#xff1a;2025/3/7&…

HTML5 drag API实现列表拖拽排序

拖拽API&#xff08;Drag and Drop API&#xff09;是HTML5提供的一组功能&#xff0c;使得在网页上实现拖放操作变得更加简单和强大。这个API允许开发者为网页元素添加拖拽功能&#xff0c;用户可以通过鼠标将元素拖动并放置到指定的目标区域。 事件类型 dragstart&#xff1…