【问题标题】:Kubernetes- How to set up Ingress?Kubernetes - 如何设置 Ingress?
【发布时间】:2018-07-18 22:40:19
【问题描述】:
 I have an application running on 1001. I deployed it to a container in port 80.

我该如何使用 Ingress? 我尝试使用带有 --targetPort=1001 的 NodePort,并在Ingress.yaml 的 servicePort 中添加了 80。

kubectl 暴露部署测试 --target-port=1001 --type=NodePort

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test-ingress
spec:
  backend:
    serviceName: test
    servicePort: 80

我遇到错误

找不到后端 - 404

我是否使用了正确的方法,还是需要遵循其他方法?

【问题讨论】:

标签: kubernetes google-kubernetes-engine


【解决方案1】:

使用来自https://github.com/kubernetes/charts/tree/master/stable/nginx-ingress 的官方 kubernetes 图表存储库中的 helm 设置 nginx 入口。

除了 nginx 入口控制器,您还需要一个入口资源。示例请参考https://github.com/nginxinc/kubernetes-ingress/tree/master/examples/complete-example

【讨论】:

【解决方案2】:

最后它对我有用。这是我的发现

1) 如果您使用 GCE/GKE,则不需要 nginx 控制器

2) 端口: 如果你使用容器端口80,那么服务端口应该是80

如果应用程序暴露给4000,那么NodePort

--port=80
--targetPort=4000

3) 如果您仍然在 Ingress 中看到不健康的状态。在健康检查中检查您的路径,您可能没有指向所需的路径。

例如:我必须指向/main.html in Request Path of LB*

【讨论】:

  • 是的,但请注意,如果您想自动将 http 流量路由到 https,则不能使用 gke 控制器。您需要一个 nginx 控制器,因为 gke 尚不支持 ssl 终止。
  • 如何添加这些控制器。我需要在 Ingress.yaml 中指定还是需要安装?任何参考都会有很大帮助。 (示例代码)
  • 确切的控制器,如果你已经在运行一个入口,那么它已经有一个控制器。在谷歌云上,默认控制器是“gce”,这是不支持 ssl 终止的控制器。要使用 kubernetes inginx ingress,您必须使用几个 yaml 文件安装它,这里有一个链接可以帮助您:rahmonov.me/posts/nginx-ingress-controller
  • “如果您使用 GCE/GKE,则不需要 nginx 控制器” - 这是正确的。我们可以使用 nginx CGE 作为kubernetes.io/docs/concepts/services-networking/ingress/… 的入口控制器。
  • GKE Ingress 负载均衡器最近支持 SSL 终止。
猜你喜欢
  • 2019-08-08
  • 2021-07-29
  • 2019-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-16
  • 1970-01-01
  • 2021-11-12
相关资源
最近更新 更多