2017-10-10 202 views
0

暴露K8S服務我有我的AWS ECR(在後的底部描述)名爲hello節點的圖像。如果我在本地運行它並轉到localhost:8080,我會看到「hello world」。無法在AWS訪問互聯網

在我的AWS節點我運行:

kubectl run hello-node --image=xxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/hello-node:v1 --port=8080(賬號阻擋在外)

則:

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

,如果我運行:

kubectl describe service hello-node

我看到

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 

我想在線訪問我打招呼節點的服務(信息編輯)。我想在瀏覽器中訪問某個網址或IP地址,並查看「hello world」。

我試圖去上面列出的IP,負載平衡器入口和端點,但這些網站沒有在瀏覽器中加載。 我怎樣才能在互聯網上訪問此服務?如果需要,我會提供更多信息。

注意:如果我這樣做kubectl port-forward hello-node-621867969-ztxnr 8080那麼我可以訪問它在localhost:我的機器上8080,這樣的東西是至少工作。

你好節點服務:

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 

運行docker build -t hello-node:v1 .

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

運行docker push AWS_ACCOUNT_ID.dkr.ecr.us-east-1.amazonaws.com/hello-node:v1(把我的帳號和區域信息,我驗證了它上傳到我的ECR)

然後我跑我在這篇文章的開頭列出的兩個kubectl命令。

回答

0

我可以通過<loadbalanceringress>:<port>訪問它。老實說,我不記得我曾試過與否(我嘗試了很多地址:端口組合

相關問題