Kubernetes 无法连接到ClusterIP服务

Kubernetes 无法连接到ClusterIP服务,kubernetes,.net-core,rabbitmq,Kubernetes,.net Core,Rabbitmq,我已经使用ClusterIP服务部署了RabbitMQ 部署: apiVersion: apps/v1 kind: Deployment metadata: labels: app: rabbit-mq name: rabbit-mq spec: replicas: 1 selector: matchLabels: app: rabbit-mq strategy: type: Recreate template: metadat

我已经使用ClusterIP服务部署了RabbitMQ

部署:

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: rabbit-mq
  name: rabbit-mq
spec:
  replicas: 1
  selector:
    matchLabels:
      app: rabbit-mq
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
         app: rabbit-mq
    spec:
      containers:
      - image: rabbitmq:3.6.1-management
        name: rabbit-mq
        ports:        
        - containerPort: 5672
        volumeMounts:
        - mountPath: /etc/rabbitmq
          name: rabbit-mq-data
      restartPolicy: Always
      hostname: rabbit-mq
      volumes:
      - name: rabbit-mq-data
        persistentVolumeClaim:
          claimName: rabbit-mq-data
服务:

apiVersion: v1
kind: Service
metadata:
  name: rabbit-mq-service
  labels:
    app: rabbit-mq
  namespace: default
spec:
  type: ClusterIP
  ports:
  - port: 5672    
  selector:
   app: rabbit-mq
正如我使用其他服务进行的测试以及文档中所述,集群服务应该对集群中的所有pod和节点可见。 我需要我的RabbitMQ服务只能在集群内访问。 正如我定义的端口5672一样,targetPort也使用相同的端口

我使用以下连接字符串将.NET核心应用程序连接到服务: amqp://user:password@10.100.10.10:5672/

kubectl获取svc兔子mq服务 名称类型群集IP外部IP端口年龄 rabbit mq服务群集IP 10.100.10.10 5672/TCP 3h7m

当我尝试连接到RabbitMQ时,出现以下错误:

未处理的异常:RabbitMQ.Client.Exceptions.BrokerRunReachableException:指定的终结点均不可访问-->System.AggregateException:发生一个或多个错误。连接失败-->RabbitMQ.Client.Exceptions.ConnectFailureException:连接失败-->System.TimeoutException:操作已超时

我是否误解了ClusterIP服务的工作原理?

试试这个:

apiVersion: v1
kind: Service
metadata:
  name: rabbit-mq-service
  labels:
    app: rabbit-mq
  namespace: default
spec:
  type: ClusterIP
  clusterIP: None
  ports:
  - port: 5672    
  selector:
   app: rabbit-mq

及amqp://user:password@rabbit mq服务:5672/

是否需要ClusterIP,或者您可以使用headless服务?我认为,您在服务部署中缺少targetPort。@FL3SH这不是必需的,我可以使用任何解决方案,只要它不能从集群外部访问。@Nirav我认为如果我有“port”字段,则意味着使用targetPort。文件上是这样说的。我都可以试试。啊,我的错。我不知道。谢谢@FL3SH和Andrija\n服务无效:spec.type:不支持的值:无:支持的值:ClusterIP、ExternalName、LoadBalancer、,NodePartit无法工作未经处理的异常:RabbitMQ.Client.Exceptions.BrokerRunReachableException:指定的终结点均不可访问-->System.AggregateException:发生一个或多个错误。连接失败-->RabbitMQ.Client.Exceptions.ConnectFailureException:连接失败-->System.TimeoutException:该操作已超时。它应该可以工作,您确定RabbitMQ容器正在侦听端口5672吗?可能尝试使用docker,然后移动到k8s.NAME类型CLUSTER-IP EXTERNAL-IP PORTS AGE rabbit mq服务ClusterIP None 5672/TCP 36M容器,而不是服务。Exec进入pod并运行netstat或ss