#kubernetes #ibm-cloud #kubernetes-helm #kubernetes-ingress
#kubernetes #ibm-cloud #kubernetes-рулевой #kubernetes-вход
Вопрос:
У меня есть Wildfly с набором приложений, не запущенных в кластере kubernetes. Допустим, один из них http://wildfly-external/FOO/
Изнутри кластера я хочу, чтобы мои кластерные приложения могли получать доступ к FOO, не зная ContextPath в wildfly.
Наш подход заключался в создании конечной точки, службы и входа для этой службы, содержащего путь
service.yaml
apiVersion: v1
kind: Service
metadata:
annotations:
meta.helm.sh/release-name: dns
meta.helm.sh/release-namespace: test
creationTimestamp: "2020-08-31T17:32:08Z"
labels:
app.kubernetes.io/instance: dns
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: foo
helm.sh/chart: dns-1.0.0-snapshot
name: foo
namespace: test
resourceVersion: "151848872"
selfLink: /api/v1/namespaces/test/services/foo
uid: e5607cd4-ebaf-11ea-9f17-005056a7cff9
spec:
clusterIP: 10.200.149.146
ports:
- name: foo
port: 80
protocol: TCP
targetPort: 13000
sessionAffinity: None
type: ClusterIP
status:
loadBalancer: {}
ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
meta.helm.sh/release-name: dns
meta.helm.sh/release-namespace: test
creationTimestamp: "2020-08-31T17:32:08Z"
generation: 1
labels:
app.kubernetes.io/instance: dns
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: foo
helm.sh/chart: dns-1.0.0-snapshot
name: foo
namespace: test
resourceVersion: "151848901"
selfLink: /apis/extensions/v1beta1/namespaces/test/ingresses/foo
uid: e56cc8c9-ebaf-11ea-9f17-005056a7cff9
spec:
rules:
- http:
paths:
- backend:
serviceName: foo
servicePort: http
path: /FOO
status:
loadBalancer:
ingress:
- ip: 10.6.1.1
К сожалению, когда curl http //foo / внутри модуля, я попадаю на стартовую страницу wildfly в http://wildfly , а не приложение в http://wildfly/FOO .
Похоже, что я получаю доступ к службе через http://foo / и не проходит через вход.
Возможно ли сделать то, что я хочу сделать? Какие-либо подсказки?
Ответ №1:
С моей точки зрения, вход находится поверх службы. Последовательность такова: браузер-> вход (баланс нагрузки приложения)-> служба. Теперь URL http//foo/
предназначен для доступа к службе вместо ingress. Вы можете использовать ingress для сопоставления контекста с сервисом с помощью перезаписи ingress, но вам нужен URL-адрес посещения с полным именем хоста ingress. Спасибо,
Комментарии:
1. Правильно ли я вас понял, что foo всегда будет обращаться к службе. Чтобы получить доступ к Ingress, мне нужно получить доступ к полному URL, например foo.cluster.xy.com ?