我在默认名称空间的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获取入口-所有命名空间
kube-system 5ingress my.server.com 80, 443 16m
卷曲的卷发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!我想念什么,我该如何解决?
答案 0 :(得分:1)
第一步将是纠正入口规范中的servicePort。
您的example-service
在端口 8080 上公开,而入口定义中的servicePort是 80 。
如果有的话,也很高兴看到您的入口控制器说明
答案 1 :(得分:0)
如果使用Nginx Ingress,则必须添加以下注释:
nginx.ingress.kubernetes.io/ssl-redirect: "false"