配置 IPv6
可以将 Tempo 配置为使用互联网协议版本 6 (IPv6) 在组件之间进行通信。
注意
底层基础设施必须支持此地址族。此配置可在单栈 IPv6 环境中使用,也可在同时存在 IPv6 和 IPv4 的双栈环境中使用。在双栈场景中,一次只能配置一个地址族,并且所有组件都必须配置为该地址族。
协议配置
此示例监听配置将允许 gRPC 和 HTTP 服务器在 IPv6 上监听,并配置各种 memberlist 组件以启用 IPv6。
memberlist:
bind_addr:
- '::'
bind_port: 7946
compactor:
ring:
kvstore:
store: memberlist
enable_inet6: true
metrics_generator:
ring:
enable_inet6: true
ingester:
lifecycler:
enable_inet6: true
server:
grpc_listen_address: '::0'
grpc_listen_port: 9095
http_listen_address: '::0'
http_listen_port: 3200
Kubernetes 服务配置
每个面向工作负载的服务都需要配置 spec.ipFamilies
和 spec.ipFamilyPolicy
。请参阅此 compactor
示例。
apiVersion: v1
kind: Service
metadata:
labels:
name: compactor
name: compactor
namespace: trace
spec:
clusterIP: fccb::31a7
clusterIPs:
- fccb::31a7
internalTrafficPolicy: Cluster
ipFamilies:
- IPv6
ipFamilyPolicy: SingleStack
ports:
- name: compactor-http-metrics
port: 3200
protocol: TCP
targetPort: 3200
selector:
app: compactor
name: compactor
sessionAffinity: None
type: ClusterIP
您可以从 Pod 内部检查监听服务。
❯ k exec -it compactor-55c778b8d9-2kch2 -- sh
/ # apk add iproute2
OK: 12 MiB in 27 packages
/ # ss -ltn -f inet
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
/ # ss -ltn -f inet6
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 4096 *:7946 *:*
LISTEN 0 4096 *:9095 *:*
LISTEN 0 4096 *:3200 *:*