Comment exposer plusieurs de port à l'aide d'un équilibreur de charge des services dans kubernetes

J'ai créé un cluster à l'aide de google cloud plateform (conteneur moteur) et déployé un pod à l'aide d'suivantes fichier yaml:

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

Alors je veux créer un service qui permet à la nacelle pour écouter sur tous ces ports. Je sais qu'il suit fichier yaml travaille à la création d'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 cela, 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 mon pod écouter plusieurs ports?

Avez-vous essayé avec plusieurs services?
merci d'avoir répondu. J'ai essayé avec plusieurs services et que ça fonctionne, le problème avec cela est que vous obtenez une adresse IP externe par service. Il n'y a pas moyen d'activer les gousses d'écouter plusieurs ports sans avoir de multiples services ou d'avoir un service qui écoute sur plusieurs ports?

OriginalL'auteur Sebastien | 2017-07-17