2017-10-10 3 views
0

J'ai une image appelée hello-node sur mon AWS ECR (décrite en bas du message). Si je l'exécute localement et aller à localhost: 8080 je vois "bonjour monde".Impossible d'accéder au service k8 exposé sur AWS sur Internet

Sur mon nœud sur AWS je lance:

kubectl run hello-node --image=xxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/hello-node:v1 --port=8080 (numéro de compte bloqué)

alors:

kubectl expose deployment hello-node --type="LoadBalancer"

et si je lance:

kubectl describe service hello-node

Je vois (info édité)

Name:   hello-node 
Namespace:  default 
Labels:   run=hello-node 
Annotations:  <none> 
Selector:  run=hello-node 
Type:   LoadBalancer 
IP:   xx.xx.xx.xx 
LoadBalancer Ingress: xxxxxxxxx-xxxxxx.us-east-1.elb.amazonaws.com 
Port:   <unset> 8080/TCP 
NodePort:  <unset> 32059/TCP 
Endpoints:  xx.xx.xx.xx:8080 
Session Affinity: None 

J'essaye d'accéder à mon service de noeud salutaire en ligne. Je veux aller à une adresse Web ou une adresse IP dans mon navigateur et voir «Bonjour tout le monde».

J'ai essayé d'accéder à l'adresse IP, LoadBalancer Ingress et Endpoints listés ci-dessus, mais ces sites ne se chargent pas dans mon navigateur. Comment puis-je accéder à ce service sur Internet? Je fournirai plus d'informations si nécessaire. NOTE: si je fais kubectl port-forward hello-node-621867969-ztxnr 8080 alors je peux y accéder sur localhost: 8080 sur ma machine, donc quelque chose fonctionne au moins.

Service bonjour-noeud:

Source here under 'Create an app, package it in a container and publish to a Docker registry' section

server.js:

var http = require('http'); 
var handleRequest = function(request, response) { 
    response.writeHead(200); 
    response.end("Hello World!"); 
} 
var www = http.createServer(handleRequest); 
www.listen(8080); 

Dockerfile:

FROM node:6.9.2 
EXPOSE 8080 
COPY server.js . 
CMD node server.js 

run docker build -t hello-node:v1 .

course docker tag hello-node:v1 AWS_ACCOUNT_ID.dkr.ecr.REGION.amazonaws.com/hello-node:v1

run docker push AWS_ACCOUNT_ID.dkr.ecr.us-east-1.amazonaws.com/hello-node:v1 (mis dans mes informations de compte et de la région, et je vérifiais qu'il est téléchargé sur mon ECR)

Puis je courais les deux kubectl commandes I énumérés dans le début de ce post .

Répondre

0

Je peux y accéder par <loadbalanceringress>:<port>. Honnêtement, je ne me souviens pas si j'avais essayé ça ou pas (j'ai essayé beaucoup d'adresses: Combinaisons de port.)