Kubernetes - 内部 IP/DNS/Port 寻址匹配讲解

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: Kubernetes - 内部 IP/DNS/Port 寻址匹配讲解

K8S里有一个 namespace 命名空间概念,如图

在 1 处是 namespaces 筛选的地方,2 处是我要搜索这个服务的名字,3 处是搜索的结果。

问:2 个不同的 namespaces 之间的服务如何进行通信呢?

答:K8S 内部自带有一套机制,就是通过自带的一个 DNS,作为连接不同 namespaces 的桥梁。

这里假设:命名空间 SpaceA、SpaceB,SpaceA 里有一个服务 ServiceA、SpaceB 里有一个服务 ServiceB;ServiceA 端口号为 PortA,ServiceB 端口号为 PortB。

那么,ServiceA.SpaceA:PortA 就可以和 ServiceB.SpaceB:PortB 之间进行互相访问。

注意:这里的 Port 指的是内部端口号(port)而不是(nodePort),这里的 ServiceX.SpaceX 通过 K8S 自带的 DNS 会解析成 clusterIP(K8S内部IP),如图

应用场景

1、外部访问 K8S 服务

  1. 映射 K8S 管理界面的 IP 作为 ServiceX.SpaceX(当然也可以叫其他域名,反正是本地的 hosts 映射),这里的 IP 注意不是 clusterIP
  2. 暴露端口为 nodePort: PortX
  3. 访问:ServiceX.SpaceX:PortX

2、内部访问 K8S 服务

  1. 将程序部署到同一个 K8S 里
  2. 不需要暴露任何端口
  3. 直接访问:ServiceX.SpaceX:PortX,(ServiceX.SpaceX 填写格式按照“服务名称.命名空间名称”)(PortX 采用的是 port)

3、内/外部使用一个地址同时都可以访问到 K8S 服务

  1. 看第 1 种场景,外部域名是可以变化的,然后端口也是可以自定义的(只要不冲突就行)
  2. 那么要想达到内外部利用一套“地址:端口”就可以访问,只需要将“ServiceX.SpaceX”本地映射成这种格式,nodePort == port 即可

常见问题

  • 为什么我设置了 hosts 映射成 K8S 页面地址,端口也暴露了,本地好使,线上却不好使?
  • 这个原因很可能是这样:本地用的域名首先也符合 "serviceName.namespaces:nodePort",但是这里的 nodePort 可能不等于 port。这会导致一个问题是 K8S 最终解析成“clusterIP:nodePort”,这样自然是行不通的,因为要么“K8SIP:nodePort”,要么“clusterIP:port”,这 2 种规范才可以的噢!
相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
2月前
|
域名解析 存储 网络协议
深入解析网络通信关键要素:IP 协议、DNS 及相关技术
本文详细介绍了IP协议报头结构及其各字段的功能,包括版本、首部长度、服务类型、总长度、标识、片偏移、标志、生存时间(TTL)、协议、首部检验和等内容。此外,还探讨了IP地址的网段划分、特殊IP地址的应用场景,以及路由选择的大致流程。最后,文章简要介绍了DNS协议的作用及其发展历史,解释了域名解析系统的工作原理。
123 5
深入解析网络通信关键要素:IP 协议、DNS 及相关技术
|
3月前
|
Kubernetes API 调度
Kubernetes 架构解析:理解其核心组件
【8月更文第29天】Kubernetes(简称 K8s)是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用。它提供了一个可移植、可扩展的环境来运行分布式系统。本文将深入探讨 Kubernetes 的架构设计,包括其核心组件如何协同工作以实现这些功能。
320 0
|
6天前
|
域名解析 网络协议 测试技术
IP、掩码、网关、DNS1、DNS2到底是什么东西,ping telnet测试
理解IP地址、子网掩码、默认网关和DNS服务器的概念是有效管理和配置网络的基础。通过使用ping和telnet命令,可以测试网络连通性和服务状态,快速诊断和解决网络问题。这些工具和概念是网络管理员和IT专业人员日常工作中不可或缺的部分。希望本文提供的详细解释和示例能够帮助您更好地理解和应用这些网络配置和测试工具。
24 2
|
9天前
|
运维 Kubernetes Cloud Native
Kubernetes云原生架构深度解析与实践指南####
本文深入探讨了Kubernetes作为领先的云原生应用编排平台,其设计理念、核心组件及高级特性。通过剖析Kubernetes的工作原理,结合具体案例分析,为读者呈现如何在实际项目中高效部署、管理和扩展容器化应用的策略与技巧。文章还涵盖了服务发现、负载均衡、配置管理、自动化伸缩等关键议题,旨在帮助开发者和运维人员掌握利用Kubernetes构建健壮、可伸缩的云原生生态系统的能力。 ####
|
7天前
|
存储 Kubernetes 调度
深度解析Kubernetes中的Pod生命周期管理
深度解析Kubernetes中的Pod生命周期管理
|
24天前
|
存储 Kubernetes 监控
深度解析Kubernetes在微服务架构中的应用与优化
【10月更文挑战第18天】深度解析Kubernetes在微服务架构中的应用与优化
92 0
|
1月前
|
运维 安全 网络协议
Python 网络编程:端口检测与IP解析
本文介绍了使用Python进行网络编程的两个重要技能:检查端口状态和根据IP地址解析主机名。通过`socket`库实现端口扫描和主机名解析的功能,并提供了详细的示例代码。文章最后还展示了如何整合这两部分代码,实现一个简单的命令行端口扫描器,适用于网络故障排查和安全审计。
|
2月前
|
网络协议 网络虚拟化
接收网络包的过程——从硬件网卡解析到IP
【9月更文挑战第18天】这段内容详细描述了网络包接收过程中机制。当网络包触发中断后,内核处理完这批网络包,会进入主动轮询模式,持续处理后续到来的包,直至处理间隙返回其他任务,从而减少中断次数,提高处理效率。此机制涉及网卡驱动初始化时注册轮询函数,通过软中断触发后续处理,并逐步深入内核网络协议栈,最终到达TCP层。整个接收流程分为多个层次,包括DMA技术存入Ring Buffer、中断通知CPU、软中断处理、以及进入内核网络协议栈等多个步骤。
|
3月前
|
Kubernetes 网络协议 调度
在K8S中,flannel可以固定节点IP和Pod的IP地址吗?
在K8S中,flannel可以固定节点IP和Pod的IP地址吗?
|
3月前
|
Kubernetes 负载均衡 网络协议
在K8S中,DNS组件有什么特性?
在K8S中,DNS组件有什么特性?

相关产品

  • 云解析DNS
  • 推荐镜像

    更多