【发布时间】:2016-12-08 15:42:06
【问题描述】:
我使用 KOPS 和 nginx-ingress 在 AWS 上部署了 Kubernetes。
为了评估多个云(并降低成本),我想在 GKE 上进行部署。一切正常,除了该死的 Ingress。 (那是 AWS 上最难的部分)。
下面是我在 GKE 上使用的 Ingress。它在仪表板中创建了两个 Ingress,每个都有一个 IP 地址。
如果我将我的 DNS 指向这些地址,连接将被拒绝。我正在使用 ping 检查 DNS 结果。
除了“502 Bad Gateway”按钮外,所有 HTTPS 都无法连接并显示“无法建立 SSL 连接。”
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: /
```
【问题讨论】:
-
请查看github.com/kubernetes/contrib/blob/master/ingress/controllers/…、github.com/kubernetes/contrib/tree/master/ingress/controllers/…、github.com/kubernetes/contrib/tree/master/ingress/controllers/…。您需要:节点端口服务、健康检查(在与节点端口匹配的 pod 上提供/提供 200 或就绪探测)以及 GCE 中足够的后端配额。
kubectl describe说什么? -
切换到 NodePort,并解决配额问题...
-
现在它从应用程序提供 /,但 /files.css 来自默认后端...
-
@PrashanthB 嗯...这一切看起来都没有完成。我需要一些有用的东西,所以我部署了我在 AWS 上使用的 nginx 控制器,它工作正常。感谢您的帮助 Prashanth!
标签: kubernetes google-kubernetes-engine