如何根据mq上的消费者的端口号确定k8s上的服务

有一天发现mq上面的多了消费者,但是无法确定是哪个服务,因为mq上显示的是k8s的宿主机加上端口,但是根据端口,在对应的k8s节点的主机上用netstat并不能查到对应的端口,到此,思考这个容器的端口是不是并没有映射到宿主机上,所以需要进容器去找这个端口

第一步过滤出来这个节点上所有的java服务,

第二步依次去查看每个容器里面的端口

第三步得到结论

根据这个思路,写了如下脚本:

#!/bin/bash
for i in $(docker ps |grep java |awk '{print $1}')
do
  A=`docker exec -it $i  netstat -lnap |grep $1 |wc -l`
  if [ $A = "0" ];then
      echo "$i 容器中没有目标端口"
  else
      echo "$i 容器中有目标端口"
  fi
done

在执行的时候加上自己想要验证的端口,如果这个时候,端口存在某个容器中,那么就可以根据端口定位到了确定的服务

 

posted @ 2021-12-22 10:11  岁月静好·  阅读(181)  评论(0)    收藏  举报