J'ai créé un cluster en utilisant la plateforme de Google Cloud (moteur conteneur) et déployé une nacelle en utilisant le fichier YAML suivant:Comment exposer le port multiple en utilisant un service d'équilibrage de charge dans Kubernetes
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: deployment-name
spec:
replicas: 1
template:
metadata:
name: pod-name
labels:
app: app-label
spec:
containers:
- name: container-name
image: gcr.io/project-id/image-name
resources:
requests:
cpu: 1
ports:
- name: port80
containerPort: 80
- name: port443
containerPort: 443
- name: port6001
containerPort: 6001
Ensuite, je veux créer un service permettant au pod d'écouter sur tous ces ports. Je sais que oici fichier YAML fonctionne pour créer un service qui écoute sur un port:
apiVersion: v1
kind: Service
metadata:
name: service-name
spec:
ports:
- port: 80
targetPort: 80
selector:
app: app-label
type: LoadBalancer
Cependant quand je veux le pod à écouter sur plusieurs ports comme celui-ci, il ne fonctionne pas:
apiVersion: v1
kind: Service
metadata:
name: service-name
spec:
ports:
- port: 80
targetPort: 80
- port: 443
targetPort: 443
- port: 6001
targetPort: 6001
selector:
app: app-label
type: LoadBalancer
Comment puis-je faire écouter mon pod à plusieurs ports?
Avez-vous essayé avec plusieurs services? – danielepolencic
@danielepolencic merci d'avoir répondu. J'ai essayé avec plusieurs services et cela fonctionne, le problème avec cela est que vous obtenez une adresse IP externe par service. N'existe-t-il aucun moyen d'activer les pods pour écouter plusieurs ports sans avoir plusieurs services ou pour avoir un service qui écoute sur plusieurs ports? – Sebastien