k8s的请求dns端口是容器端口还是nodeport端口

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: k8s的请求dns端口是容器端口还是nodeport端口

Kubernetes的DNS请求是通过容器端口而不是NodePort端口进行的。

在Kubernetes中,每个容器都会被分配一个唯一的IP地址,并通过Pod的网络命名空间进行通信。DNS服务以及其他Kubernetes内置的服务(如kubelet、kube-proxy等)也作为容器运行在集群中。

当容器内部需要进行DNS查询时,它们会将DNS请求发送到127.0.0.1:53,即容器本地的DNS解析器。这个端口是容器内部的默认DNS端口。

DNS解析器会将DNS请求转发给Kubernetes集群中运行的kube-dns服务。kube-dns服务监听在Cluster IP上的DNS端口,默认是dns:53

kube-dns服务接收到DNS请求后,会根据配置文件中的DNS记录进行解析,并返回相应的IP地址或域名给发起请求的容器。

因此,Kubernetes的DNS请求是通过容器内部的默认DNS端口(通常是127.0.0.1:53)进行的,而不是NodePort端口。NodePort是用于将外部流量导入Kubernetes集群的一种方式,通常用于将集群外部的流量导入到Service中。

当使用Spring Boot调用位于容器内的服务端口时,不需要特殊的DNS配置。Spring Boot应用程序可以通过服务发现机制来定位和调用其他容器中的服务。

在Kubernetes集群中,可以使用Service资源来定义和暴露容器内部的服务。每个Service都会自动分配一个Cluster IP(例如10.0.0.1),它将作为服务的虚拟IP地址。您可以使用该IP地址和服务的端口来进行服务间的通信。

在Spring Boot应用程序中,您可以使用服务名称来引用其他容器中的服务。这样,应用程序将通过Kubernetes DNS解析服务名称,并将其解析为相应的Cluster IP。您可以在Spring Boot的配置文件中设置服务的URL,示例代码如下所示:

my.service.url=http://service-name:6666

其中,service-name是您要调用的服务的名称,6666是服务的端口。

Spring Boot应用程序将使用Kubernetes内置的DNS解析器来解析服务名称并获取对应服务的Cluster IP。然后,它可以直接通过Cluster IP和服务的端口进行服务间通信,而无需显式指定NodePort端口。

请确保在Kubernetes集群中正确配置了服务资源和DNS。确保服务的标签选择器正确匹配要调用的容器,并且服务的端口与容器的端口一致。这样,Spring Boot应用程序就能够成功地调用容器中的服务。

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
2月前
|
缓存 Kubernetes Docker
容器服务ACK常见问题之容器服务ACK ingress websocket配置失败如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
2月前
|
存储 运维 Kubernetes
容器服务ACK常见问题之容器服务ACK 淘宝源过期了如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
29天前
|
Kubernetes 容器
k8s容器时间与服务器时间不一致问题
k8s容器时间与服务器时间不一致问题
22 0
|
3天前
|
Cloud Native Linux 开发者
【Docker】Docker:解析容器化技术的利器与在Linux中的关键作用
【Docker】Docker:解析容器化技术的利器与在Linux中的关键作用
|
6天前
|
存储 Kubernetes Docker
Kubernetes(K8S)集群管理Docker容器(概念篇)
Kubernetes(K8S)集群管理Docker容器(概念篇)
|
18天前
|
JSON Kubernetes Go
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
28 0
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
|
29天前
|
Kubernetes 网络协议 Docker
Docker 容器的DNS
Docker 容器的DNS
29 1
|
2月前
|
Kubernetes API 调度
总结归纳Kubernetes | 一站式速查知识,助您轻松驾驭容器编排技术(水平扩展控制)
总结归纳Kubernetes | 一站式速查知识,助您轻松驾驭容器编排技术(水平扩展控制)
61 0
|
2月前
|
存储 安全 编译器
【C++ 17 泛型容器对比】C++ 深度解析:std::any 与 std::variant 的细微差别
【C++ 17 泛型容器对比】C++ 深度解析:std::any 与 std::variant 的细微差别
59 1
|
2月前
|
Kubernetes SDN 微服务
微服务与 Kubernetes 容器云的边界
【2月更文挑战第30天】该文探讨了微服务与Kubernetes集群的关系,主要关注是否应跨多集群部署。理想的状况是每个微服务对应一个Kubernetes集群,配置和注册中心在同一集群内,以减少网络延迟。

相关产品

  • 容器服务Kubernetes版
  • 推荐镜像

    更多