kubernetes - 在 Minikube 集群上部署 RabbitMQ 和 Consul
问题描述
我目前尝试部署我的学习环境。我的目标是使用 Consul、Vault、RabbitMQ/Kafka、Jaeger、Elasticsearch、Prometheus、Grafana 等部署堆栈。尽管我有 docker 和 swarm 方面的经验,但我对 Kubernetes、Helm 和网络东西还是很陌生。
我使用该链接成功部署了 Consul:https ://learn.hashicorp.com/tutorials/consul/kubernetes-minikube
然后我尝试部署 RabbitMQ 并遇到了一个问题。Rabbit 的 pod 在几次重启后挂起,处于Init: CrashLoopBackOff状态。
日志:
kubectl logs rabbitmq-0 consul-connect-inject-init -f
...
2021-08-26T15:17:27.954Z [INFO] Unable to find registered services; retrying
2021-08-26T15:17:28.955Z [INFO] Unable to find registered services; retrying
2021-08-26T15:17:28.955Z [INFO] Check to ensure a Kubernetes service has been created for this application. If your pod is not starting also check the connect-inject deployment logs.
kubectl describe svc rabbitmq
Name: rabbitmq
Namespace: default
Labels: app.kubernetes.io/instance=rabbitmq
app.kubernetes.io/managed-by=Helm
app.kubernetes.io/name=rabbitmq
helm.sh/chart=rabbitmq-8.20.3
Annotations: meta.helm.sh/release-name: rabbitmq
meta.helm.sh/release-namespace: default
Selector: app.kubernetes.io/instance=rabbitmq,app.kubernetes.io/name=rabbitmq
Type: ClusterIP
IP Family Policy: SingleStack
IP Families: IPv4
IP: 10.104.42.222
IPs: 10.104.42.222
Port: amqp 5672/TCP
TargetPort: amqp/TCP
Endpoints:
Port: epmd 4369/TCP
TargetPort: epmd/TCP
Endpoints:
Port: dist 25672/TCP
TargetPort: dist/TCP
Endpoints:
Port: http-stats 15672/TCP
TargetPort: stats/TCP
Endpoints:
Session Affinity: None
Events: <none>
我还对 Rabbit Helm 图表进行了一些更改:
extraPlugins: "rabbitmq_auth_backend_ldap rabbitmq_peer_discovery_consul"
cluster_formation.peer_discovery_backend = consul
cluster_formation.consul.svc = rabbitmq
cluster_formation.consul.svc_addr_auto = true
cluster_formation.consul.svc_addr_use_nodename = false
cluster_formation.consul.host = consul
cluster_formation.consul.use_longname = true
我用过:https ://www.rabbitmq.com/cluster-formation.html#peer-discovery-consul 没有效果。
Consul 发现 Rabbit 服务,但 pod 无法正常工作: Consul 截图
我可以做些什么来解决我的问题?
解决方案
推荐阅读
- google-analytics - 使用gtag.js时如何获取跨域跟踪所需的Google Analytics_ga链接器参数
- python - Python 循环语法
- javascript - 在数据表中的一组句子中搜索一个句子
- c# - Identity Server Windows 身份验证声明
- javascript - 在 highcharts 中导出绘图堆栈
- android - 无法使用“npx react-native init SampleApp”创建反应原生项目
- ios - 仅将 Y 轴粘贴在 Google 实时图表上的一处
- swift - http APi 请求连接失败错误 1004
- python - 启动 Selenium Chromedriver 时使用两个 excludeSwitches?
- r - 为后续访问创建假人