Kubernetes 클러스터에서 ExternalName을 사용하여 DataKit 서비스 매핑¶
개요¶
Kubernetes 클러스터에서 DaemonSet 방식으로 DataKit을 배포한 후, 특정 애플리케이션이 이전에 istio-system 네임스페이스의 zipkin 서비스로 트레이스 데이터를 전송하고 있었고, 포트는 9411이었습니다. 즉, 접속 주소는 zipkin.istio-system.svc.cluster.local:9411입니다.
푸시 주소를 변경하지 않으려면 어떻게 해야 할까요? 이때는 Kubernetes의 ExternalName 서비스 유형을 사용해야 합니다. 다음 두 단계를 통해 애플리케이션이 DataKit과 연결될 수 있습니다.
-
먼저, ClusterIP 서비스 유형을 정의하여 9529 포트를 9411 포트로 변환합니다.
-
그런 다음, ExternalName 서비스를 사용하여 ClusterIP 서비스를 DNS 이름으로 매핑합니다.
1 ClusterIP 서비스 정의¶
apiVersion: v1
kind: Service
metadata:
name: datakit-service-ext
namespace: datakit
spec:
selector:
app: daemonset-datakit
ports:
- protocol: TCP
port: 9411
targetPort: 9529
배포가 완료되면 클러스터 내부의 컨테이너에서 datakit-service-ext.datakit.svc.cluster.local:9411을 사용하여 DataKit의 9529 포트에 접근할 수 있습니다.
2 ExternalName 서비스 정의¶
apiVersion: v1
kind: Service
metadata:
name: zipkin
namespace: istio-system
spec:
type: ExternalName
externalName: datakit-service-ext.datakit.svc.cluster.local
배포가 완료되면 클러스터 내부의 컨테이너에서 zipkin.istio-system.svc.cluster.local:9411을 사용하여 DataKit으로 데이터를 푸시할 수 있습니다.
