如何在 Pulumi 上使用带入口的路径?

How to use paths with ingress on Pulumi?

this pulumi walkthrough 之后,我需要通过 nginx 入口控制器公开 2 个服务:kuardrstudiogp。 kuard 应用程序只是为了证明 kubernetes 已启动,rstudio 应用程序是我想添加到集群中的东西。

我想在 apps.example.com 访问 kuard 服务,在 apps.example.com/rstudio 访问 rstudio 服务。但是,我只能通过将其中一台主机更改为 apps.example.rstudio.com 来同时在线,所以我有 2 台主机而不是一台。

是否可以使用入口路径来公开两个使用相同入口规则的服务?如何使用相同的主机名访问具有不同路径的两个服务,例如apps.example.com/kuardapps.example.com/rstudio?

curl -Lv -H 'Host: apps.example.com' <PUBLIC-IP>.

当前 Kuard 入口:

// Create the kuard Ingress
const ingress = new k8s.extensions.v1beta1.Ingress(namekuard,
   {
        metadata: {
            labels: labels,
            namespace: namespaceName,
            annotations: {"kubernetes.io/ingress.class": "nginx"},
       },
        spec: {
            rules: [
                {
                    host: "apps.example.com",
                    http: {
                        paths: [
                           {
                                path: "/",
                               backend: {
                                    serviceName: serviceName,
                                    servicePort: "http",
                                }
                           },
                        ],
                    },
                }
            ]
        }
    },
    {provider: clusterProvider}
);

当前的 RStudio 入口(请参阅我尝试但未成功的注释行):

const ingress_rs = new k8s.extensions.v1beta1.Ingress(rsname,
    {
        metadata: {
            labels: labels_rs,
            namespace: namespaceName,
            annotations: {"kubernetes.io/ingress.class": "nginx"},
        },
        spec: {
            rules: [
                {
                    host: "apps.example.rstudio.com",
                    http: {
                        paths: [
                            {
                               path: "/",
                               backend: {
                                   serviceName: serviceName_rs,
                                   servicePort: "http",
                               }
                           },
//                            {
//                                path: "/rstudio",
//                                pathType: "Prefix",
//                                backend: {
//                                    serviceName: serviceName_rs,
//                                    servicePort: "http",
//                                }
//                            },
                        ],
                    },
                }
            ]
        }
    },
    {provider: clusterProvider}
);

发现问题出在我的应用程序期望从根 url 提供服务。