gpt4 book ai didi

Kubernetes pod 无法连接到本地运行的 rabbit mq 实例

转载 作者:行者123 更新时间:2023-12-02 11:57:57 25 4
gpt4 key购买 nike

我正在将我的应用程序从 docker 移动到 kubernetes\helm - 到目前为止,除了设置传入\传出连接之外,我已经成功。

我面临的一个特殊问题是我无法连接到另一个 docker 容器上我的机器上本地运行的 rabbitmq 实例。

app-deployment.yaml:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: jks
labels:
app: myapp
spec:
replicas: 1
template:
metadata:
labels:
app: myapp
spec:
imagePullSecrets:
- name: ivsecret
containers:
- env:
- name: JOBQUEUE
value: jks_jobqueue
- name: PORT
value: "80"
image: repo.url
name: jks
ports:
- containerPort: 80
volumeMounts:
- name: config-vol
mountPath: /etc/sys0
volumes:
- name: config-vol
configMap:
name: config

restartPolicy: Always

------------

app-service.yaml:

apiVersion: v1
kind: Service
metadata:
name: jks
spec:
ports:
- name: "80"
port: 80
targetPort: 80
selector:
app: myapp

我在容器上看到错误,提示它无法连接到我的机器。我尝试从容器内部 curl :
curl 10.2.10.122:5672
curl: (7) Failed to connect to 10.20.11.11 port 5672: Connection timed out

但是当我部署为 docker 容器时,同样的工作正常 - 我能够连接到在我的机器上运行的 rabbit mq 实例的端口 5672。

我需要做些什么来建立从 pod 到我的本地机器的连接吗?

最佳答案

如果我了解设置:

  • minikube 在本地机器上运行。
  • rabbitmq 也在本地机器上运行,并且正在监听端口 5672。
  • rabbitmq 运行的 IP 是 10.2.10.122 。
  • 一个应用程序 - jks - 在 minikube 上运行。

  • 问题是无法从 jks 应用程序连接到 rabbitmq,对吗?

    使其工作的一种方法是首先创建一个没有选择器的服务:
    apiVersion: "v1"
    kind: "Service"
    metadata:
    name: "svc-external-rabbitmq"
    spec:
    ports:
    - name: "rabbitmq"
    protocol: "TCP"
    port: 5672
    targetPort: 5672
    nodePort: 0
    selector: {}

    ...接下来,为服务创建 Endpoints 对象:
    apiVersion: "v1"
    kind: "Endpoints"
    metadata:
    name: "svc-external-rabbitmq"
    subsets:
    - addresses:
    - ip: "10.2.10.122"
    ports:
    - name: "rabbitmq"
    port: 5672

    ...然后使用服务名称 - svc-external-rabbitmq - 在 jks 应用程序中连接到 rabbitmq。

    解释见 Services without selectors在 Kubernetes 文档中。我已经将此设置与 Cassandra 集群一起使用,其中 Cassandra 节点的 IP 都被列为 addresses。 .

    编辑:请注意,在某些情况下,类型为 ExternalName 的服务也可以工作。

    关于Kubernetes pod 无法连接到本地运行的 rabbit mq 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53433440/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com