1 votes

Google Cloud VPC Alias IP Routing Across Zones

J'ai une plate-forme k8s multi-cluster/multi-zone fonctionnant sur Google Kubernetes Engine. Le réseau VPC sous-jacent de GCP fonctionne en mode de routage global. Les services k8s se voient attribuer des adresses IP internes (clusterIP) via des sous-réseaux Alias IP.

Je peux pinguer les nœuds d'un cluster à l'autre donc il n'y a pas de problèmes avec les règles de pare-feu ou le routage en général mais je ne peux pas me connecter aux services individuels sur leurs Alias IP internes à travers les clusters.

Je peux me connecter depuis d'autres nœuds et conteneurs sur le même cluster aux services mais si je crée une instance en dehors du cluster k8s dans la même zone je ne peux pas me connecter.

Il semble probable que les plages d'adresses IP Alias ne sont pas routées même si les sous-réseaux apparaissent dans la table de routage du VPC.

Y a-t-il un moyen de s'assurer que tous les sous-réseaux Alias IP sont correctement routés dans l'ensemble du VPC?

Quelques détails...

kubectl get services --namespace production
NAME                               TYPE           CLUSTER-IP    EXTERNAL-IP     PORT(S)                         AGE
elasticsearch                      LoadBalancer   10.0.64.103   xxx.xxx.xxx.xxx   9200:30182/TCP,9300:31166/TCP   1m

gcloud compute routes list
NAME                            NETWORK  DEST_RANGE     NEXT_HOP                  PRIORITY
default-route-ac89edf7c623eb22  foo      10.0.64.0/19   foo                       1000

Le clusterIP est dans la plage de sous-réseau répertoriée mais n'est pas accessible en dehors du cluster k8s local.

1voto

Nur Points 376

Ceci est un comportement attendu avec votre configuration actuelle. Je crois que ce que vous rencontrez est une restriction des alias IPs, qui est documentée dans cette documentation GCP sur "Création de clusters VPC natifs en utilisant les Alias IPs":

"Les adresses IP des clusters pour les services internes restent uniquement disponibles depuis l'intérieur du cluster. Si vous souhaitez accéder à un service Kubernetes depuis l'intérieur du VPC, mais depuis l'extérieur du cluster (par exemple, depuis une instance Compute Engine), utilisez un équilibreur de charge interne."

Vous devriez donc envisager d'utiliser un équilibrage de charge interne pour pouvoir accéder aux services depuis l'extérieur qui s'exécutent à l'intérieur d'un cluster.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X