Nginx Inress未连接到服务(ClusterIP) [英] NGINX Ingress is not reaching Service(clusterIP)

查看:20
本文介绍了Nginx Inress未连接到服务(ClusterIP)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在Kubernetes集群内部署一个节点js应用。我已经为此创建了耗尽和服务(ClusterIp),并在nginx入口配置文件中添加了一个角色,但nginx似乎无法访问该服务。

NodeJS APP:

'use strict';

const express = require('express');

// Constants
const PORT = 5678;
const HOST = '0.0.0.0';

// App
const app = express();
app.get('/', (req, res) => {
  console.log("request received");
  res.send('Hello World');
});

app.listen(PORT, HOST);
console.log(`Running on http://${HOST}:${PORT}`);

Dockerfile:

FROM node:14

# Create app directory
WORKDIR /usr/src/app

# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./

RUN npm install
# If you are building your code for production
# RUN npm ci --only=production

# Bundle app source
COPY . .

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

部署:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: apple-app-deployment
  labels:
    app: apple
spec:
  replicas: 2
  selector:
    matchLabels:
      app: apple
  template:
    metadata:
      labels:
        app: apple
    spec:
      containers:
      - name: apple-app
        image: anudcker/node-web-appp:1
        ports:
        - containerPort: 5678

服务:

kind: Service
apiVersion: v1
metadata:
  name: apple-service
spec:
  selector:
    app: apple
  ports:
    - port: 5678 # Default port for image
      targetPort: 5678

入口:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example-ingress
  annotations:
    # kubernetes.io/ingress.class: azure/application-gateway
    ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
      paths:
        - path: /apple
          pathType: Prefix
          backend:
            service:
                name: apple-service
                port:
                    number: 5678
现在,每当我试图通过点击/Apple来访问该服务时,都会得到响应 Cannot GET /apple来自Nginx入口。我在nginx入口控制器吊舱内发现了以下日志。

10.244.1.1 - - [07/May/2021:06:22:29 +0000] "GET /apple HTTP/1.1" 404 144 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" 465 0.004 [demo-apple-service-5678] [] 10.244.0.24:5678 144 0.004 404 5a5bdf8f61d59b665218be0a18a6ab4c

有什么想法吗?

推荐答案

问题是您正在使用networking.k8s.io/v1beta1rewrite-targetapiVersion: networking.k8s.io/v1

您需要将批注更新为新批注:

nginx.ingress.kubernetes.io/rewrite-target: /

这篇关于Nginx Inress未连接到服务(ClusterIP)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆