kubernetes - Kubernetes | AWS-EKS | 无法解析主机名
问题描述
我创建了四个服务,两个 ClusterIP 和两个 NodePort 服务。针对每项服务,我启动了两个容器,如下所示。
但是,问题是某些服务工作正常,而有些服务在从容器内部调用时无法解析服务主机名。
在缩小问题范围的同时,我创建了以下矩阵:-
TYPES NodePort ClusterIp
NodePort Pass Fail
ClusterIp Pass Fail
这解释了:-
- 来自 aggregator-service(nodePort) 容器内部的请求(curl -v http://order-service-ip/swagger/index.html)失败并抛出无法解析主机名错误,但反之亦然。那是从 order-service-ip 工作的容器内部发出请求(curl -v http://aggregator-service/swagger/index.html)。
- 同样,从另一个 nodeport 容器调用 nodeport 服务也可以。
- 但是,从 ClusterIp 容器调用 clusterIP 服务失败并且无法解析主机名。
令人惊讶的是,集群 IP 容器能够解析 Nodeport 服务的主机名,并且从同一个 nodePort 容器返回到同一个 ClusterIp 服务是行不通的。
任何建议表示赞赏。我被这个问题困扰了四天多。
这是 pod 和服务的详细信息,端点也可以正常工作。
NAME ........ READY STATUS
nodeport-aggegator-deployment-64497699d-6jqz4 1/1 Running
nodeport-aggegator-deployment-64497699d-jx8n6 1/1 Running
clusterip-order-deployment-ip-594ff6b59b-pb4bp 1/1 Running
clusterip-order-deployment-ip-594ff6b59b-rbhj4 1/1 Running
nodeport-resources-deployment-6b98d47b5b-qvd59 1/1 Running
nodeport-resources-deployment-6b98d47b5b-zjrh7 1/1 Running
clusterip-product-deployment-ip-7589c74bfc-dx8l4 1/1 Running
clusterip-product-deployment-ip-7589c74bfc-mbqs5 1/1 Running
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)
aggregator-service NodePort 10.100.66.74 <none> 8081:30392/TCP,443:30891/TCP
order-service-ip ClusterIP 10.100.118.19 <none> 8010/TCP,443/TCP
resources-service NodePort 10.100.81.65 <none> 8001:31076/TCP,443:30429/TCP
product-service-ip ClusterIP 10.100.66.14 <none> 8011/TCP,443/TCP
kubernetes ClusterIP 10.100.0.1 <none> 443/TCP
谢谢
解决方案
问题出在有端口冲突的代码中。用于从 Nodeport 重定向到 ClusterIp 的那个不正确。
推荐阅读
- java - 通过 Maven Invoker 执行项目会引发编译错误
- kotlin - 如何在数组中设置值的范围/切片?科特林
- .htaccess - htaccess RewriteRule 到 Wordpress 环境中的现有文件夹
- javascript - 在 laravel 中使用带有表单其他属性的 dropzone 提交图像
- c# - 表格布局面板 - 在 C# 表单应用程序中锚定
- node.js - 在nodejs中将AJAX请求转换为HTTP请求
- android - Android 唤醒锁打开
- xml - 从线性化到漂亮打印到线性化时,我可以防止记事本++删除关闭和打开 XML 标记之间的空格吗
- python - 无法在 R 闪亮的仪表板中打印 python 代码
- android - 过滤 recyclerview 时,项目正在重复