为额外的端口和端点设置 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 。
也很高兴看到您的入口控制器描述(如果有的话)
我在我的默认命名空间中的 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 。
也很高兴看到您的入口控制器描述(如果有的话)