简介

  1. Kubernets 集群中,以 DaemonSet 方式部署 DataKit 后,如果存在部署的某一应用以前是推送链路数据到 istio-system 名称空间的 zipkin 服务,端口是 9411,即访问地址是 zipkin.istio-system.svc.cluster.local:9411,客户又不想改推送地址怎么办呢?这时就需要用到了 Kubernetes ExternalName 服务类型。先定义一个 ClusterIP 服务类型,把 9529 端口转成 9411,然后使用 ExternalName 的服务将 ClusterIP 的服务映射成 DNS 的名称。通过这两步转换,应用就可以与 DataKit 打通了。

步骤

1 定义 ClusterIP 的服务

  1. apiVersion: v1
  2. kind: Service
  3. metadata:
  4. name: datakit-service-ext
  5. namespace: datakit
  6. spec:
  7. selector:
  8. app: daemonset-datakit
  9. ports:
  10. - protocol: TCP
  11. port: 9411
  12. targetPort: 9529
  1. 部署完成后,集群内部的容器就可以使用 datakit-service-ext.datakit.svc.cluster.local:9411 来访问 DataKit 9529 端口。

2 定义 ExternalName 的服务

  1. apiVersion: v1
  2. kind: Service
  3. metadata:
  4. name: zipkin
  5. namespace: istio-system
  6. spec:
  7. type: ExternalName
  8. externalName: datakit-service-ext.datakit.svc.cluster.local
  1. 部署完成后,在集群内部的容器中,就可以使用 zipkin.istio-system.svc.cluster.local:9411 推送数据到 DataKit 了。<br />![1647908754(1).png](https://cdn.nlark.com/yuque/0/2022/png/21583952/1647908791536-38bc55f0-cb15-4249-bd36-158beb64ab02.png#clientId=uf86e6b95-a677-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=454&id=ua99c6ac0&margin=%5Bobject%20Object%5D&name=1647908754%281%29.png&originHeight=511&originWidth=1085&originalType=binary&ratio=1&rotation=0&showTitle=false&size=26996&status=done&style=none&taskId=u495009d9-954b-4488-96d0-c01aebd2b8e&title=&width=964.4444444444445)