Topology — route traffic based on node/zone topology.
1apiVersion: v12kind: Service3metadata:4 name: myapp5spec:6 type: ClusterIP7 selector:8 app: myapp9 ports:10 - port: 8011 targetPort: 300012 topologyKeys:13 - topology.kubernetes.io/zone14 - kubernetes.io/hostname15 - "*"16---17# TopologyAwareHints (preferred)18apiVersion: v119kind: Service20metadata:21 name: myapp-hints22 annotations:23 service.kubernetes.io/topology-mode: Auto24spec:25 type: ClusterIP26 selector:27 app: myapp28 ports:29 - port: 8030 targetPort: 300031 internalTrafficPolicy: Local32---33apiVersion: v134kind: Endpoints35metadata:36 name: myapp-hints37subsets:38- addresses:39 - ip: 10.0.1.540 nodeName: node-141 zone: us-west-2a42 - ip: 10.0.2.843 nodeName: node-244 zone: us-west-2b45 ports:46 - port: 3000
1# Check topology hints2kubectl get endpoints myapp-hints -o yaml | grep hints34# Verify node zones5kubectl get nodes -o custom-columns=NAME:.metadata.name,ZONE:.metadata.labels.topology\.kubernetes\.io/zone67# Check internal traffic policy8kubectl get svc myapp-hints -o jsonpath='{.spec.internalTrafficPolicy}'
Options:
Benefits: