我的AWS ECR上有一个名为hello-node的图像(在帖子底部描述)。如果我在本地运行并转到localhost:8080,我会看到" hello world。"
在我在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
我正在尝试在线访问我的hello-node服务。我想在我的浏览器中找到一些网址或IP地址,并查看“你好世界”。&#39;
我已尝试访问上面列出的IP,LoadBalancer Ingress和Endpoints,但这些网站未在我的浏览器中加载。 如何在互联网上访问此服务? 如果需要,我会提供更多信息。
注意:如果我kubectl port-forward hello-node-621867969-ztxnr 8080
,那么我可以在我的机器上的localhost:8080上访问它,所以至少有一些工作。
hello-node服务:
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 :(得分:0)
我可以通过<loadbalanceringress>:<port>
访问它。老实说,我不记得我是否曾经尝试过(我试过了很多地址:端口组合。