Dockerfile 似乎没有暴露端口

时间:2021-03-12 18:33:44

标签: docker nginx kubernetes port

我正在尝试在端口 8080 上运行一个简单的节点服务器,但是使用以下配置,任何尝试访问子域的尝试都会导致 502 Bad Gateway 错误。如果我去节点,我可以看到容器本身似乎没有打开任何端口。那么,假设我已经正确检查了所有内容,我还需要在配置中做些什么来打开节点服务器的端口?

编辑:如果我通过 ssh 进入 pod 和 curl 上的 8080 localhost,我可以访问节点服务器。

enter image description here

Dockerfile

FROM node:12.18.1

WORKDIR /app
COPY ["package.json", "package-lock.json*", "./"]
RUN npm install 
COPY . .
RUN npm run build

EXPOSE 8080
CMD [ "node", "server.js" ]

k8s 部署

spec:
  containers:
  - name: test
    image: test_image
    ports:
    - name: http
      protocol: TCP
      containerPort: 8080

服务 yaml

apiVersion: v1
kind: Service
metadata:
  name: test-service
spec:
  ports:
  - name: http
    port: 80
    targetPort: 8080
    protocol: TCP
  - name: https
    port: 443
    targetPort: 8080
    protocol: TCP
  selector:
    app: test-deployment
  type: NodePort
  externalTrafficPolicy: Cluster

入口

spec:
  rules:
  - host: dev.test.com
    http:
      paths:
      - backend:
          serviceName: test-service
          servicePort: 80
        path: /

1 个答案:

答案 0 :(得分:3)

这最终是在应用程序方面。服务器需要绑定到 0.0.0.0 而不是 127.0.0.1

enter image description here