Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
kubernetes-client__java_CVE-2020-8570_client-java-parent-9_0_2_fixed | Kitploit
도구/GitHubGitHub/shoucheng3/kubernetes-client__java_cve-2020-8570_client-java-parent-9_0_2_fixed
Authentication & AuthorizationCloud Infrastructure SecurityGeneral Purpose UtilitiesContainer SecurityCloud SecurityAPI Security
GitHubshoucheng3/kubernetes-client__java_cve-2020-8570_client-java-parent-9_0_2_fixed

kubernetes-client__java_CVE-2020-8570_client-java-parent-9_0_2_fixed

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
9개월 전아직 검토되지 않음

Kubernetes Java 클라이언트

Build Status Client Capabilities Client Support Level

kubernetes API용 Java 클라이언트입니다.

클라이언트 버저닝

Java 클라이언트는 Semantic Versioning을 사용합니다. 새 Kubernetes 릴리스 버전에 맞춰 클라이언트를 재생성할 때마다 주 버전 번호를 올립니다(아래 표 참조). 이때 새로운 API가 추가되고 생성된 Kubernetes API 스텁(Stub)에 호환성이 깨지는 변경(breaking changes)이 있을 수 있습니다. 주 버전을 업그레이드할 때는 잠재적인 호환성 변경에 대비하세요.

설치

Java 클라이언트 라이브러리를 로컬 Maven 저장소에 설치하려면 다음을 실행하세요:

root@kitploit:~
git clone --recursive https://github.com/kubernetes-client/java
cd java
mvn install

자세한 내용은 공식 문서를 참조하세요.

Maven 사용자

프로젝트의 POM에 다음 의존성을 추가하세요:

root@kitploit:~
<dependency>
    <groupId>io.kubernetes</groupId>
    <artifactId>client-java</artifactId>
    <version>8.0.2</version>
</dependency>

Gradle 사용자

root@kitploit:~
compile 'io.kubernetes:client-java:8.0.2'

기타 사용자

먼저 다음을 실행하여 JAR을 생성합니다:

root@kitploit:~
git clone --recursive https://github.com/kubernetes-client/java
cd java/kubernetes
mvn package

그런 다음 다음 JAR들을 수동으로 설치합니다:

  • target/client-java-api-8.0.3-SNAPSHOT.jar
  • target/lib/*.jar

예제

일반적인 사용 사례에 대한 몇 가지 예제를 준비했습니다. 아래에 나와 있습니다:

  • 구성:
    • InClusterClientExample: Kubernetes 클러스터 내부에서 실행되는 동안 클라이언트를 구성합니다.
    • KubeConfigFileClientExample: 외부에서 Kubernetes 클러스터에 액세스하도록 클라이언트를 구성합니다.
  • 기본:
    • SimpleExample: 클라이언트 사용 방법을 보여주는 가장 간단한 최소 예제.
    • ProtoExample: protobuf 직렬화 프로토콜로 페이로드를 요청/수신합니다.
    • (5.0.0+) PatchExample: 지원되는 다양한 패치 형식으로 리소스 객체를 패치합니다. kubectl patch와 동일합니다.
    • FluentExample: fluent 빌더 스타일로 임의의 리소스를 구성합니다.
    • YamlExample: YAML에서 리소스를 로드하거나 덤프하는 권장 방법.
  • 스트리밍:
    • WatchExample: 특정 리소스의 watch 이벤트를 구독합니다. kubectl get <resource> -w와 동일합니다.
    • LogsExample: 실행 중인 컨테이너의 로그를 가져옵니다. kubectl logs와 동일합니다.

모든 포드 나열:

root@kitploit:~
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:

root@kitploit:~
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();

        Watch<V1Namespace> watch = Watch.createWatch(
                client,
                api.listNamespaceCall(null, null, null, null, null, 5, null, null, Boolean.TRUE, null, null),
                new TypeToken<Watch.Response<V1Namespace>>(){}.getType());

        for (Watch.Response<V1Namespace> item : watch) {
            System.out.printf("%s : %s%n", item.type, item.object.getMetadata().getName());
        }
    }
}

더 많은 예제는 examples 폴더에서 확인할 수 있습니다. 예제를 실행하려면 다음 명령을 실행하세요:

root@kitploit:~
mvn exec:java -Dexec.mainClass="io.kubernetes.client.examples.Example"

문서

모든 API 및 모델 문서는 생성된 클라이언트 문서에서 확인할 수 있습니다.

호환성

범례:

  • ✓ java-client와 해당 Kubernetes 버전의 기능/API 객체가 완전히 동일함.
  • + java-client에 Kubernetes 클러스터에는 없을 수 있는 기능이나 API 객체가 있지만, 공통으로 있는 모든 것은 정상 작동함.
  • - Kubernetes 클러스터에 java-client 라이브러리가 사용할 수 없는 기능(추가 API 객체 등)이 있음.

java-client 버전 간 변경 사항에 대한 자세한 설명은 CHANGELOG를 참조하세요.

기여

기여 방법에 대한 지침은 CONTRIBUTING.md를 참조하세요.

행동 강령

Kubernetes 커뮤니티 참여는 CNCF 행동 강령에 따릅니다.

개발

생성된 코드 업데이트

코드는 openapi-generator 프로젝트에 의해 생성됩니다.

우리는 코드 생성을 위한 범용 교차 언어 도구를 구축했으며, 이는 kubernetes-client/gen 저장소에 호스팅되어 있습니다.

시작하려면 java 클라이언트 디렉터리가 아닌 루트 디렉터리에서 진행하세요. 예를 들어 디렉터리 구조는 다음과 같을 수 있습니다:

root@kitploit:~
${HOME}/
        src/
             gen/
             java/
...

그런 다음 gen 저장소를 클론하려면 다음을 실행합니다:

root@kitploit:~
cd ${HOME}/src
git clone https://github.com/kubernetes-client/gen
export GEN_ROOT=${PWD}

그런 다음 클라이언트를 업데이트하려면:

root@kitploit:~
cd ${HOME}/src/java
${GEN_ROOT}/gen/openapi/java.sh kubernetes ./settings

이 과정은 docker를 사용하는 다소 긴 빌드 프로세스를 거쳐 최종적으로 kubernetes 디렉터리에 새로 생성된 코드 세트를 만들어냅니다.

도구 다운로드
  • ExecExample: 실행 중인 컨테이너와 "exec" 세션을 수립합니다. kubectl exec와 동일합니다.
  • PortForwardExample: 로컬 포트를 포드의 포트에 매핑합니다. kubectl port-forward와 동일합니다.
  • AttachExample: 기존 컨테이너 내부에서 이미 실행 중인 프로세스에 연결합니다. kubectl attach와 동일합니다.
  • CopyExample: 컨테이너와 파일 및 디렉터리를 서로 복사합니다. kubectl cp와 동일합니다.
  • WebSocketsExample: 특정 리소스에 임의의 웹소켓 세션을 수립합니다.
  • 고급: (참고: 다음 예제는 client-java-extended 모듈이 필요합니다.)
    • (5.0.0+) InformerExample: 리소스를 list-watch하고 알림을 로컬 캐시에 반영하는 인포머(informer)를 구축합니다.
    • (5.0.0+) PagerExample: 서버 측 부하/네트워크 혼잡을 완화하기 위해 페이지네이션(목록 요청에만 해당)을 지원합니다.
    • (6.0.0+) ControllerExample: 하나 이상의 리소스를 list-watch하여 상태를 조정하는 컨트롤러를 구축합니다.
    • (6.0.0+) LeaderElectionExample: HA 컨트롤러 구현을 지원하는 리더 선출 유틸리티.
    • (9.0.0+) SpringIntegrationControllerExample: Spring 프레임워크의 빈 주입을 기반으로 Kubernetes 컨트롤러를 구축합니다.
    • (9.0.0+) GenericKubernetesClientExample: CRD를 포함한 모든 Kubernetes 유형에 대한 제네릭 클라이언트 인터페이스를 구성합니다.
  • 클라이언트 버전1.111.121.131.141.151.16
    3.0.0✓-----
    4.0.0+✓----
    5.0.0++✓---
    6.0.1+++✓--
    7.0.0++++✓✓
    8.0.2+++++✓