使用内部端点进行通信的AKS

时间:2019-07-12 09:33:37

标签: kubernetes azure-devops

我知道我们可以使用负载平衡器使用内部或外部IP地址设置应用程序。如果我使用外部IP地址,则可以事先在公共场所将其保留在Azure中。现在我的问题是,如果我不希望从集群外部看到该IP地址,该怎么办?

在kubernetes yaml中内部IP地址的配置为:

apiVersion: v1
kind: Service
metadata:
  name: internal-app
  annotations:
    service.beta.kubernetes.io/azure-load-balancer-internal: "true"
spec:
  loadBalancerIP: 10.240.1.90
  type: LoadBalancer
  ports:
  - port: 80
  selector:
    app: internal-app

现在,我已经阅读到指定的IP地址必须与AKS群集位于同一子网中,并且必须尚未分配给资源。

如果我将aks agentpool的IP地址设置为XX0.0 / 16,并且我使用XX0.1作为内部负载均衡器的IP地址,我会收到错误消息:“私有IP地址在保留子网范围内”

我看到我在AKS中也有一些内部端点。这些可以用于内部应用程序间通信吗?

我正在寻找让我的应用进行内部交流的任何方式,而不会将其暴露给外界。我也希望它是可重复的,这意味着像动态IP地址这样的东西不会太好。我需要设置可重复,因此不必每次IP地址意外更改时都更改所有应用程序内部设置。

1 个答案:

答案 0 :(得分:3)

最简单的解决方案是使用ClusterIP类型的服务。它将在群集中创建一个虚拟IP地址,您的应用程序可以使用该虚拟IP地址相互访问。您还可以使用服务的dns名称来访问它:

service-name.namespace.svc.cluster.local

来自kubernetes内部的任何pod。您根本不需要关心IP地址的任何一种方式,kubernetes都可以对其进行管理