我正在尝试遵循istio网关和虚拟服务指南,位于-https://istio.io/docs/tasks/traffic-management/ingress/ingress-control/#determining-the-ingress-ip-and-ports
我可以看到这些资源(Gateway和VS)是从Kiali以及从命令行创建的。当我尝试访问位于curl -I -HHost:httpbin.example.com http://$INGRESS_HOST:$INGRESS_PORT/status/200
的端点时,会收到一个403 Forbidden error
。
我正在查看以下位置的istio-proxy日志k记录httpbin-pod -c istio-proxy -n my-bookinfo而且在那里看不到太多。我试图弄清楚从哪里可以开始调试问题。有任何想法吗? (编辑)
我想HTTP 403
问题可能与Istio Authorization或Authentication网格配置有关,假设您已成功将Envoy侧车注入特定的Pod中或跨相关的名称空间。
日志检查可能是大多数问题可解释的任务,确认Envoy's Access Logs已启用,您可以查看相关的istio-proxy
Sidecar和istio-ingressgateway
Pod日志;而您可以获取Envoy proxy响应标志和交通路径工作流程:
$ kubectl logs -l app=httpbin -c istio-proxy
[2019-03-06T09:31:27.360Z]“ GET / status / 418 HTTP / 1.1” 418-“-” 0 1355 2“-”“ curl / 7.60.0”“ d209e46f-9ed5-9b61-bbdd-43e22662702a”“ httpbin:8000”“ 127.0.0.1:80”入站| 8000 | http | httpbin.default.svc.cluster.local-172.30.146.73:80172.30.146.82:38618 outbound_.8000 _._。httpbin.default.svc.cluster.local
在网格中检查[Authentication Policies,这可能会影响边车代理行为并根据mTLS身份验证修改全局网格策略,默认情况下启用Permissive模式:
$ kubectl get policies.authentication.istio.io --all-namespaces
$ kubectl get meshpolicy.authentication.istio.io default -oyaml
如果在网格内启动了Authorization规则,请验证所有相应的RBAC策略:
$ kubectl get clusterrbacconfigs.rbac.istio.io --all-namespaces
$ kubectl get authorizationpolicies.rbac.istio.io,rbacconfigs.rbac.istio.io,servicerolebindings.rbac.istio.io,serviceroles.rbac.istio.io --all-namespaces
在官方Istio documentation中找到有关故障排除步骤的更多相关信息。