【问题标题】:Setting up Ingress for addtional Port and endpoint为其他端口和端点设置 Ingress
【发布时间】:2019-09-30 13:52:51
【问题描述】:

我在默认命名空间中的 Kubernetes 中设置了一个测试服务。关注这个Kubernetes Tutorial

NAMESPACE     NAME                            TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
default       example-service                 NodePort       10.102.218.101   <none>        8080:30242/TCP               3h38m

卷曲到 curl http://my.server.com:30242 返回正确的输出 ==> Hello Kubernetes! 现在我想设置一个入口,使应用程序在不同的端点上可用,而不使用 30242 端口。 所以我设置了一个入口

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: 5ingress
  annotations:
    ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: my.server.com
    http:
      paths:
        - path: /testing
          backend:
            serviceName: example-service
            servicePort: 80

Ingress 已部署,但新路径不起作用。 kubectl 获取入口 --all-namespaces

kube-system   5ingress            my.server.com             80, 443   16m

卷曲 curl http://my.server.com/testing 返回

<html>
<head><title>308 Permanent Redirect</title></head>
<body>
<center><h1>308 Permanent Redirect</h1></center>
<hr><center>nginx/1.15.10</center>
</body>
</html

>

我的预期输出是 curl http://my.server.com/testing 返回 Hello Kubernetes!我错过了什么,我该如何解决?

【问题讨论】:

    标签: kubernetes kubernetes-ingress nginx-ingress


    【解决方案1】:

    第一步将在您的入口规范中更正 servicePort。

    您的example-service 暴露在端口 8080 上,而入口定义中的 servicePort 是 80

    如果有的话,看看你的入口控制器描述也会很高兴

    【讨论】:

      【解决方案2】:

      如果你使用 Nginx Ingress 那么你必须添加这个注解:

      nginx.ingress.kubernetes.io/ssl-redirect: "false"
      

      【讨论】:

        猜你喜欢
        • 2020-08-13
        • 1970-01-01
        • 1970-01-01
        • 2014-10-06
        • 1970-01-01
        • 1970-01-01
        • 2023-03-05
        • 1970-01-01
        • 2012-03-11
        相关资源
        最近更新 更多