我使用KOPS和nginx-ingress在AWS上部署了Kubernetes。
要评估多个云(并削减成本),我想部署在GKE上。一切都有效,除了Ingress的。 (那是AWS上最难的部分)。
以下是我在GKE上使用的Ingress。它在仪表板中生成两个Ingress,每个Ingress都有一个IP地址。
如果我将DNS指向这些地址,则拒绝连接。我用ping检查DNS结果。
所有HTTPS无法连接“无法建立SSL连接。”,除了“502 Bad Gateway”按钮
HTTP无法连接502,除了admin,即503。
在Google Cloud Platform信息中心中,我看到两个负载均衡器。 “all”指向我的SSL证书。 “按钮”没有使用HTTPS,但这是另一个问题。
显然我错过了一些东西。我错过了什么?
我正在使用kubectl v1.4.6,而GKE上的任何版本都会在昨天安装。
```
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
# this is for nginx ingress controler on AWS
# kubernetes.io/ingress.class: "nginx"
name: all-ingress
spec:
tls:
- hosts:
- admin-stage.example.com
- dashboard-stage.example.com
- expert-stage.example.com
- signal-stage.example.com
- stage.example.com
secretName: tls-secret
rules:
- host: admin-stage.example.com
http:
paths:
- backend:
serviceName: admin-service
servicePort: http-port
path: /
- host: dashboard-stage.example.com
http:
paths:
- backend:
serviceName: dashboard-service
servicePort: http-port
path: /
- host: expert-stage.example.com
http:
paths:
- backend:
serviceName: expert-service
servicePort: http-port
path: /
- host: signal-stage.example.com
http:
paths:
- backend:
serviceName: signal-service
servicePort: http-port
path: /
- host: stage.example.com
http:
paths:
- backend:
serviceName: www-service
servicePort: http-port
path: /
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
# this is for nginx ingress controler on AWS
# kubernetes.io/ingress.class: "nginx"
ingress.kubernetes.io/ssl-redirect: "false"
name: button-ingress
spec:
tls:
- hosts:
- button-stage.example.com
secretName: tls-secret
rules:
- host: button-stage.example.com
http:
paths:
- backend:
serviceName: button-service
servicePort: http-port
path: /
```
答案 0 :(得分:4)
Prashanth的评论很有帮助,最终,原生云Ingress(AWS / GCE)还没有在Kubernetes完成,足以满足我的目的。没有必要学习一种比下面的东西更复杂,功能更少的抽象。
我最终使用了这个答案中的nginx-ingress:Kubernetes 1.4 SSL Termination on AWS
在生成的Ingress上是一个IP,您可以指向DNS(而不是"外部端点"在服务上)。祝你好运!