여러 개를 실행하는 3개의 노드가 있고 OpenVPN pods
각 포드에는 VPN 네트워크가 있으며 이러한 포드에 연결하는 클라이언트는 이 범위의 IP 주소를 받습니다. 예를 들어 클라이언트가 포드 중 하나에 연결되어 있다고 100.70.0.0/16
가정해 보겠습니다 .100.70.162.91
이제 이 클러스터에서 다양한 서비스를 실행하는 Pod를 더 추가하고 각 Pod는 모든 VPN 클라이언트와 통신할 수 있어야 합니다. 지금까지 AWS ECS를 사용하여 이 작업을 수행한 가장 큰 단계 중 하나는 ip route add 100.70.192.91/32 via <OpenVPN-pod-IPv4>/32
클라이언트가 AWS API를 사용하여 연결한 후 클러스터 VPC의 서브넷 라우팅 테이블과 같은 경로를 추가하는 것입니다. 이 방법은 다음을 사용하여도 작동하는 것으로 보입니다 docker-compose
. Kubernetes
모든 포드가 동일한 네트워크에 있는 한.
그러나 이제 ECS에서 Kubernetes로 마이그레이션하려고 하므로 Kubernetes에 클러스터 전체 네트워크 정적 경로를 추가하는 방법을 찾을 수 없는 것 같습니다.
Kubernetes에서 이를 구현하는 가장 좋은 방법은 무엇입니까?
답변1
ECS 대신 바닐라 k8s를 사용하는 경우 작업자 노드에 해당 경로를 추가할 수 있는 옵션이 있습니다. 따라서 비k8s(VPN 클라이언트 네트워크는 k8s 포드 네트워크와 다름) 네트워크에 대한 포드 트래픽은 작업자 노드 라우팅 테이블을 통해 송신됩니다. 작업자 노드의 VPN 클라이언트 네트워크에 고정 경로를 추가해야 합니다. vpn-pod IP를 설정한 경로 대상입니다. 모든 k8s 작업자 노드에서 액세스할 수 있습니다.