#nginx #kubernetes #kubernetes-ingress #metallb
#nginx #kubernetes #kubernetes- вход #metallb
Вопрос:
У меня есть кластер kubernetes из чистого металла с metal LB и ngnix, и я могу получить доступ к nginx через порт 80 и посмотреть страницу приветствия. Я применил входной ресурс, но все же не могу получить доступ к своей службе, хотя я могу получить доступ к своей службе через workers (на указанном nodeport). Есть ли что-то, чего мне здесь не хватает?
Вход:
apiVersion: networking.k8s.io/v1beta1 # for versions before 1.14 use extensions/v1beta1
kind: Ingress
metadata:
name: ingress
spec:
rules:
- http:
paths:
- path: /rest/endpoints/hello
backend:
serviceName: microservices-service
servicePort: 8085
- path: /rest/endpoints/calculateIterationTotalCapcity
backend:
serviceName: microservices-service
servicePort: 8085
Обслуживание:
apiVersion: v1
kind: Service
metadata:
name: microservices-service
spec:
selector:
app: microservices-deployment
ports:
- port: 8085
targetPort: 8085
nodePort: 30000
type: NodePort
Развертывание:
apiVersion: apps/v1
kind: Deployment
metadata:
name: microservices-deployment
labels:
app: microservices-deployment
spec:
replicas: 3
template:
metadata:
name: microservices-deployment
labels:
app: microservices-deployment
spec:
containers:
- name: microservices-deployment
image: ** my image **
imagePullPolicy: Always
ports:
- containerPort: 8085
restartPolicy: Always
selector:
matchLabels:
app: microservices-deployment
Обновить:
Мне удалось отследить журналы, и я вижу эти подозрительные журналы:
- - [30/Aug/2020:13:43:12 0000] "GET /rest/endpoints/hello HTTP/1.1" 404 555 "-"**** "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36" "-"
2020/08/30 13:43:12 [error] 28#28: *7 open() "/usr/share/nginx/html/rest/endpoints/hello" failed (2: No such file or directory), client:**** , server: localhost, request: "GET /rest/endpoints/hello HTTP/1.1", host: "****"
Комментарии:
1. Какую команду curl вы запускаете, чтобы получить к ней доступ? В чем ошибка? Добавление журналов из модулей контроллера входа nginx
2. @ArghyaSadhu Я пытаюсь получить к нему доступ через браузер (это запрос get). Я не вижу никаких журналов из модулей
3. @YaakovShami Мы мало что можем сказать без журналов / сообщений об ошибках. Попробуйте отладить модули и попытайтесь найти любую соответствующую информацию, которой вы могли бы поделиться с нами.
4. @OhHiMark Я смог отследить журналы. Пожалуйста, ознакомьтесь с обновлением в исходном сообщении.
5. @YaakovShami Спасибо. Не могли бы вы проверить, существует ли
/usr/share/nginx/html/rest/endpoints/hello
каталог / файл, а также какие разрешения у него есть?
Ответ №1:
Сообщение об ошибке: No such file or directory
приходит от Nginx и указывает на неправильную конфигурацию, которая приводит к неправильному запросу.
Самый простой способ исправить это — просто создать каталог / файл, соответствующий конфигурации Nginx, или настроить саму конфигурацию.
Не забудьте также проверить права доступа к каталогу / файлу и при необходимости обновить их с помощью chown
команды.
Комментарии:
1. Привет, я не совсем понял. У меня есть файл spring jar, содержащий весь мой код, как мне настроить nginx для этого? У меня вообще нет каталога под названием «nginx» в каталоге /usr/share.
2. Nginx пытается получить доступ к
/usr/share/nginx/html/rest/endpoints/hello
, который не существует. Вам нужно проверить свойnginx.conf
файл и посмотреть, есть ли какие-либо неверно настроенные или отсутствующиеlocation
файлы.3. Я не могу найти файл nginx.conf (в / etc у меня нет папки ngnix, я установил ее с манифестами)
4. По умолчанию файл конфигурации
nginx.conf
размещается в каталоге/usr/local/nginx/conf
,/etc/nginx
или/usr/local/etc/nginx
.5. Я не нашел его ни в одном из этих каталогов