如何解决在Kubernetes部署中无法获取/? [英] how to resolve Cannot GET / in a kubernetes deployment?
问题描述
我有一个名为 process-core的node.js应用程序,它具有运行另一个名为 page-core的node.js应用程序的主要逻辑。通过 Process-core,我正在部署分发文件夹(静态内容)的页面核心应用程序。我正在使用kubernetes进行部署。
I have an node.js application called "process-core" which has the main logic to run another node.js app called "page-core".Through "Process-core" I am deploying the distribution folder(static contents) of the "page-core" application.I am deploying this using kubernetes.
用于为进程核心构建映像的dockerfile
dockerfile used to build image for "process-core"
FROM node:8
RUN mkdir -p usr/src/app
WORKDIR /usr/src/app
COPY . .
WORKDIR /usr/src/app
RUN npm install
CMD [ "npm","start" ]
我的server.js就像这样-
my server.js goes like this-
var express = require('express');
var cors = require('cors')
var app = express();
var path = require('path');
var router = express.Router();
var request = require('request');
var api = require('./server/api.js')
const base_url = 'http://localhost:8080/api/';
const static_dir = '/home/vignesh/page-core-devbranch/dist'; // location of
const assets_dir = path.join(__dirname + '/server/assets/'); dist folder
const tools_dir = path.join(__dirname + '/server/tools/');
const index_file = path.join(static_dir + '/index.html');
/* static */
app.use(cors())
app.use(express.static(static_dir));
app.use('/assets', express.static(assets_dir));
app.use('/tools', express.static(tools_dir));
/* listen */
app.listen(5000);
node.yaml
node.yaml
apiVersion: v1
kind: Service
metadata:
labels:
node: test
name: nodetest
spec:
ports:
- nodePort: 30000
port: 5000
protocol: TCP
targetPort: 5000
selector:
node: test
type: NodePort
---
apiVersion: v1
kind: Pod
metadata:
name: nodetest
labels:
node: test
spec:
containers:
- name: node-test
image: suji165475/devops-sample:processcore
ports:
- containerPort: 5000
当我按下 http://206.189.22.155:30000/ 我收到一条错误消息,说无法获取/
When I hit http://206.189.22.155:30000/ i get an error saying Cannot GET /
推荐答案
FROM node:8
RUN mkdir -p usr/src/app
WORKDIR /usr/src/app
COPY . .
WORKDIR /usr/src/app
RUN npm install
EXPOSE 5000
CMD [ "npm","start" ]
您尚未在docker文件中公开docker镜像的端口,请添加一行作为 EXPOSE 5000
从Docker容器中打开容器端口5000。
You have not expose port from docker image in docker file please add one line as EXPOSE 5000
to open the container port 5000 from docker container.
这篇关于如何解决在Kubernetes部署中无法获取/?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!