다음 참석자 중 한 명 Java 개발자를 위한 Kubernetes 교육 는 간소화된 쿠버네티스 개발 및 테스트를 위해 미니큐브를 사용해 볼 것을 제안했습니다. 이 블로그에서는 다음을 보여드립니다.
간단한 Java 애플리케이션을 사용하여 미니큐브를 시작하는 방법에 대해 알아보세요.
미니큐브 는 신속한 개발 및 테스트를 위해 로컬 머신에서 단일 노드 Kubernetes 클러스터를 시작합니다. 요구 사항 목록
다양한 운영 체제에 대한 정확한 요구 사항을 확인합니다.
이 블로그에서 확인할 수 있습니다:
- 하나의 노드 Kubernetes 클러스터 시작하기
- 카우치베이스 서비스 실행
- Java 애플리케이션 실행
- Kubernetes 대시보드 보기
이 블로그에서 사용된 모든 쿠버네티스 리소스 설명 파일은 다음 링크에 있습니다. github.com/arun-gupta/kubernetes-java-sample/tree/master/maven.
미니큐브를 사용하여 쿠버네티스 클러스터 시작하기
라는 이름으로 새 디렉터리를 만듭니다. 미니큐브. 해당 디렉터리에서 다음을 다운로드합니다. kubectl CLI:
|
1 |
curl -Lo kubectl http://storage.googleapis.com/kubernetes-release/release/v1.4.0/bin/darwin/amd64/kubectl && chmod +x kubectl |
다운로드 미니큐브 CLI:
|
1 |
curl -Lo 미니큐브 https://storage.googleapis.com/minikube/releases/v0.10.0/minikube-darwin-amd64 && chmod +x minikube |
클러스터를 시작합니다:
|
1 2 3 |
미니큐브 시작 시작 local Kubernetes 클러스터... Kubectl 는 지금 구성된 에 사용 의 클러스터. |
노드 목록을 볼 수 있습니다:
|
1 2 3 |
kubectl get 노드 이름 상태 AGE 미니큐브 준비 2h |
클러스터에 대한 자세한 내용은 다음을 사용하여 얻을 수 있습니다. kubectl 클러스터 정보 명령을 사용합니다:
|
1 2 3 4 5 |
kubectl 클러스터-정보 Kubernetes 마스터 는 실행 중 에서 https://192.168.99.100:8443 쿠버네티스-대시보드 는 실행 중 에서 https://192.168.99.100:8443/api/v1/프록시/네임스페이스/큐브-시스템/서비스/큐버네티스-대시보드 To 더 debug 그리고 진단 클러스터 문제, 사용 'kubectl 클러스터-정보 덤프'. |
백그라운드에서 가상 박스 가상 머신이 시작됩니다. 지원되는 전체 명령 집합은 다음을 사용하여 확인할 수 있습니다. --help:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
미니큐브 --도움말 미니큐브 는 a CLI 도구 그 조항 그리고 관리 단일-노드 Kubernetes 클러스터 최적화 에 대한 개발 워크플로. 사용법: 미니큐브 [명령] 사용 가능 명령: 대시보드 열기/디스플레이 의 쿠버네티스 대시보드 URL 에 대한 당신의 local 클러스터 삭제 삭제 a local 쿠버네티스 클러스터. 도커-환경 세트 up 도커 환경 변수; 유사 에 '$(도커-machine 환경)' get-k8s-버전 Gets 의 목록 의 사용 가능 쿠버네티스 버전 사용 가능 에 대한 미니큐브. IP 검색 의 IP 주소 의 의 실행 중 클러스터. 로그 Gets 의 로그 의 의 실행 중 로컬큐브 인스턴스, 사용됨 에 대한 디버깅 미니큐브, not 사용자 코드. 구성 수정 미니큐브 구성 서비스 Gets 의 쿠버네티스 URL 에 대한 의 지정된 서비스 in 당신의 local 클러스터 ssh 로그 에 또는 실행 a 명령 on a machine 와 함께 SSH; 유사 에 '도커-machine ssh' 시작 시작 a local 쿠버네티스 클러스터. 상태 Gets 의 상태 의 a local 쿠버네티스 클러스터. 중지 스톱 a 실행 중 local 쿠버네티스 클러스터. 버전 인쇄 의 버전 의 미니큐브. 플래그: --alsologtostderr[=false]: 로그 에 표준 오류 as 잘 as 파일 --로그-플러시-빈도=5s: 최대 숫자 의 초 사이 로그 플러시 --로그_백트레이스_at=:0: 언제 로깅 조회수 라인 파일:N, emit a 스택 추적 --log_dir="": 만약 비-빈, 쓰기 로그 파일 in 이 디렉토리 --로그토스트더러[=false]: 로그 에 표준 오류 대신 의 파일 --show-libmachine-로그[=false]: 여부 또는 not 에 show 로그 에서 libmachine. --stderrthreshold=2: 로그 에서 또는 위 이 임계값 go 에 stderr --v=0: 로그 레벨 에 대한 V 로그 --vmodule=: 쉼표-분리 목록 의 패턴=N 설정 에 대한 파일-필터링됨 로깅 사용 "minikube [command] --help" 에 대한 더 보기 정보 약 a 명령. |
카우치베이스 서비스 실행
만들기 카우치베이스 서비스:
|
1 2 3 |
kubectl create -f 카우치베이스-서비스.yml 서비스 "couchbase-service" 생성 복제 컨트롤러 "couchbase-rc" 생성 |
그러면 카우치베이스 서비스가 시작됩니다. 이 서비스는 복제 컨트롤러에서 생성한 파드를 사용합니다. 복제 컨트롤러는 단일 노드 Couchbase 서버를 생성합니다. 구성 파일은 다음 위치에 있습니다. github.com/arun-gupta/kubernetes-java-sample/blob/master/maven/couchbase-service.yml 처럼 보입니다:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
apiVersion: v1 종류: 서비스 메타데이터: 이름: 카우치베이스-서비스 사양: 선택기: 앱: 카우치베이스-rc-pod 포트: - 이름: 관리자 포트: 8091 - 이름: 조회수 포트: 8092 - 이름: 쿼리 포트: 8093 - 이름: 멤캐시드 포트: 11210 --- apiVersion: v1 종류: 복제 컨트롤러 메타데이터: 이름: 카우치베이스-rc 사양: 복제본: 1 템플릿: 메타데이터: 레이블: 앱: 카우치베이스-rc-pod 사양: 컨테이너: - 이름: 카우치베이스 이미지: arungupta/oreilly-카우치베이스 포트: - 컨테이너 포트: 8091 - 컨테이너 포트: 8092 - 컨테이너 포트: 8093 - 컨테이너 포트: 11210 |
Java 애플리케이션 실행
애플리케이션을 실행합니다:
|
1 2 |
kubectl create -f 부티풀-카우치베이스.yml job "부티풀-카우치베이스" 생성 |
구성 파일은 다음 위치에 있습니다. github.com/arun-gupta/kubernetes-java-sample/blob/master/maven/bootiful-couchbase.yml 처럼 보입니다:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
apiVersion: 배치/v1 종류: Job 메타데이터: 이름: 부티풀-카우치베이스 레이블: 이름: 부티풀-카우치베이스-pod 사양: 템플릿: 메타데이터: 이름: 부티풀-카우치베이스-pod 사양: 컨테이너: - 이름: 부티풀-카우치베이스 이미지: arungupta/부티풀-카우치베이스 환경: - 이름: COUCHBASE_URI 값: 카우치베이스-서비스 restartPolicy: 절대로 |
이것은 일회성 작업 실행 는 Java(Spring Boot) 애플리케이션을 실행하고 Couchbase에서 JSON 문서를 업서트(삽입 또는 업데이트)합니다. 이 작업에서는 COUCHBASE_URI 환경 변수 값
로 설정되어 있습니다. 카우치베이스 서비스. 앞서 생성한 서비스 이름입니다. 이 서비스에 사용된 도커 이미지는 아룽업타/부티풀-카우치베이스 를 사용하여 생성되며 패브릭8-maven-플러그인 에 표시된 것처럼 github.com/arun-gupta/kubernetes-java-sample/blob/master/maven/webapp/pom.xml#L57-L68. 특히, Docker
이미지입니다:
|
1 |
자바 -Dspring.카우치베이스.부트스트랩-호스트=$COUCHBASE_URI -jar /maven/${프로젝트.artifactId}.jar |
이를 통해 다음을 보장합니다. COUCHBASE_URI 환경 변수가 재정의되고 있습니다. spring.couchbase.bootstrap-hosts 속성에 정의된 대로 application.properties 의 스프링 부트 애플리케이션의
Kubernetes 대시보드
쿠버네티스 1.4에는 업데이트된 대시보드가 포함되어 있습니다. 미니큐브의 경우, 다음 명령을 사용하여 열 수 있습니다:
|
1 2 |
미니큐브 대시보드 대기 중, 엔드포인트 에 대한 서비스 는 not 준비 아직...열기 쿠버네티스 대시보드 in 기본값 브라우저... |
기본 보기는 아래와 같습니다:

하지만 저희의 경우에는 이미 몇 가지 리소스가 생성되어 있으므로 다음과 같이 표시됩니다:
잡, 리플리케이션 컨트롤러 및 파드가 여기에 표시됩니다.
쿠버네티스 클러스터 종료
클러스터를 쉽게 종료할 수 있습니다:
|
1 2 3 |
미니큐브 중지 중지 local Kubernetes 클러스터... 머신 중지. |
couchbase.com/containers 에서 다양한 오케스트레이션 프레임워크를 사용하여 Couchbase를 실행하는 방법에 대한 자세한 내용을 확인할 수 있습니다. 추가 참조:
- 카우치베이스 포럼 또는 스택오버플로우
- 팔로우하세요 @couchbasedev 또는 @couchbase
- 자세히 알아보기 카우치베이스 서버