3.1 KiB
reviewers | title | content_type | weight | |
---|---|---|---|---|
|
サービス内部トラフィックポリシー | concept | 45 |
{{< feature-state for_k8s_version="v1.21" state="alpha" >}}
サービス内部トラフィックポリシーを使用すると、内部トラフィック制限により、トラフィックが発信されたノード内のエンドポイントにのみ内部トラフィックをルーティングできます。 ここでの「内部」トラフィックとは、現在のクラスターのPodから発信されたトラフィックを指します。これは、コストを削減し、パフォーマンスを向上させるのに役立ちます。
ServiceInternalTrafficPolicyの使用
ServiceInternalTrafficPolicy
feature gateを有効にすると、.spec.internalTrafficPolicy
をLocal
に設定して、{{< glossary_tooltip text="Service" term_id="service" >}}内部のみのトラフィックポリシーを有効にすることができます。
これにより、kube-proxyは、クラスター内部トラフィックにノードローカルエンドポイントのみを使用するようになります。
{{< note >}} 特定のServiceのエンドポイントがないノード上のPodの場合、Serviceに他のノードのエンドポイントがある場合でも、Serviceは(このノード上のポッドの)エンドポイントがゼロであるかのように動作します。 {{< /note >}}
次の例は、.spec.internalTrafficPolicy
をLocal
に設定した場合のServiceの様子を示しています:
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: MyApp
ports:
- protocol: TCP
port: 80
targetPort: 9376
internalTrafficPolicy: Local
使い方
kube-proxyは、spec.internalTrafficPolicy
設定に基づいて、ルーティング先のエンドポイントをフィルタリングします。
Local
に設定されている場合、ノードのローカルエンドポイントのみが考慮されます。Cluster
であるか欠落している場合、すべてのエンドポイントが考慮されます。
ServiceInternalTrafficPolicy
feature gateが有効な場合、spec.internalTrafficPolicy
のデフォルトは"Cluster"です。
制約
- サービスで
externalTrafficPolicy
がLocal
に設定されている場合、サービス内部トラフィックポリシーは使用されません。同じサービスではなく、異なるサービスの同じクラスターで両方の機能を使用することができます。