【问题解决】RabbitMQ启动出现epmd error for host xx.xx: nxdomain (non-existing domain)

问题描述

【k8s】或【普通容器】或【Linux】部署的RabbitMQ启动时出现了 epmd error for host xx.xx: nxdomain (non-existing domain) 错误,MQ无法启动成功。

其中 xx.xx 为无法解析的域名。

RabbitMQ官方还提到报错 Error during startup: {error,no_epmd_port} 也是同样的情况。

解决办法

这里简单记录下解决办法,分别以 Linux环境、docker容器环境、k8s环境、说明下。

Linux环境

/etc/hosts 文件添加域名解析 xx.xx127.0.0.1,以下示例:

127.0.0.1 mydomain.io

docker容器环境

docker run命令添加 --add-host 参数

--add-host="" : Add a line to /etc/hosts (host:IP)

示例:

docker run -d --add-host="mydomain.io:127.0.0.1" -p 5672:5672 rabbitmq:latest

k8s环境

在 podTemplate的spec下添加 hostname 写上域名,当rabbitmq访问该域名时自动映射到POD上。

示例:

apiVersion: apps/v1
kind: StatefulSet
metadata:
name: rabbitmq
labels:
app: rabbitmq
spec:
replicas: 1
selector:
matchLabels:
app: rabbitmq
serviceName: rabbitmq
template:
metadata:
labels:
app: rabbitmq
spec:
hostname: "mydomain.io"
containers:
- name: rabbitmq
image: 'rabbitmq:latest'
ports:
- name: tcp-5672
containerPort: 5672
protocol: TCP
env:
- name: TZ
value: 'Asia/Shanghai'

k8s官方文档上还有添加 hostAlias 的办法,这里简单截个图放一下文档地址:https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#PodSpec

参考:

本文作者:东北小狐狸

本文链接:https://www.cnblogs.com/hellxz/p/17362562.html

版权声明:本作品采用自由转载-非商用-非衍生-保持署名 (CC BY-NC-ND 3.0)许可协议进行许可。

posted @   东北小狐狸  阅读(933)  评论(0编辑  收藏  举报
历史上的今天:
2018-04-28 SpringCloud (七)自定义HystrixCommand
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起