首页 文章

Kubernetes Ingress在GKE上

提问于
浏览
5

我使用KOPS和nginx-ingress在AWS上部署了Kubernetes .

为了评估多个 Cloud (并削减成本),我想部署在GKE上 . 一切都有效,除了Ingress's . (那是AWS上最难的部分) .

下面是我在GKE上使用的Ingress . 它在仪表板中生成两个Ingress,每个Ingress都有一个IP地址 .

如果我将DNS指向这些地址,则拒绝连接 . 我用ping检查DNS结果 .

所有HTTPS都无法连接“无法 Build 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: /

1 回答

  • 4

    Prashanth的评论很有帮助,最终,原生 Cloud Ingress(AWS / GCE)还没有在Kubernetes中完成,足以满足我的目的 . 学习一种比下面的东西更复杂,功能更少的抽象是没有意义的 .

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

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

相关问题