#kubernetes #hyperledger-fabric #kubernetes-ingress #nginx-ingress
#кубернетес #hyperledger-ткань #kubernetes-вход #nginx-вход
Вопрос:
Я использую AKS (Azure Kubernetes Service), чтобы развернуть все тканевые контейнеры Hyperledger. Образец сети Fabric успешно запущен в AKS. Но, как и по умолчанию , все контейнеры / модули доступны только внутри кластера.
Как мне использовать ingress, чтобы сделать модули / тканевые контейнеры доступными с помощью внешних IP-адресов?
Я просмотрел некоторые ссылки, но они используют ingress-controller для определения маршрутов для перехода запроса к определенному модулю.
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: hello-world-ingress
namespace: ingress-basic
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/ssl-redirect: "false"
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: aks-helloworld
servicePort: 80
- path: /hello-world-two
backend:
serviceName: ingress-demo
servicePort: 80
Принимая во внимание, что у нас не может быть каких-либо конкретных правил / путей для одноранговых узлов / контейнеров-заказчиков.
Было бы здорово, если бы кто-нибудь мог указать мне на необходимую конфигурацию для этого.
Ответ №1:
Прежде всего, Ingress определяет маршруты к сервисам, а не к модулям. Если у вас есть служба балансировки нагрузки для вашего Ingress-контроллера, вы должны иметь возможность предоставлять доступ к своим приложениям. Вот инструкции по установке.
P.S. Вам не обязательно нужен обратный прокси-сервер для предоставления доступа к вашим сервисам извне. Вы можете сделать это с помощью сервисов NodePort.
P.S.2 Если вам нужны более сложные правила и требования к маршрутизации, я настоятельно рекомендую ознакомиться с Ambassador.
Комментарии:
1. Спасибо, что поделились своими мыслями. Но в Hyperledger Fabric службы предоставляют разные порты для разных протоколов. Каждая служба имеет по крайней мере три открытых порта. Сервисы работают по протоколу TCP и grpc. Не уверен, как это будет работать с Nodeport, поскольку это может привести к путанице при предоставлении доступа к каждому порту для всех служб.