Я успешно протестировал ingress в minikube, никаких проблем. Затем я развернул свое приложение в ubuntu, если я использую службу NodePort, она также работает очень хорошо. После этого я подумал использовать Ingress в качестве балансировщика нагрузки для трафика маршрутизатора, чтобы внешний URL-адрес больше не был уродливым длинным портом. Но, к сожалению, у меня не получалось, всегда терпел поражение.
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: dv
annotations:
ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /test
backend:
serviceName: ngsc
servicePort: 3000
kubectl get ing
NAME HOSTS ADDRESS PORTS AGE
dv * 80 12s
root@kmaster:/home/ubuntu/datavisor# kubectl describe ing dv
Name: dv
Namespace: default
Address:
Default backend: default-http-backend:80 (<none>)
Rules:
Host Path Backends
---- ---- --------
*
/ ngsc:3000 (192.168.1.14:3000,192.168.1.17:3000,192.168.1.18:3000)
Annotations:
ingress.kubernetes.io/rewrite-target: /
Events: <none>
Затем, когда я попытался получить доступ, я получил следующую ошибку:
curl http://cluster-ip
curl: (7) Failed to connect to <cluster-ip> port 80: Connection refused
Я действительно надеюсь, что внешний URL-адрес будет выглядеть как http://ipaddress вместо http://ipaddress:30080
Я знаю, что могу легко использовать nginx из kubernete, чтобы удовлетворить это требование, но это не идеально, я хочу, чтобы kubernete справился с этим, чтобы даже порт обслуживания изменился, все по-прежнему работает.
Можете ли вы проверить вывод выше и сказать, в чем ошибка? Я проверил много документов, все места казались сосредоточенными только в minikube, ничего не связанного с реальным развертыванием кластера. Нужно ли мне что-нибудь устанавливать, чтобы ingress работал? когда я использую kubectl get all --all-namespaces, я вообще не видел установленного входящего контроллера. Как я могу его установить при необходимости?
Спасибо за ваш совет