我是kubernetes
的新手,所以如果有人帮助我,我会很感激。我创建ingress.yaml
文件,如下所示:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: backend-ingress
spec:
rules:
- host: test-1.<domain-name>.me
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: backend-service
port:
number: 8000
然后运行命令minikube addons enable ingress
,一切都很好。当我输入命令kubectl get ingress
时,我得到这个:
NAME CLASS HOSTS ADDRESS PORTS AGE
backend-ingress <none> test-1.<domain-name>.me 192.168.49.2 80 85m
问题是,当我在浏览器中搜索test-1.<domain-name>.me
时,我得到欢迎页面说wellcome to nginx
!
我该怎么办?
您没有提到任何注释,您只是部署了一个入口,该入口将只部署一个带有" welcome ingress "的网页。
你需要部署一个带有应用程序url的入口才能正常工作,
例如:
注释nginx.ingress.kubernetes.io/rewrite-target
将重写目标url,流量必须重定向。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$2
name: rewrite
namespace: default
spec:
ingressClassName: nginx
rules:
- host: rewrite.bar.com
http:
paths:
- path: /something(/|$)(.*)
pathType: Prefix
backend:
service:
name: http-svc
port:
number: 80
在此入口定义中,(.*)捕获的任何字符都将分配给占位符$2,然后将其用作rewrite-target注释中的参数。
例如,上面的入口定义将导致以下重写:
rewrite.bar.com/something重写到rewrite.bar.com/
注意:你需要用正确的主机和路径配置你的入口。
请参考此官方文档,其中包含使用注释进行导入、分析和部署的详细信息。