我是Kubernetes&泊坞窗。我创建了一个简单的nodejs应用程序并部署在BlueMix Kubernetes上。但我无法访问互联网上的应用程序。 ip& kubernetes中提到的港口无法进入。有人可以帮助我。
我试图http://10.76.193.146:31972,但它没有通过。我不确定这个公共IP是否为10系列。
我还尝试了蓝色混合kubernetes集群中提到的公共IP(http://184.173.1.79:31972) - 下面的截图。但那也失败了。
这是我遵循的步骤。
// Load the http module to create an http server. var http = require('http'); // Configure our HTTP server to respond with Hello World to all requests. var server = http.createServer(function (request, response) { response.writeHead(200, {"Content-Type": "text/plain"}); response.end("Hello World\n"); }); // Listen on port 8000, IP defaults to 127.0.0.1 server.listen(8000); // Put a friendly message on the terminal console.log("Server running at http://127.0.0.1:8000/");
---------- package.json
{ "name": "helloworld-nodejs", "version": "0.0.1", "description": "First Docker", "main": "app.js", "scripts": { "start": "PORT=8000 node ./app.js" }, "author": "", "license": "ISC" }
在本地创建一个docker容器并运行docker。它运作正常
将Bluemix注册表上的docker容器上载为
registry.ng.bluemix.net/testkubernetes/helloworld-nodejs:0.0.1
使用以下YAML文件在Kubernetes中创建节点和服务
----------节点YAML文件
apiVersion: v1 kind: Pod metadata: name: helloworld-nodejs labels: name: helloworld-nodejs spec: containers: - name: helloworld-nodejs image: registry.ng.bluemix.net/testkubernetes/helloworld-nodejs:0.0.1 ports: - containerPort: 8000
----------服务YAML
apiVersion: v1 kind: Service metadata: name: helloworld-nodejs labels: name: helloworld-nodejs spec: type: NodePort selector: name: helloworld-nodejs ports: - port: 8080
答案 0 :(得分:3)
由于您的服务port
与您的广告管理系统containerPort
不同,因此您必须在服务中指定targetPort
。
spec:
type: NodePort
selector:
name: helloworld-nodejs
ports:
- port: 8080
targetPort: 8000
根据targetPort
上的Kubernetes documentation,它是:
要在受其定位的广告连播上访问的端口的编号或名称 服务。 ....如果没有指定,那么'端口的值为'领域 使用(身份图)。