Kubernetes 无法连接到ClusterIP服务
我已经使用ClusterIP服务部署了RabbitMQ 部署: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
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