[英]How to intercept requests to a service in Kubernetes?
比方說,我定義了一個Service
叫my-backend
的Kubernetes。 我想攔截發送到此服務的每個請求,正確的方法是什么? 例如,同一命名空間下的另一個容器通過http://my-backend發送請求。
我嘗試將准入控制器與驗證 Webhook 一起使用。 但是,它可以攔截對服務資源的 CRUD 操作,但無法攔截與特定服務的任何連接。
在 Kubernetes 中沒有直接的方法來攔截對服務的請求。
對於解決方法,這是您可以執行的操作-
創建一個 sidecar 容器只是為了記錄每個傳入的請求。 日志記錄
在容器中運行tcpdump -i eth0 -n
並過濾掉請求
使用Zipkin
在雲提供商上創建服務,將有自己的日志記錄機制。 對於前 - aws 上的負載均衡器服務將在 S3 上生成其日志。 aws elb 日志
Kubernetes NetworkPolicy 對象將對此有所幫助。 網絡策略控制 Pod 組如何相互通信以及如何與其他網絡端點通信。 您只能根據 pod 選擇器允許進入 my-backend 服務的流量。 下面是允許來自特定的入口流量的示例
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: ingress-only-from-frontend-to-my-backend
namespace: default
spec:
podSelector:
matchLabels:
<my-backend pod label>
policyTypes:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
<Frontend web pod label>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.