我刚进入K8的世界。
在我的开发环境中,我使用ngnix作为不同微服务的代理(带有CORS配置和类似的头转发)(都是用spring Boot 创建的)。
我正在尝试运行一个简单的微服务(目前),并使用Istio路由到它。
如果我导航到IstioIP/auth/api/v1,它将返回404
这是我的yaml文件
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: gateway
spec:
selector:
istio: ingressgateway # use Istio default gateway implementation
servers:
- port:
name: http
number: 80
protocol: HTTP
hosts:
- '*'
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: virtual-service
spec:
hosts:
- "*"
gateways:
- gateway
http:
- match:
- uri:
prefix: /auth
route:
- destination:
host: auth-srv
port:
number: 8082
---
apiVersion: v1
kind: Service
metadata:
name: auth-srv
labels:
app: auth-srv
spec:
ports:
- name: http
port: 8082
selector:
app: auth-srv
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: auth-srv
spec:
replicas: 1
template:
metadata:
labels:
app: auth-srv
version: v1
spec:
containers:
- name: auth-srv
image: gcr.io/{{MY_PROJECT_ID}}/auth-srv:1.5
imagePullPolicy: IfNotPresent
env:
- name: JAVA_OPTS
value: '-DZIPKIN_SERVER=http://zipkin:9411'
ports:
- containerPort: 8082
livenessProbe:
httpGet:
path: /api/v1
port: 8082
initialDelaySeconds: 60
periodSeconds: 5
1条答案
按热度按时间8cdiaqws1#
看起来istio不知道任何关于url的信息。因此,您得到了一个404错误响应。如果您仔细查看虚拟服务器中的配置,您已经将istio配置为匹配路径
/auth
。因此,如果您尝试请求
ISTIOIP/auth
,您将到达您的微服务应用程序。下面的图像描述了通信流以及为什么您会得到404响应。