为额外的端口和端点设置 Ingress

Setting up Ingress for addtional Port and endpoint

我在我的默认命名空间中的 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 returns 正确输出 ==> 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 get ingress --all-namespaces

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

A Curl to curl curl http://my.server.com/testing returns

<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 returns 你好 Kubernetes!我错过了什么,我该如何解决?

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

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

第一步是更正入口规范中的 servicePort。

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

也很高兴看到您的入口控制器描述(如果有的话)