入口规则未重定向到部署 [英] Ingress rule not redirecting to deployment
问题描述
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: assortment-ingress
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
tls:
- hosts:
- myapp.centralus.cloudapp.azure.com
secretName: aks-ingress-tls
rules:
- host: myapp.centralus.cloudapp.azure.com
http:
paths:
- path: /my-service
backend:
serviceName: my-backend
servicePort: 80
部署和部署服务
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 1
template:
metadata:
labels:
app: myservice
spec:
containers:
- name: myservice
image: myreg.azurecr.io/my-latest
imagePullPolicy: Always
ports:
- name: http
containerPort: 8080
imagePullSecrets:
- name: my-auth
apiVersion: v1
kind: Service
metadata:
name: my-backend
spec:
type: ClusterIP
selector:
app: myservice
ports:
- name: http
protocol: TCP
port: 80
targetPort: 8080
但是
curl https://myapp.centralus.cloudapp.azure.com/my-service
给予
默认后端-404
default backend - 404
请注意,myapp.centralus.cloudapp.azure.com已经解析为入口控制器的公共IP
Note myapp.centralus.cloudapp.azure.com already resolves to the ingress controller's public IP
当我使用相同的配置创建类型为LoadBalancer的服务时,它将与公共api一起使用.
When I create a service with type LoadBalancer with same config, it works with public api.
推荐答案
首先检查您的pod处于运行状态.
First of all check your pods are in running state.
或
可能是因为过多的端口从80重定向到8080导致无法服务到目标端口.
maybe cause of redirection of too many ports from 80 to 8080.ingress to service to target port.
您的配置绝对正确,这很简单,问题可能是pod无法运行或等待一段时间才能清除浏览器的缓存.
your config is absolutely right it is simple problem may be pod not running or wait for some time to with clear cache of browser.
这篇关于入口规则未重定向到部署的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!