如何在只有一个主机名的同一kubernetes集群上部署多个前端应用程序

我有3个角度应用程序部署在Kubernetes上。我正在尝试使用一个主机名和不同的路径来运行所有3个。这是我的入口。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /$1
  name: test-ingress-deployment
  namespace: my-namespace
spec:
  tls:
  - hosts:
    - dns-name.eastus.cloudapp.azure.com
    secretName: aks-ingress-tls
  rules:
  - host: dns-name.eastus.cloudapp.azure.com
    http:
      paths:
      - backend:
          serviceName: ui-svc
          servicePort: 80
        path: /(.*)
      - backend:
          serviceName: ui-svc-one
          servicePort: 80
        path: /one/?(.*)
      - backend:
          serviceName: ui-svc-two
          servicePort: 80
        path: /two/?(.*)

所有这3个服务都位于不同的名称空间中。应用入口后,我尝试达到的每个端点都会得到503。

wangling568112 回答:如何在只有一个主机名的同一kubernetes集群上部署多个前端应用程序

有关此问题的文档非常稀少,至少我除了Github问题之外没有找到其他东西。但是据我所知,在K8中故意避免了跨名称空间访问,这将是特权提升攻击的主要来源。

据我所知,您确实有两种选择:

  1. 您可以在kube-system名称空间中运行入口和入口控制器。但这不建议使用,因为kube-system仅用于K8s组件,并且很可能会引起安全隐患。
  2. 您可以在服务所在的名称空间中使用入口。但是随后,您需要一个入口控制器,该控制器允许合并并非全部支持afaik的规则。

可能有更多解决方案,也许对K8有更深入了解的人可以对此有所了解。

本文链接:https://www.f2er.com/3154444.html

大家都在问