【问题标题】:Is it possible to dynamically add hosts to ingress with Kubernetes?是否可以使用 Kubernetes 将主机动态添加到入口?
【发布时间】:2019-02-04 02:07:30
【问题描述】:

如果您正在管理入口服务(例如以下示例),而不是更新下面的入口文件,是否有一种方法可以添加额外的主机/服务(例如 echo3.example.com)而无需应用更新的版本原始文件?

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: echo-ingress
spec:
  rules:
  - host: echo1.example.com
    http:
      paths:
      - backend:
          serviceName: echo1
          servicePort: 80
  - host: echo2.example.com
    http:
      paths:
      - backend:
          serviceName: echo2
          servicePort: 80

# NEW HOST/SERVICE

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: echo-ingress
spec:
  rules:
  - host: echo3.example.com ### <= `echo3` addeded
    http:
      paths:
      - backend:
          serviceName: echo3
          servicePort: 80

有没有办法应用这个新主机而不需要扩展旧文件?

【问题讨论】:

标签: kubernetes kubernetes-ingress


【解决方案1】:

如果您应用这两个文件,第二个文件将覆盖第一个文件,因为它们具有相同的名称。因此,每次添加新规则时都需要编辑原始规则。

避免此问题的一种可能解决方案是使用Contour。在这种情况下,您可以将每个 IngressRoute 保存在单独的资源中,并避免类似的冲突。

在你的情况下,你会有类似的东西:

# ingressroute-echo1.yaml
apiVersion: contour.heptio.com/v1beta1
kind: IngressRoute
metadata:
  name: echo-ingress-1
spec:
  virtualhost:
    fqdn: echo1.example.com
  routes:
    - match: /
      services:
        - name: echo1
          port: 80

# ingressroute-echo2.yaml
apiVersion: contour.heptio.com/v1beta1
kind: IngressRoute
metadata:
  name: echo-ingress-2
spec:
  virtualhost:
    fqdn: echo2.example.com
  routes:
    - match: /
      services:
        - name: echo2
          port: 80

# ingressroute-echo3.yaml
apiVersion: contour.heptio.com/v1beta1
kind: IngressRoute
metadata:
  name: echo-ingress-3
spec:
  virtualhost:
    fqdn: echo3.example.com
  routes:
    - match: /
      services:
        - name: echo3
          port: 80

【讨论】:

  • 谢谢,我应该看到名称不同不会覆盖文件初始配置。
【解决方案2】:

我的意思是你可以把它做成一个单独的 Ingress 对象/文件,不需要它在同一个文件中。或者你可以使用 Kustomize 之类的东西。

【讨论】:

    【解决方案3】:

    你也可以用不同的注解制作不同的入口对象。用主机和服务制作两个入口文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-18
      • 1970-01-01
      • 2018-07-19
      • 1970-01-01
      • 2012-08-05
      • 1970-01-01
      • 2021-05-31
      • 2018-10-20
      相关资源
      最近更新 更多