
Kubernetes API용 Java 클라이언트 라이브러리로, 인증, watch, exec 및 port-forward 작업을 지원하여 클러스터, 포드, 배포 및 기타 리소스를 프로그래밍 방식으로 관리할 수 있습니다.
kubernetes API용 Java 클라이언트입니다.
Java 클라이언트는 Semantic Versioning을 사용합니다. 새 Kubernetes 릴리스 버전에 맞춰 클라이언트를 재생성할 때마다 주 버전 번호를 올립니다(아래 표 참조). 이때 새로운 API가 추가되고 생성된 Kubernetes API 스텁(Stub)에 호환성이 깨지는 변경(breaking changes)이 있을 수 있습니다. 주 버전을 업그레이드할 때는 잠재적인 호환성 변경에 대비하세요.
Java 클라이언트 라이브러리를 로컬 Maven 저장소에 설치하려면 다음을 실행하세요:
git clone --recursive https://github.com/kubernetes-client/java
cd java
mvn install
자세한 내용은 공식 문서를 참조하세요.
프로젝트의 POM에 다음 의존성을 추가하세요:
<dependency>
<groupId>io.kubernetes</groupId>
<artifactId>client-java</artifactId>
<version>8.0.2</version>
</dependency>
compile 'io.kubernetes:client-java:8.0.2'
먼저 다음을 실행하여 JAR을 생성합니다:
git clone --recursive https://github.com/kubernetes-client/java
cd java/kubernetes
mvn package
그런 다음 다음 JAR들을 수동으로 설치합니다:
일반적인 사용 사례에 대한 몇 가지 예제를 준비했습니다. 아래에 나와 있습니다:
kubectl patch와 동일합니다.kubectl get <resource> -w와 동일합니다.kubectl logs와 동일합니다.kubectl exec와 동일합니다.kubectl port-forward와 동일합니다.kubectl attach와 동일합니다.kubectl cp와 동일합니다.client-java-extended 모듈이 필요합니다.)
모든 포드 나열:
import io.kubernetes.client.openapi.ApiClient;
import io.kubernetes.client.openapi.ApiException;
import io.kubernetes.client.openapi.Configuration;
import io.kubernetes.client.openapi.apis.CoreV1Api;
import io.kubernetes.client.openapi.models.V1Pod;
import io.kubernetes.client.openapi.models.V1PodList;
import io.kubernetes.client.util.Config;
import java.io.IOException;
public class Example {
public static void main(String[] args) throws IOException, ApiException{
ApiClient client = Config.defaultClient();
Configuration.setDefaultApiClient(client);
CoreV1Api api = new CoreV1Api();
V1PodList list = api.listPodForAllNamespaces(null, null, null, null, null, null, null, null, null);
for (V1Pod item : list.getItems()) {
System.out.println(item.getMetadata().getName());
}
}
}
네임스페이스 객체 watch:
import com.google.gson.reflect.TypeToken;
import io.kubernetes.client.openapi.ApiClient;
import io.kubernetes.client.openapi.ApiException;
import io.kubernetes.client.openapi.Configuration;
import io.kubernetes.client.openapi.apis.CoreV1Api;
import io.kubernetes.client.openapi.models.V1Namespace;
import io.kubernetes.client.util.Config;
import io.kubernetes.client.util.Watch;
import java.io.IOException;
public class WatchExample {
public static void main(String[] args) throws IOException, ApiException{
ApiClient client = Config.defaultClient();
Configuration.setDefaultApiClient(client);
CoreV1Api api = new CoreV1Api();