#nginx #kubernetes #nginx-ingress #k3s
Вопрос:
Я не могу сопоставить какой-либо путь в правилах, которые я упомянул во входном ресурсе. Только «/» по умолчанию сопоставляется с сервисом, другие пути (shyam.локальный/образец, например) возвращает :
Не удается ПОЛУЧИТЬ /образец .
Вот мой входной ямл :
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
spec:
rules:
- host: "shyam.local"
http:
paths:
- path: "/"
pathType: Prefix
backend:
service:
name: my-service
port:
number: 3000
- path: "/sample"
pathType: Prefix
backend:
service:
name: mongo-express-service
port:
number: 8081
Не уверен , что это означает какой-то вред, но я вижу ошибку в бэкэнде по умолчанию, упомянутом во входе
Вот мой вывод для kubectl describe ingress example-ingress
Name: example-ingress
Namespace: default
Address: 192.168.43.130
Default backend: default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
Rules:
Host Path Backends
---- ---- --------
shyam.local
/ my-service:3000 (10.42.0.83:3000,10.42.0.84:3000,10.42.0.85:3000 1 more...)
/sample mongo-express-service:8081 (10.42.0.62:8081)
Annotations: <none>
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Sync 13m (x6 over 41m) nginx-ingress-controller Scheduled for sync
Я использую nginx-вход с k3s, как упоминалось здесь.
Вот мой вывод для kubectl get all -n ingress-nginx
NAME READY STATUS RESTARTS AGE
pod/ingress-nginx-admission-create-bmn9s 0/1 Completed 0 59m
pod/ingress-nginx-admission-patch-6tx6l 0/1 Completed 1 59m
pod/ingress-nginx-controller-7d779d8ccf-d7ddv 1/1 Running 0 56m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/ingress-nginx-controller-admission ClusterIP 10.43.224.186 <none> 443/TCP 59m
service/ingress-nginx-controller NodePort 10.43.233.81 <none> 80:32069/TCP,443:31746/TCP 59m
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/ingress-nginx-controller 1/1 1 1 59m
NAME DESIRED CURRENT READY AGE
replicaset.apps/ingress-nginx-controller-7d779d8ccf 1 1 1 56m
replicaset.apps/ingress-nginx-controller-6cb6fdd64b 0 0 0 59m
NAME COMPLETIONS DURATION AGE
job.batch/ingress-nginx-admission-create 1/1 21s 59m
job.batch/ingress-nginx-admission-patch 1/1 22s 59m
Есть какие — либо предложения о том, что может быть причиной этого ?
Ответ №1:
Обнаружена проблема, она возникла из-за отсутствия аннотации во входном ресурсе. Для потомков , вот обновленный yaml для входного ресурса:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
annotations:
# kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /sample
pathType: Prefix
backend:
service:
name: my-service
port:
number: 3000
- path: /
pathType: Prefix
backend:
service:
name: mongo-express-service
port:
number: 8081