k8s环境排查nginx转发nacos请求失败问题

一、问题背景

k8s部署两个服务,一个nginx,一个nacos, 服务信息如下(nacos有两个端口):

服务 serviceName service类型 port targetPort nodePort
nginx monitor-cp-nginx NodePort 80 80 31082
nacos monitor-cp-nacos ClusterIP 8848 8848 -
nacos monitor-cp-nacos ClusterIP 9848 9848 -

ng的default.conf配置文件关于nacos部分(将请求转发到nacos):

预期效果:

当请求nginx:服务器IP:31082/nacos时候,ng将请求代理到nacos服务,此时显示nacos的登录页面。

问题出现在请求nginx:服务器IP:31082/nacos时,并没有出现nacos的页面。

二、问题排查

2.1 错误日志

进入nginx容器查看日志,日志目录:/var/log/nginx下的error.log显示内容:

日志显示连接nacos服务失败。

2.2 验证网络

进入nginx容器,验证下网络是否畅通:

确实是连接不上。

2.3 排查nacos服务

2.3.1 确保pod正常运行

执行 kubectl get pod -n oap-dev | grep nacos,可以看到pod是running状态:

2.3.2 检查service服务

执行kubectl get svc -n oap-dev | grep nacos:

可以看到两个端口8848和9848,没有问题。

此处的端口显示的是yaml文件中port字段值。

2.3.3 检查endpoint服务

执行kubectl get ep -n oap-dev | grep nacos:

查看两个端口,此处的端口值是yaml文件中的targetPort字段值。

这两个端口值与规划值不符,应该也是8848和9848。(应该是之前执行了一个错误yaml文件,所以才导致端口与规划不符)

至此发现问题所在,将nacos.yaml文件中targetPort的值修改过来,重新执行kubectl apply -f nacos.yaml。

三、验证

访问:服务器IP:31082/nacos,页面正常显示:

相关推荐
troy1281 小时前
K8s 平台测试清单:深度分析与实战指南
云原生·容器·kubernetes
小白的码BUG之路8 小时前
Docker -- 构建nacos镜像
运维·docker·容器
天衍四九-12 小时前
【无标题】
前端·spring boot·mysql·nginx·docker
赵谨言13 小时前
红蓝对抗Docker渗透复盘-技能与产出汇总
docker·容器·eureka
I'mChloe16 小时前
Windows部署BiliNote:Docker安装、AI视频转写、Markdown笔记与cpolar远程访问
人工智能·windows·docker
Thomas.Sir16 小时前
第11课:Nacos 多环境、多服务配置隔离 & 配置优先级详解
spring cloud·微服务·nacos
吴声子夜歌16 小时前
Nginx应用与运维——Nginx HTTP模块详解(动态赋值功能模块)
运维·nginx·http
姜鱼问生16 小时前
三层防火墙排查:Nginx 配好了浏览器还打不开
nginx·安全
打工仔折腾 AI17 小时前
飞牛OS上用Docker Compose部署ExerciseDiary运动记录并配置远程访问
运维·人工智能·后端·python·docker·容器·ai agent 实战
天衍四九-18 小时前
Docker Compose企业实战系列(八·终章):多环境隔离实战,开发/测试/生产一键切换
运维·docker·容器