【问题标题】:kubernetes communicate different namespacesKubernetes 通信不同的命名空间
【发布时间】:2020-04-05 23:47:33
【问题描述】:

我从 kubernetes 开始,我在从 backend 命名空间内的 banking 服务访问 messaging 命名空间内的 rabbitmq 服务时遇到了一些问题。通过阅读文档,我知道这应该很“简单”:https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/

但是,我花了一天多的时间试图弄清楚为什么我无法连接到 rabbitmq 客户端主机

这些是我的 yaml 文件:

银行-ip-服务:

apiVersion: v1
kind: Service
metadata:
  name: banking-ip-service
  namespace: backend
spec:
  type: NodePort
  ports:
    - port: 8000
      targetPort: 8000
      nodePort: 30080
      protocol: TCP
      name: "banking-api"
  selector:
    component: bank

银行部署:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: banking
  namespace: backend
spec:
  replicas: 1
  selector:
    matchLabels:
      component: bank
  template:
    metadata:
      labels:
        component: bank
    spec:
      containers:
        - name: banking
          image: user/myownimage
          env:
            - name: URL
              # cluster ip
              value: rabbit-ip-service.messaging.svc.cluster.local
            - name: PORT
              value: "5672"
            - name: USER
              value: "guest"
            - name: PASSWORD
              value: "guest"
          ports:
            - containerPort: 8000
          resources:
            requests:
              memory: "64Mi"
              cpu: "25m"
            limits:
              memory: "128Mi"
              cpu: "50m"
      restartPolicy: Always
      imagePullSecrets:
        - name: regcred

rabbitmq-ip-service:

apiVersion: v1
kind: Service
metadata:
  name: rabbit-ip-service
  namespace: messaging
spec:
 type: ClusterIP
 ports:
    - port: 5672
      targetPort: 5672
      name: "rabbit-api"
    - port: 15672
      targetPort: 15672
      name: "rabbit-manager"
 selector:
  component: rabbitmq

rabbitmq 部署:

apiVersion: v1
kind: Pod
metadata:
  name: rabbitmq
  labels:
    component: rabbitmq
  namespace: messaging
spec:
  containers:
  - image: rabbitmq:3.5.4-management
    name: rabbitmq
    ports:
      - containerPort: 5672
        name: service
      - containerPort: 15672
        name: management
    resources:
      requests:
        memory: "64Mi"
        cpu: "50m"
      limits:
        memory: "128Mi"
        cpu: "100m"
    volumeMounts:
    - name: config-volume
      mountPath: /etc/rabbitmq
  volumes:
  - name: config-volume
    configMap:
      name: rabbitmq-config
      items:
      - key: rabbitmq.conf
        path: rabbitmq.conf
      - key: enabled_plugins
        path: enabled_plugins

这是运行kubectl describe svc rabbit-ip-service -n messaging时的输出:

Name:              rabbit-ip-service
Namespace:         messaging
Labels:            <none>
Annotations:       kubectl.kubernetes.io/last-applied-configuration:
                     {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"rabbit-ip-service","namespace":"messaging"},"spec":{"ports":[{"na...
Selector:          component=rabbitmq
Type:              ClusterIP
IP:                10.106.248.55
Port:              rabbit-api  5672/TCP
TargetPort:        5672/TCP
Endpoints:         172.17.0.5:5672
Port:              rabbit-manager  15672/TCP
TargetPort:        15672/TCP
Endpoints:         172.17.0.5:15672
Session Affinity:  None
Events:            <none>

如果我在 backend 部署中硬编码 url 值,它也不起作用:

env:
  - name: URL
    # cluster ip
    value: 10.106.248.55:5672

【问题讨论】:

  • 你能提供 Kubectl describe svc rabbit-ip-service -n messing 的输出吗
  • @ArghyaSadhu 编辑了我的答案(在输出底部)
  • 如果您尝试 10.106.248.55:15672 或 10.106.248.55:5672 是否有效?
  • 你得到什么具体错误?
  • @ArghyaSadhu 不,它也不起作用:(我编辑了我的答案。我收到level=fatal msg="Error getting rabbit client@DavidMaze

标签: kubernetes


【解决方案1】:

我只是通过临时删除正在使用配置映射的卷来使其工作:

apiVersion: v1
kind: Pod
metadata:
  name: rabbitmq
  labels:
    component: rabbitmq
  namespace: messaging
spec:
  containers:
  - image: rabbitmq:3.5.4-management
    name: rabbitmq
    ports:
      - containerPort: 5672
        name: service
      - containerPort: 15672
        name: management
    resources:
      requests:
        memory: "64Mi"
        cpu: "50m"
      limits:
        memory: "128Mi"
        cpu: "100m"

【讨论】:

    猜你喜欢
    • 2021-03-05
    • 2018-07-31
    • 2021-11-10
    • 2018-03-09
    • 2019-09-27
    • 2020-07-27
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    相关资源
    最近更新 更多