云容器引擎 CCE-容器如何访问VPC内部网络:VPC内访问
VPC内访问
根据集群容器网络模型不同,从容器访问内部网络有不同表现。
- 容器隧道网络
容器隧道网络在节点网络基础上通过隧道封装网络数据包,容器访问同VPC下其他资源时,只要节点能访问通,容器就能访问通。如果访问不通,需要确认对端资源的安全组配置是否能够允许容器所在节点访问。
- 云原生网络2.0
云原生网络2.0模型下,容器直接从VPC网段内分配IP地址,容器网段是节点所在VPC的子网,容器与VPC内其他地址天然能够互通。如果访问不通,需要确认对端资源的安全组配置是否能够允许容器网段访问。
- VPC网络
VPC网络使用了VPC路由功能来转发容器的流量,容器网段与节点VPC不在同一个网段,容器访问同VPC下其他资源时,需要对端资源的安全组能够允许容器网段访问。
例如集群节点所在网段为192.168.10.0/24,容器网段为172.16.0.0/16。
VPC下(集群外)有一个地址为192.168.10.52的E CS ,其安全组规则仅允许集群节点的IP网段访问。
此时如果从容器中ping 192.168.10.52,会发现无法ping通。
kubectl exec test01-6cbbf97b78-krj6h -it -- /bin/sh / # ping 192.168.10.25 PING 192.168.10.25 (192.168.10.25): 56 data bytes ^C --- 192.168.10.25 ping statistics --- 104 packets transmitted, 0 packets received, 100% packet loss
在安全组放通容器网段172.16.0.0/16访问。
此时再从容器中ping 192.168.10.52,会发现可以ping通。
$ kubectl exec test01-6cbbf97b78-krj6h -it -- /bin/sh / # ping 192.168.10.25 PING 192.168.10.25 (192.168.10.25): 56 data bytes 64 bytes from 192.168.10.25: seq=0 ttl=64 time=1.412 ms 64 bytes from 192.168.10.25: seq=1 ttl=64 time=1.400 ms 64 bytes from 192.168.10.25: seq=2 ttl=64 time=1.299 ms 64 bytes from 192.168.10.25: seq=3 ttl=64 time=1.283 ms ^C --- 192.168.10.25 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss