开发者社区> 问答> 正文

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

我已经配置了两个服务,都是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,但是然后我无法通过入口访问它们。

什么应该是正确的配置?

展开
收起
k8s小能手 2018-12-14 15:00:41 2396 0
1 条回答
写回答
取消 提交回答
  • 整合最优质的专家资源和技术资料,问答解疑

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

    2019-07-17 23:20:58
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
ACK 云原生弹性方案—云原生时代的加速器 立即下载
ACK集群类型选择最佳实践 立即下载
企业运维之云原生和Kubernetes 实战 立即下载

相关镜像