source

Kubernetes Java 응용 프로그램에서 최신 포드를 가져오는 방법

itover 2023. 6. 26. 22:35
반응형

Kubernetes Java 응용 프로그램에서 최신 포드를 가져오는 방법

Kubernetes 클러스터에 마이크로 서비스를 배포하고 있습니다.모든 응용프로그램에는 4개의 복제본 또는 POD가 있습니다.1 응용 프로그램의 REST API의 경우, 나는 내 요청을 처리한 POD를 추적하고 싶습니다. 예: 나의/app/deploy(body contains app_id)요청 처리자:POD1.

마찬가지로, 저는 제 애플리케이션에서 쿠베르네테스 병을 가져왔습니다.제 코드에서 이 코드가 실행 중인 현재 POD를 확인하고 싶습니다.나는 같은 API를 원합니다.kubernetesDiscoveryClient.getCurrentPOD()이런 종류의 것

Java 응용프로그램에 Kubernetes Jar가 필요하지 않습니다.간단한System.getenv("HOSTNAME")포드의 이름이 표시됩니다.모든 플랫폼에서 작동하며, 적어도 쿠버네티스 버전 1.6 이후.

좀 더 공식적으로, 당신은 당신의 Kube 사양에서 다음을 사용할 수 있습니다(상세한 참조), 그리고 다음을 사용하여 환경을 읽을 수 있습니다.System.getenv("MY_POD_NAME")자바로

 env:
 - name: MY_POD_NAME
   valueFrom:
     fieldRef:
       fieldPath: metadata.name     

이것은 저에게 효과가 있었습니다.

podName = Optional.ofNullable(System.getenv("HOSTNAME"));

모든 포드에는hostname와 같은pod_name그래서 당신이 할 수 있는 것은 당신을 돌려주는 api를 쓰는 것입니다.hostname.

예:

자바로 java.net.InetAddress.getLocalHost();

C#로 System.Environment.GetEnvironmentVariable("COMPUTERNAME");

언급URL : https://stackoverflow.com/questions/51593129/how-to-get-current-pod-in-kubernetes-java-application

반응형