我有两个在 Azure 中运行的 k8s 集群。我想从集群 A 访问一个在集群 B 中公开的 IP。IP(10.148.157.253)通过负载均衡器在集群 B 中公开。 在集群 A 中,我创建了端点和服务。当我从我的一个豆荚 http://10.148.157.253:8080 卷曲时,我得到了结果。但是,当我卷曲服务 http://my-service.app.svc.cluster.local 时,连接被拒绝。以下是集群 A 的配置:
apiVersion: v1
kind: Service
metadata:
name: my-service
namespace: app
spec:
ports:
- name: http
port: 80
targetPort: 8080
---
apiVersion: v1
kind: Endpoints
metadata:
name: my-service
namespace: app
subsets:
- addresses:
- ip: 10.148.157.253
ports:
- port: 8080
protocol: TCP
集群 B 中的负载均衡器如下所示:
apiVersion: v1
kind: Service
metadata:
name: my-loadbalancer
namespace: app
annotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true"
service.beta.kubernetes.io/azure-load-balancer-internal-subnet: "my-subnet"
spec:
type: LoadBalancer
loadBalancerIP: 10.148.157.253
ports:
- protocol: TCP
port: 8080
selector:
app: my-app
您知道什么可能导致我可以卷曲负载均衡器 IP 而不能卷曲服务本身的问题吗?
答案 0 :(得分:1)
真正解决问题的是另一个 ExternalName 类型的服务,它使用负载均衡器的 ip 作为 externalName。
apiVersion: v1
kind: Service
metadata:
name: my-service
namespace: app
spec:
type: ExternalName
externalName: 10.148.157.253