kubernetes - rancher 2.x 通过入口控制器返回 404
问题描述
牧场主服务:
$ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
rancher ClusterIP 10.10.17.245 <none> 80/TCP,443/TCP 1h
入口控制器服务:
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx-ingress nginx-ingress LoadBalancer 10.10.15.181 <ext-IP> 80:30324/TCP,443:31022/TCP 3h
入口角色:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: rancher-ing
annotations:
kubernetes.io/ingress.class: "rancher"
spec:
rules:
- host: api.sample.com
http:
paths:
- path: /
backend:
serviceName: rancher
servicePort: 443
入口:
$ kubectl get ingress
NAME HOSTS ADDRESS PORTS AGE
rancher api.sample.com 80 19s
当我试图通过入口控制器 ext-IP 联系牧场主时:
作为回应,我有一些未编码的字符串。如果我通过网络浏览器执行此操作,则会下载此字符串并且我得到 404。
通过 http(没有 https)的某些随机服务的类似角色可以正常工作,因此这不是入口控制器配置错误的问题。
解决方案
如果您想使用,您必须使用注释kubernetes.io/ingress.class: "rancher"
部署您的入口控制器。--ingress-class=rancher
在 https://github.com/nginxinc/kubernetes-ingress/tree/master/examples/multiple-ingress-controllers和https://kubernetes.github.io/ingress-nginx/user-guide/multiple-入口/
干杯
推荐阅读
- codenameone - 为什么 Display.getInstance().getProperty("pushType", "-1") 的值是“3”而不是“1”或“2”?
- c++ - 为什么我会收到警告:当指针具有正确的类型时,取消引用类型双关指针?
- python - Matplotlib Savefig 保存一个空白 png
- python - 如何更新现有的 Excel 工作表?
- css - CSS之前或边框或其他东西不能立即工作
- pyspark - 在 PySpark 中的 window.partitionBy 上查找从中提取最小值的行值
- botframework - 使用 CSS 隐藏和显示 React WebChat 时重新连接问题
- regex - 无法理解 mod_rewrite
- windows - 如果使用 AHK 打开,请关闭 Win10“开始菜单”?
- reactjs - React - 显示图像的正确路径