我对Kubernetes相当陌生,我正试图弄清楚如何在集群中的不同路径上运行相同容器映像的多个荚。我在下面粘贴了我的k8s清单。在这个场景中,我的应用程序(网站)正在监听根路径。但是,当Ingress匹配它并将其转发到我的Pod时,它请求/app路径,它返回404,因为我的应用程序再次监听根用户(/)。我可以让这个应用程序听/app,但是它需要重建该图像,并且限制了我在集群内的不同路径上运行相同的图像的能力。例如,我希望运行相同的网站在/app2,而不是重建一个特殊的形象,只为这条路。
我觉得这个答案与nginx.ingress.kubernetes.io/rewrite-target annotation有关,但我尝试过各种不同的排列方式,但我想不出答案。我觉得这是我错过的很简单的事情。
这是我的部署清单:
apiVersion: apps/v1
kind: Deployment
metadata:
name: application
spec:
replicas: 1
selector:
matchLabels:
app: application
template:
metadata:
labels:
app: application
spec:
containers:
- name: application
image: foo-app:latest
imagePullPolicy: Always
ports:
- containerPort: 80
name: "http"这是我的服务清单:
apiVersion: v1
kind: Service
metadata:
name: application-service
spec:
selector:
app: application
ports:
- name: http
protocol: TCP
port: 80
targetPort: 80
type: NodePort最后,这里是我的入口资源:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: application-service-ingress
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.org/mergeable-ingress-type: "minion"
spec:
rules:
- host: some-random.elb.us-west-2.amazonaws.com
http:
paths:
- backend:
serviceName: application-service
servicePort: 80
path: /app发布于 2021-07-07 05:12:17
尝尝这个
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /app/$1
kubernetes.io/ingress.class: nginx
name: application-service-ingress
spec:
rules:
- host: some-random.elb.us-west-2.amazonaws.com
http:
paths:
- path: /(.*)
backend:
serviceName: service-1
servicePort: 80https://stackoverflow.com/questions/68280187
复制相似问题