Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 使用入口通过contextPath访问外部服务_Kubernetes_Ibm Cloud_Kubernetes Helm_Kubernetes Ingress - Fatal编程技术网

Kubernetes 使用入口通过contextPath访问外部服务

Kubernetes 使用入口通过contextPath访问外部服务,kubernetes,ibm-cloud,kubernetes-helm,kubernetes-ingress,Kubernetes,Ibm Cloud,Kubernetes Helm,Kubernetes Ingress,我有一个带有一组应用程序的Wildfly,没有在kubernetes集群中运行。 让我们说一个是http://wildfly-external/FOO/ 在集群内部,我希望我的集群应用程序能够在不知道wildfly上的contextPath的情况下访问FOO 我们的方法是为这个包含路径的服务生成一个Endpint、服务和入口 服务中心 apiVersion: v1 kind: Service metadata: annotations: meta.helm.sh/rele

我有一个带有一组应用程序的Wildfly,没有在kubernetes集群中运行。 让我们说一个是http://wildfly-external/FOO/

在集群内部,我希望我的集群应用程序能够在不知道wildfly上的contextPath的情况下访问FOO

我们的方法是为这个包含路径的服务生成一个Endpint、服务和入口

服务中心

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: {}

亚马尔酒店

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/在一个pod中时,我在http://wildfly,而不是http://wildfly/FOO. 这看起来像是我通过http://foo/ 而不是通过入口


有可能吗?我想做什么?有什么提示吗?

在我看来,入口在服务之上。 顺序是浏览器->入口(应用程序负载平衡)->服务。现在url
http//foo/
是访问服务而不是入口。您可以使用ingress将上下文映射到服务,但您需要访问带有ingress完整主机名的url。
谢谢,

我是否理解您的意思正确,这将始终访问该服务。要访问入口,我需要访问完整的url,如?