除了通过入口将它们暴露在外之外,还可以在k8s集群内部访问服务-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

除了通过入口将它们暴露在外之外,还可以在k8s集群内部访问服务

k8s小能手 2018-12-14 15:00:41 768

我已经配置了两个服务,都是NodePort。

服务1
kind: Service
apiVersion: v1
metadata:
name: bitcoinrpc-dev-service
namespace: dev
spec:
selector:

app: bitcoin-node

ports:

  • name: bitcoin-mainnet
    protocol: TCP
    port: 80
    targetPort: 8332
  • name: bitcoin-testnet
    protocol: TCP
    port: 8080
    targetPort: 18332
    type: NodePort

服务2
kind: Service
apiVersion: v1
metadata:
name: counterpartyrpc-dev-service
namespace: dev
spec:
selector:

app: counterparty-node

ports:

  • name: mainnet
    protocol: TCP
    port: 80
    targetPort: 4000
  • name: testnet
    protocol: TCP
    port: 8080
    targetPort: 14000
    type: NodePort

我可以通过入口访问集群外的这两种服务。然而,当我尝试连接到service1(bitcoin从service2(counterparty),它一直失去联系。我指的是服务bitcoinrpc-dev-service.dev.svc.cluster.local:80

但是,如果我将此服务称为配置的主机名ingress,则连接会更加稳定。例如,当我是指service1由bitcoin.mydomain.com:80

因为,这意味着当需要彼此通信的服务都在同一个集群中时,将集群外的流量路由,这似乎效率稍低。

我尝试更改servicetype为clusterIP,但是然后我无法通过入口访问它们。

什么应该是正确的配置?

Kubernetes 网络协议 容器
分享到
取消 提交回答
全部回答(1)
  • k8s小能手
    2019-07-17 23:20:58

    这背后的原因是只有k8s群集与kube-dns添加可以将域名bitcoinrpc-dev-service.dev.svc.cluster.local:80转换为其对应的IP地址

    0 0
+ 订阅

云原生时代,是开发者最好的时代

推荐文章
相似问题