[英]KIA0104 - This host has no matching entry in the service registry
第一件事:一切似乎都正常工作並且安全策略完成了他的工作(根據單元測試)......但是 Kiala 事情我有一些問題。
我所有的服務 (ServiceAccount/Service/Deployment) 都在命名空間“app”上。
我的網關部署在命名空間“app”上。
我的策略 ares 安裝在命名空間 'istio-system' 上以正確處理 JWT ...
Kiali 錯誤出現在 > hosts: ["authenticator.app.io"]
此規則拒絕所有帶有“登錄”令牌的請求。
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
name: gateway-deny-token-login
namespace: istio-system
spec:
selector:
matchLabels:
istio: ingressgateway
action: DENY
rules:
- from:
- source:
requestPrincipals: ["auth@app.io/*"]
to:
- operation:
hosts: ["authenticator.app.io"]
paths: ["/auth/login"]
根據: https://kiali.io/docs/features/validations/目前的驗證指出那些引用授權策略命名空間中不存在的主機的規則。 Kiali 考慮服務和服務條目。 那些引用 object 命名空間之外的主機的主機將出現未知錯誤。”
但是“ingressgateway”和 JWT 規則在命名空間“istio-system”上,我的服務在我的命名空間上。
怎么讓 Kiali 開心?
謝謝你的幫助
我找到了一個解決方案……我不知道它是否是“那個”解決方案,但它確實有效。
1 - 我已經為 HTTP 和 HTTPS 重定向(網關)配置了主機的“入口”:[“*”]。
2 - 我沒有觸及“jwtRules”(RequestAuthentication)的配置。
3 - 我將所有“VirtualService”歸為一個,並使用“HTTPRoute”公開不同“主機”的 api。
4 - 我重寫了“AuthorizationPolicy”以匹配新的 api 映射。
注意:不要忘記刪除舊的“VirtualService”。
之后一切都像以前一樣工作,但我不再需要在請求的 header 中指定“主機”,但最重要的是,我不再是 Kiali 錯誤!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.