Je déploie une application Web à l'aide de Google Kubernetes Engine et je souhaite la rendre accessible via un équilibreur de charge sur une adresse IP statique existante que je contrôle dans le cadre du même projet dans Google Cloud Platform, car le nom de domaine que je souhaite utiliser pointe déjà vers cette adresse IP.
Le fichier yaml que j'ai utilisé pour le pod est:
apiVersion: v1
kind: Pod
metadata:
name: my-pod
labels:
app: my-app
spec:
containers:
- name: my-container
image: gcr.io/my-project/my-app:latest
Je peux configurer un équilibreur de charge en utilisant:
apiVersion: v1
kind: Service
metadata:
name: my-load-balancer
spec:
ports:
- port: 80
targetPort: 80
selector:
app: my-app
type: LoadBalancer
Cela fournit une adresse IP externe sur laquelle l'application est accessible, mais je ne trouve aucun moyen de la configurer pour utiliser l'adresse IP que je souhaite. La documentation des services mentionne un paramètre spec.clusterIP, mais cela ne semble pas se rapporter à l'IP externe. De même, une fois l'équilibreur de charge configuré, le champ status.loadBalancer.ingress.ip du service est défini sur son adresse IP externe, mais cela ne semble pas être un paramètre configurable.
Comme alternative, j'ai essayé de créer manuellement une règle de transfert dans la console Google Compute Engine pour diriger le trafic de mon adresse IP statique vers le pool cible configuré par Kubernetes, mais lorsque j'essaie de me connecter, la connexion est refusée.
Existe-t-il un moyen de faire ce que je veux - d'exposer un pod Kubernetes (ou un contrôleur de réplication) sur le moteur Google Kubernetes sur une adresse IP statique choisie?
la source
Bonnes nouvelles. Cela sera corrigé dans Kubernetes v1.1. Vous pouvez définir le
service.spec.loadBalancerIP
champ sur une adresse IP que vous connaissez.Précédent:
C'est une caractéristique qui est tombée à travers les mailles du filet. Il était censé fonctionner (et peut-être même avoir fonctionné à un moment donné), mais n'a pas été bien testé et s'est cassé en cours de route, puis a été conçu accidentellement (temporairement).
C'est sur ma liste restreinte pour les choses à corriger après 1.0.
https://github.com/GoogleCloudPlatform/kubernetes/issues/10323
la source