我们有一个原始网络,其中包含许多带有docker swarm容器的linux VM。我们正在将它们迁移到AKS,但这必须分步完成。目前,我们已在私有子网中建立了一个入口,内部入口如下所示,请使用以下示例https://docs.microsoft.com/en-us/azure/aks/ingress-internal-ip
问题:-当连接到原始v-net时,我们无法连接到2个子网上的10.3.0.4,即10.0.0.12:80-> 10.3.0.4:80。在相同子网上的测试VM上,AKS群集可以正常连接到10.3.0.4。
我们可以从原始v-net连接到nic中的服务端点的奇怪事情,即10.0.0.12:80-> 10.3.3.134:80/。
这不是解决方案,因为我们可以有多个副本。
有什么想法为什么负载平衡器对于原始v-net不可见?
original subnet
//10.0.0.0/24
10.0.0.0 - 10.0.0.255 (65536 addresses)
//10.0.1.0/24
10.0.1.0 - 10.0.1.255 (65536 addresses)
彼此建立了对等关系
aks subnet
10.3.0.0/16
10.3.0.0 - 10.3.255.255 (65536 addresses)
az aks create \
--resource-group AKS_Workshop \
--name workshop-aks-cluster \
--network-plugin azure \
--vnet-subnet-id "/subscriptions/../resourceGroups/AKS_Workshop/providers/Microsoft.Network/virtualNetworks/aksvnet/subnets/default" \
--docker-bridge-address 172.17.0.1/16 \
--dns-service-ip 10.4.0.2 \
--service-cidr 10.4.0.0/16 \
--generate-ssh-keys \
--max-pods 96 \
--node-vm-size Standard_DS2_v2
controller:
service:
loadBalancerIP: 10.3.0.4
annotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true"
helm install stable/nginx-ingress /
--name backend-ingress /
--namespace ingress -f ingress-basic.yaml
--set controller.nodeSelector."beta\.kubernetes\.io/os"=linux
--set defaultBackend.nodeSelector."beta\.kubernetes\.io/os"=linux
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
aks-helloworld ClusterIP 10.4.121.75 <none> 80/TCP 25h
backend-ingress-nginx-ingress-controller LoadBalancer 10.4.233.18 10.3.0.4 80:30904/TCP,443:32023/TCP 23h
backend-ingress-nginx-ingress-default-backend ClusterIP 10.4.198.93 <none> 80/TCP 23h
ingress-demo ClusterIP 10.4.53.2 <none> 80/TCP 25h
Name: ingress-demo
Namespace: ingress
Labels: <none>
Annotations: <none>
Selector: app=acs-helloworld-saucy-antelope
Type: ClusterIP
IP: 10.4.53.2
Port: <unset> 80/TCP
TargetPort: 80/TCP
Endpoints: 10.3.3.134:80
Session Affinity: None
Events: <none>
答案 0 :(得分:0)
事实证明,问题与2 v网络位于不同区域有关。在同一地区创建v-net后,击中内部负载均衡器端点就没有问题,因为它说您可以访问内部端点,但是如果您为平衡器设置了多个副本,则只能命中一个。端点从而使其变得毫无意义
VNet对等
什么是VNet对等?
VNet对等(或虚拟网络对等)使您可以连接虚拟网络。通过虚拟网络之间的VNet对等连接,您可以通过IPv4地址在它们之间私有路由流量。对等VNet中的虚拟机可以相互通信,就好像它们在同一网络中一样。这些虚拟网络可以位于同一区域或不同区域(也称为全局VNet对等)。还可以跨Azure订阅创建VNet对等连接。
我可以在其他区域创建到VNet的对等连接吗?
是的。全局VNet对等关系使您可以对不同区域中的VNet进行对等。在所有Azure公共区域,中国云区域和政府云区域中都可以使用全局VNet对等。您无法在全球范围内从Azure公共区域浏览到国家云区域。
与全局VNet对等和负载平衡器相关的约束有哪些?
如果两个不同区域中的两个虚拟网络通过Global VNet Peering对等,则无法通过负载均衡器的前端IP连接到基本负载均衡器后面的资源。对于标准负载均衡器不存在此限制。以下资源可以使用基本负载平衡器,这意味着您无法通过全局VNet对等负载平衡器的前端IP来访问它们。但是,如果允许,您可以使用全局VNet对等关系直接通过其专用VNet IP访问资源。
基本负载均衡器背后的虚拟机 具有基本负载平衡器的虚拟机规模集 Redis缓存 应用程序网关(v1)SKU 服务面料 SQL MI API管理 Active Directory域服务(ADDS) 逻辑应用 HDInsight Azure批处理 应用服务环境
您可以通过ExpressRoute或通过VNet网关从VNet到VNet连接到这些资源。