因此,我已在子网A的Azure Kubernetes群集中部署了一个包含微服务的容器。我还有一个在VM上但在另一个子网B中运行的微服务。我必须调用在容器内运行的应用程序的其余API从VM。我该如何实现?
答案 0 :(得分:2)
实现这一目标的正确方法是创建一个internal load balancer。
从文档中
限制对Azure Kubernetes Service中的应用程序的访问 (AKS),则可以创建和使用内部负载平衡器。内部 负载均衡器使Kubernetes服务仅可用于 在与Kubernetes相同的虚拟网络中运行的应用程序 集群。
关注Specify a different subnet部分:
要为您的负载均衡器指定一个子网,请添加 服务的azure-load-balancer-internal-subnet注释。的 指定的子网必须与AKS位于同一虚拟网络中 簇。部署后,负载均衡器的EXTERNAL-IP地址是其中的一部分 指定的子网。
示例:
apiVersion: v1
kind: Service
metadata:
name: internal-app
annotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true"
service.beta.kubernetes.io/azure-load-balancer-internal-subnet: "apps-subnet"
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: internal-app
图: