【问题解决】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.xx
到 127.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)许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2018-04-28 SpringCloud (七)自定义HystrixCommand