我正在尝试使用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的坏习惯?
答案 0 :(得分:2)
每个入口都将创建自己的HTTP负载平衡器。如果您需要一个IP,请定义一个具有多个主机路径的入口,每个服务路径一个