【问题标题】:Kubernetes Ingress on GKEGKE 上的 Kubernetes 入口
【发布时间】: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: /
```

【问题讨论】:

标签: kubernetes google-kubernetes-engine


【解决方案1】:

Prashanth 的 cmets 很有帮助,最后,原生云 Ingress (AWS/GCE) 在 Kubernetes 中还没有完成,不足以满足我的目的。学习一个比下面的东西更复杂、功能更少的抽象是没有意义的。

我最终使用了来自这个答案的 nginx-ingress:Kubernetes 1.4 SSL Termination on AWS

在生成的 Ingress 上是一个 IP,您可以指向 DNS(而不是服务上的“外部端点”)。祝你好运!

【讨论】:

  • 你最终是否也在谷歌上使用了 nginx-ingress ?我认为 GKE 上的唯一选择是 google 负载均衡器。
  • @lazyfunctor 是的,我在 Google Cloud 上也使用了相同的 nginx 入口。
猜你喜欢
  • 2019-03-24
  • 1970-01-01
  • 2017-11-13
  • 2021-05-12
  • 2021-07-11
  • 2020-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多