在GKE上,K8s Ingress是Compute Engine提供的LoadBalancers,需要花费一些费用。 2个月的示例我支付16.97€。
在我的集群中,我有3个命名空间(default
,dev
和prod
),因此为了降低成本,我希望避免产生3个LoadBalancers。问题是如何配置当前一个以指向正确的名称空间?
GKE要求入口的目标服务的类型为NodePort
,由于这种限制,我被困住了。
我想做类似的事情:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
namespace: dev
annotations: # activation certificat ssl
kubernetes.io/ingress.global-static-ip-name: lb-ip-adress
spec:
hosts:
- host: dev.domain.com
http:
paths:
- path: /*
backend:
serviceName: dev-service # This is the current case,'dev-service' is a NodePort
servicePort: http
- host: domain.com
http:
paths:
- path: /*
backend:
serviceName: prod-service # This service lives in 'dev' namespace and is of type ExternalName. Its final purpose is to point to the real target service living in 'prod' namespace.
servicePort: http
- host: www.domain.com
http:
paths:
- path: /*
backend:
serviceName: prod-service
servicePort: http
由于GKE要求提供服务NodePort
,所以我坚持使用prod-service
。
任何帮助将不胜感激。
非常感谢