同一集群中的不同入口绑定到不同地址

时间:2019-07-17 18:48:14

标签: kubernetes google-kubernetes-engine google-deployment-manager

我正在尝试使用Google的Deployment Manager和Kubernetes Engine从头开始构建kubernetes环境。到目前为止,群集已配置为承载两个应用程序。每个应用程序都由专有服务提供服务,该服务又从专有入口接收流量。这两个入口都是使用相同的Deployment Manager jinja模板创建的:

- name: {{ NAME_PREFIX }}-ingress
  type: {{ CLUSTER_TYPE_BETA }}:{{ INGRESS_COLLECTION }}
  metadata:
    dependsOn:
    - {{ properties['cluster-type-v1beta1-extensions'] }}
  properties:
    apiVersion: extensions/v1beta1
    kind: Ingress
    namespace: {{ properties['namespace'] | default('default') }}
    metadata:
      name: {{ NAME_PREFIX }}
      labels:
        app: {{ env['name'] }}
        deployment: {{ env['deployment'] }}
    spec:
      rules:
      - host: {{ properties['host'] }}
        http:
          paths:
          - backend:
              serviceName: {{ NAME_PREFIX }}-svc
              servicePort: {{ properties['node-port'] }}

环境部署工作正常。但是,我希望两个入口都将绑定到相同的外部地址,但不会发生。我如何设置模板以强制执行此限制?更笼统地说,为环境的每个基于主机的规则生成一个入口是否被认为是kubernetes的坏习惯?

1 个答案:

答案 0 :(得分:2)

每个入口都将创建自己的HTTP负载平衡器。如果您需要一个IP,请定义一个具有多个主机路径的入口,每个服务路径一个