当前位置: 首页 > news >正文

K8S接口请求过程

K8S接口请求过程

      • 1. 宿主机IP (Host IP)
      • 2. Service IP
      • 3. NodePort
      • 4. Pod端口 (Pod Port)
      • 5. 容器端口 (Container Port)
      • 6. 应用端口 (Application Port)
      • 例子:外部流量如何进入应用
      • 配置
      • 流量路径表
      • 详细说明
      • 补充说明--连通性测试:

在Kubernetes(k8s)中,网络模型和端口配置是确保应用能够正确接收和处理外部流量的关键。下面我将详细解释宿主机IP、Service IP、容器IP、NodePort、Pod端口、容器端口和应用端口的作用和关系,并通过一个例子来说明外部流量如何进入应用。

1. 宿主机IP (Host IP)

  • 作用: 宿主机IP是运行Kubernetes节点的物理或虚拟机的IP地址。
  • 关系: 宿主机IP是Kubernetes集群中每个节点的唯一标识,用于节点之间的通信。

2. Service IP

  • 作用: Service IP是Kubernetes Service的虚拟IP地址,用于在集群内部访问Service。
  • 关系: Service IP是集群内部的逻辑地址,通过它可以访问到后端的Pod。Service IP由Kubernetes的Service资源管理,通常是一个集群内部的虚拟IP。

3. NodePort

  • 作用: NodePort是Kubernetes Service的一种类型,它在每个节点的IP地址上开放一个端口,通过这个端口可以访问Service。
  • 关系: NodePort将Service暴露在每个节点的IP地址上,使得外部流量可以通过节点的IP地址和NodePort访问到Service。

4. Pod端口 (Pod Port)

  • 作用: Pod端口是Pod中容器监听的端口。
  • 关系: Pod端口是容器内部的应用程序监听的端口,通过这个端口可以访问到容器中的应用。

5. 容器端口 (Container Port)

  • 作用: 容器端口是容器内部应用程序监听的端口。
  • 关系: 容器端口是应用程序在容器内部监听的端口,通过这个端口可以访问到应用程序。

6. 应用端口 (Application Port)

  • 作用: 应用端口是应用程序实际监听的端口。
  • 关系: 应用端口是应用程序在容器内部监听的端口,通过这个端口可以访问到应用程序。

例子:外部流量如何进入应用

当然,可以通过图表来更直观地展示从域名请求到应用响应的整个过程。假设我们有一个Web应用,运行在Kubernetes集群中,使用NodePort类型的Service来暴露应用。以下是具体的配置和流量路径:

配置

  • 域名: example.com
  • 外部负载均衡器: 192.168.1.1
  • 节点1: 192.168.1.100
  • 节点2: 192.168.1.101
  • Service IP: 10.96.0.1
  • NodePort: 30001
  • Pod1 IP: 10.244.1.2
  • Pod2 IP: 10.244.1.3
  • 容器端口: 8080
  • 应用端口: 8080

流量路径表

步骤源地址源端口目标地址目标端口说明
1客户端任意192.168.1.180客户端通过域名 example.com 发送请求到外部负载均衡器
2192.168.1.180192.168.1.10030001外部负载均衡器将请求转发到节点1的NodePort 30001
3192.168.1.1003000110.96.0.18080节点1上的iptables规则将请求转发到Service的虚拟IP 10.96.0.1的8080端口
410.96.0.1808010.244.1.28080Service将请求负载均衡到后端的Pod1,Pod1的IP地址是10.244.1.2
510.244.1.28080客户端任意Pod1中的容器监听8080端口,处理请求并返回响应

详细说明

  1. 外部客户端:

    • 客户端通过域名 example.com 发送HTTP请求。
    • 域名解析到外部负载均衡器的IP地址 192.168.1.1
  2. 外部负载均衡器:

    • 外部负载均衡器将请求转发到Kubernetes集群中的一个节点,假设是节点1 192.168.1.100
    • 转发到节点1的NodePort 30001
  3. 节点1:

    • 节点1上的iptables规则将请求转发到Service的虚拟IP

补充说明–连通性测试:

外部网络URL访问:集群节点IP + node port,可用 kubectl get nodes 命令查看j节点IP列表中;
节点网络URL访问:svc name + svc port / svc target ip + svc target port

相关文章:

  • 【CI/CD】Ansible知识库
  • # 使用自定义Shell脚本hello快速配置Linux用户账户
  • 【408--复习笔记】数据结构
  • 第十三届蓝桥杯单片机省赛程序设计试题
  • linux/android 如何获取当前系统启动时长
  • Vue学习笔记集--导航篇
  • 精华贴分享|从不同的交易理论来理解头肩形态,殊途同归
  • WPF的MVVM的基础知识
  • 推荐一个可以自定义github主页的网站
  • 深度剖析 Spring 源码 性能优化:核心原理与最佳实践
  • uniapp 在app上 字体如何不跟着系统字体大小变
  • deepseek(2)——deepseek 关键技术
  • OpenEuler linux samba部分目录无法访问的问题
  • 使用 Spring Boot 3.2 集成 MinIO 8.5:实现高效对象存储
  • 爬虫豆瓣电影
  • 大模型开发框架LangChain GO
  • 基于Kubernetes部署Prometheus监控平台
  • 探索PyMOL新插件NRGSuite-Qt:全面提升分子对接、结合位点预测与动力学模拟的研究效率
  • spring batch 中JpaNamedQueryProvider、JpaNativeQueryProvider两种查询方式对比
  • Graphpad Prism for Mac医学绘图
  • 逛了6个小时的上海车展。有些不太成熟的感受。与你分享。
  • 当初没有珍惜巴特勒的热火,被横扫出局后才追悔莫及
  • 商务部:一季度我国服务贸易较快增长,进出口总额同比增8.7%
  • 江苏银行一季度净赚近98亿增逾8%,不良贷款率微降
  • 当AI开始深度思考,人类如何守住自己的慢思考能力?
  • 见证上海援藏30年成果,萨迦非遗珍品展来沪