我知道我们可以使用负载平衡器使用内部或外部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地址意外更改时都更改所有应用程序内部设置。
答案 0 :(得分:3)
最简单的解决方案是使用ClusterIP类型的服务。它将在群集中创建一个虚拟IP地址,您的应用程序可以使用该虚拟IP地址相互访问。您还可以使用服务的dns名称来访问它:
service-name.namespace.svc.cluster.local
来自kubernetes内部的任何pod。您根本不需要关心IP地址的任何一种方式,kubernetes都可以对其进行管理