⚓️ Fabric8 과 공식 k8s Java Client 의 차이

Java 에서 Kubernetes API 를 지원하는 라이브러리로 Fabric8 과 Kubernetes 공식 Java Client 를 꼽을 수 있습니다. 둘다 Kubernetes 에서 제공하는 API 를 거의 다 지원하고 있어 어떤걸 써야할지 고민이 생길수가 있는데요, 두 라이브러리의 차이를 잘 정리한 글이 있어 공유드립니다. 🗓 History Fabric8 Kubernetes Client 는 Kubernetes 출시 초기인 2015년에 Ioannis Cannelos 와 Jimmy Dyson 이 Java 어플리케이션이 Kubernetes 와 연동하기 위해 만들었다고 합니다. Official Kubernetes Client 는 쿠버네티스 창시자인 Brendan Burns 가 2017년에 만든 Kubernetes 연동 라이브러리라고 합니다. Java 뿐만 아니라 PERL, Javascript, Python 언어에 대한 라이브러리도 만들었다고 합니다. 📊 사용 현황 사용자수(첨부한 게시글에서 주장하는 내용이지만 정확한 근거가 나오진 않습니다.)나 Github Dependents 가 Fabric8 Kubernetes Client 가 많은것으로 확인. 🏁 Official Kubernetes Client 특징 - Class 나 함수가 Kubernetes 에서 정의한 리소스와 API 와 비슷하고 파라미터를 받는 형태가 kubectl 과 비슷합니다. - API 그룹마다 다른 진입점으로 접근하게 합니다. - Spring Boot 에서 원활한 사용을 위해 지원되는 내용이 있습니다. 관련 내용은 https://github.com/kubernetes-client/java/blob/master/docs/java-controller-tutorial-rewrite-rs-controller.md 참고해주세요. - DSL API 를 사용할 수 있는 extension 도 제공합니다. 다만, 이 경우 Config 설정을 static 변수로 할당하기 때문에 동시에 여러개의 Cluster 에 접근하게 되는 경우 문제가 발생할 수 있습니다. 자세한 내용은 https://github.com/kubernetes-client/java/blob/master/docs/kubectl-equivalence-in-java.md 에서 확인할 수 있습니다. - 자체 컨트롤러를 작성하는 빌더 라이브러리를 제공합니다. 자세한 내용은 https://kubernetes.io/blog/2019/11/26/develop-a-kubernetes-controller-in-java/ 에서 확인할 수 있습니다. 🏁 Fabric8 Kubernetes Client 특징 - Kubernetes API 와 상호 작용하기 위한 풍부한 DSL API 를 제공합니다. - OkHttp3, JDK HttpClient, Jetty 등 다양한 HTTP Client 라이브러리를 사용할 수 있습니다.(default: OkHttp3) - watch 기능을 위해 WebSocket을 사용하고 Kubernetes 리소스 watch 의 안정성을 위해 재연결 기능을 지원합니다. - 시스템 속성, 환경 변수 를 통해 kubeconfig 파일 및 ServiceAccount 토큰, 마운트된 CA 인증서와 같은 클러스터 연결 구성을 다양한 방법으로 할 수 있습니다. - 자신의 필요에 맞게 확장 기능을 만들 수 있습니다. 현재 Knative, Tekton, Istio, CertManager, ServiceCatalog, VolumeSnapshot, ChaosMesh, OpenClusterManagement 및 Kudo 용 확장 기능이 존재합니다. - Java 소스에서 CustomResourceDefinition YAML 매니페스트를 생성할 수 있습니다. - CustomResourceDefinition YAML 매니페스트에서 Java POJO를 생성할 수 있습니다. 첨부드린 링크에 각 라이브러리별 API 사용에 대한 샘플 코드가 있으니 관심있으신 분들께서는 한번 읽어보시면 좋겠습니다.

Difference between Fabric8 and Official Kubernetes Java Client

Medium

Difference between Fabric8 and Official Kubernetes Java Client

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 2월 15일 오전 9:08

 • 

저장 6조회 3,431

댓글 0