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

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


http://www.kler.cn/a/611148.html

相关文章:

  • LInux 网络编程(六)——域名及网络地址
  • 第 6 章:优化动态分配内存的变量_《C++性能优化指南》_notes
  • 001初识多视图几何
  • Tabby 一:如何在Mac配置保姆级教程(本地模型替换hugging face下载)
  • 记一次feign调用400,参数过长导致,修改解决
  • MySQL数据库精研之旅第四期:解锁库操作高阶技能
  • 【v4l2】在Android SDK中交叉编译v4l2-ctl
  • 虚幻基础:UI
  • 2-1 基本放大电路
  • HCI 清除 SCP纳管残留信息
  • 深度解析 BPaaS:架构、原则与研发模式探索
  • 前端显示no data(没有数据,一片空白)
  • 怎么简单设计一个文件上传系统?
  • 基于 ffmpeg 实现合并视频
  • 【算法】常见排序算法(插入排序、选择排序、交换排序和归并排序)
  • @JSONField(serialize = false)序列化过程中排除特定字段
  • 文件操作 说明
  • 生成模型速通(Diffusion,VAE,GAN)
  • 基于Spring Boot的供应商管理系统的设计与实现(LW+源码+讲解)
  • LangChain开发(七)自定义输出格式(JSON/XML/YAML)