2017-07-07 3 views
1

Je suis un cours sur PluralSight où l'auteur du cours met une image docker sur kubernetes et y accéder via son navigateur. J'essaie de reproduire ce qu'il fait mais je n'arrive pas à atteindre le site. Je crois que je pourrais me connecter à la mauvaise adresse IP.Google conteneur se connecter au service

J'ai un ReplicationController qui est en cours d'exécution 10 pods:

rc.yml

apiVersion: v1 
kind: ReplicationController 
metadata: 
      name: hello-rc 
spec: 
     replicas: 10 
     selector: 
       app: hello-world 
     template: 
      metadata: 
       labels: 
         app: hello-world 
      spec: 
        containers: 
          - name: hello-pod 
           image: nigelpoulton/pluralsight-docker-ci:latest 
           ports: 
             - containerPort: 8080 

J'ai ensuite essayé d'exposer le rc:

kubectl expose rc hello-rc --name=hello-svc --target-port=8080 --type=NodePort 


$ kubectl get services 
NAME   CLUSTER-IP  EXTERNAL-IP PORT(S)   AGE 
hello-svc 10.27.254.160 <nodes>  8080:30488/TCP 30s 
kubernetes 10.27.240.1  <none>  443/TCP   1h 

Mon point final de conteneur google est la suivante: 35.xxx.xx.xxx et lors de l'exécution kubectl describe svc hello-svc le NodePort est 30488

Ainsi j'essaye d'accéder à l'application au 35.xxx.xx.xxx:30488 mais le site ne peut pas être atteint.

Répondre

2

Si vous souhaitez accéder à votre service via le port NodePort, vous devez ouvrir votre pare-feu pour ce port (et cette instance).

Une meilleure façon est de créer un service de type LoadBalancer (--type=LoadBalancer) et d'y accéder sur l'IP que Google vous donnera. N'oubliez pas de supprimer l'équilibreur de charge lorsque vous avez terminé.

+0

J'ai eu de la difficulté, mais pour réussir le cours Pluralsight, il m'a été plus facile de faire un trou dans le pare-feu. Dans le monde réel, je suis sûr qu'un 'LoadBalancer' est le chemin à parcourir. – quickshiftin