도커 스웜 및 서비스 모드로 카우치베이스 클러스터 생성하기 는 Docker를 사용하여 Couchbase 클러스터를 생성하는 방법을 설명했습니다. 클러스터 생성을 단순화하고 자동화하기 위해 "마스터"와 "워커" 서비스의 개념을 사용했습니다. 그런 다음 아래 아키텍처 다이어그램과 같이 균일한 클러스터가 생성되었습니다:
자세한 내용과 배경은 Docker를 사용한 카우치베이스 클러스터 블로그.
Docker 1.13 가 지난주에 출시되었습니다. 이 릴리스의 새로운 기능으로 다음을 수행할 수 있습니다. Docker Compose를 사용하여 정의한 멀티 컨테이너 애플리케이션을 멀티 호스트에 배포하기 스웜 모드를 사용하여 활성화합니다. 이상적으로는 하나의 도커 컴포즈 정의를 통해 "마스터" 서비스를 시작하고 "워커" 서비스를 시작/확장할 수 있습니다. 그러나 "마스터" 서비스, 더 중요하게는 서비스 내의 컨테이너가 완전히 가동되어야 "워커" 서비스를 시작할 수 있습니다. 이는 "작업자" 서비스의 컨테이너가 "마스터" 서비스의 컨테이너와 함께 등록되어 클러스터를 생성하기 때문입니다. 이를 위해서는 일반적으로 다음에서 정의된 대로 약간의 수작업이 필요합니다. Compose에서 시작 순서 제어. 나중에 이 버전으로 다시 돌아오겠습니다.
이 블로그에서는 Docker 1.13을 사용하여 원래의 단계를 간략하게 다시 설명합니다. 이 블로그에서 간단한 방법과 오리지널 블로그 에서 자세한 이유를 확인하세요.
네트워크 만들기:
1 2 3 |
도커 네트워크 create -d 오버레이 카우치베이스 |
다음을 사용하여 생성된 네트워크를 확인합니다. 도커 네트워크 ls
명령을 사용합니다:
1 2 3 4 5 6 7 |
네트워크 ID 이름 드라이버 범위 20a28d56f140 bridge bridge local 5MAQ7FYQDEMX 카우치베이스 오버레이 swarm CD14345EC130 도커_gwbridge bridge local 46a19cdead82 호스트 호스트 local p1kbq62oxmn9 진입 오버레이 swarm 1b64333f45ec 없음 null local |
Couchbase "마스터" 서비스를 만듭니다:
1 2 3 4 5 6 7 |
도커 서비스 create --이름 카우치베이스-마스터 --복제본 1 -p 8091:8091 --네트워크 카우치베이스 -e 유형=마스터 arungupta/카우치베이스 |
다음을 사용하여 생성된 서비스를 확인합니다. 도커 서비스 ls
명령을 사용합니다:
1 2 |
ID 이름 모드 복제 이미지 V5M0OWJS4QO3 카우치베이스-마스터 복제 1/1 arungupta/카우치베이스:최신 |
Couchbase "작업자" 서비스를 만듭니다:
1 2 3 4 5 6 7 8 |
도커 서비스 create --이름 카우치베이스-worker --복제본 1 --네트워크 카우치베이스 -e 유형=WORKER -e couchbase_master=카우치베이스-마스터.카우치베이스 -e AUTO_REBALANCE=false arungupta/카우치베이스 |
생성된 서비스를 다시 확인하려면 도커 서비스 ls
명령을 사용합니다:
1 2 3 |
ID 이름 모드 복제 이미지 V5M0OWJS4QO3 카우치베이스-마스터 복제 1/1 arungupta/카우치베이스:최신 ZQQQK76CU1JW 카우치베이스-worker 복제 1/1 arungupta/카우치베이스:최신 |
새로 도입된 명령을 사용하여 워커 서비스 로그 확인 도커 서비스 로그 카우치베이스-워커
명령어를 사용하세요. Docker 1.13에 새로 도입된 이 명령은 서비스의 모든 컨테이너에서 로그를 가져와서 콘솔로 스트리밍합니다. 어떤 컨테이너가 어떤 호스트에서 실행 중인지 추적할 필요가 없습니다.
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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
카우치베이스-worker.1.3X52HRO26166@moby | ++ set -m 카우치베이스-worker.1.3X52HRO26166@moby | ++ 수면 15 카우치베이스-worker.1.3X52HRO26166@moby | ++ /진입점.sh 카우치베이스-서버 카우치베이스-worker.1.3X52HRO26166@moby | 시작 카우치베이스 서버 -- 웹 UI 사용 가능 에서 http://:8091 및 /opt/couchbase/var/lib/couchbase/logs에 로그가 있습니다. 카우치베이스-worker.1.3X52HRO26166@moby | ++ curl -v -X POST http://127.0.0.1:8091/pools/default -d memoryQuota=300 -d indexMemoryQuota=300 카우치베이스-worker.1.3X52HRO26166@moby | 참고: 불필요한 사용 의 -X 또는 --요청, POST 는 이미 추론. 카우치베이스-worker.1.3X52HRO26166@moby | * 시도 중 127.0.0.1... 카우치베이스-worker.1.3X52HRO26166@moby | % 합계 % 수신됨 % Xferd 평균 속도 시간 시간 시간 현재 카우치베이스-worker.1.3X52HRO26166@moby | Dload 업로드 합계 소비 왼쪽 속도 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* 연결됨 에 127.0.0.1 (127.0.0.1) 포트 8091 (#0) 카우치베이스-worker.1.3X52HRO26166@moby | > POST /풀/기본값 HTTP/1.1 카우치베이스-worker.1.3X52HRO26166@moby | > 호스트: 127.0.0.1:8091 카우치베이스-worker.1.3X52HRO26166@moby | > 사용자-에이전트: curl/7.49.1-DEV 카우치베이스-worker.1.3X52HRO26166@moby | > 수락: */* couchbase-worker.1.3x52hro26166@moby | > 콘텐츠-길이: 36 couchbase-worker.1.3x52hro26166@moby | > Content-Type: application/x-www-form-urlencoded couchbase-worker.1.3x52hro26166@moby | > couchbase-worker.1.3x52hro26166@moby | } [36바이트 데이터] couchbase-worker.1.3x52hro26166@moby | * 업로드가 완전히 전송되었습니다: 36바이트 중 36바이트 couchbase-worker.1.3x52hro26166@moby | < HTTP/1.1 200 OK couchbase-worker.1.3x52hro26166@moby | < 서버: 카우치베이스 서버 couchbase-worker.1.3x52hro26166@moby | < 프래그마: 캐시 없음 couchbase-worker.1.3x52hro26166@moby | < 날짜: Sun, 22 Jan 2017 22:01:15 GMT couchbase-worker.1.3x52hro26166@moby | < Content-Length: 0 couchbase-worker.1.3x52hro26166@moby | < 캐시-제어: no-cache couchbase-worker.1.3x52hro26166@moby | < 100 36 0 0 100 36 0 13057 --:--:-- --:--:-- --:--:-- 18000 couchbase-worker.1.3x52hro26166@moby | * Connection #0 to host 127.0.0.1 left intact couchbase-worker.1.3x52hro26166@moby | ++ curl -v http://127.0.0.1:8091/node/controller/setupServices -d services=kv%2Cn1ql%2Cindex couchbase-worker.1.3x52hro26166@moby | * Trying 127.0.0.1... couchbase-worker.1.3x52hro26166@moby | % Total % Received % Xferd Average Speed Time Time Time Current couchbase-worker.1.3x52hro26166@moby | Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Connected to 127.0.0.1 (127.0.0.1) port 8091 (#0) couchbase-worker.1.3x52hro26166@moby | > POST /node/controller/setupServices HTTP/1.1 couchbase-worker.1.3x52hro26166@moby | > 호스트: 127.0.0.1:8091 couchbase-worker.1.3x52hro26166@moby | > 사용자-에이전트: curl/7.49.1-DEV couchbase-worker.1.3x52hro26166@moby | > 수락: */* 카우치베이스-worker.1.3X52HRO26166@moby | > 콘텐츠-길이: 26 카우치베이스-worker.1.3X52HRO26166@moby | > 콘텐츠-유형: 애플리케이션/x-www-양식-urlencoded 카우치베이스-worker.1.3X52HRO26166@moby | > 카우치베이스-worker.1.3X52HRO26166@moby | } [26 바이트 데이터] 카우치베이스-worker.1.3X52HRO26166@moby | * 업로드 완전히 보낸 꺼짐: 26 out 의 26 바이트 카우치베이스-worker.1.3X52HRO26166@moby | < HTTP/1.1 200 확인 카우치베이스-worker.1.3X52HRO26166@moby | < 서버: 카우치베이스 서버 카우치베이스-worker.1.3X52HRO26166@moby | < Pragma: 아니요-캐시 카우치베이스-worker.1.3X52HRO26166@moby | < 날짜: Sun, 22 Jan 2017 22:01:15 GMT 카우치베이스-worker.1.3X52HRO26166@moby | < 콘텐츠-길이: 0 카우치베이스-worker.1.3X52HRO26166@moby | < 캐시-제어: 아니요-캐시 카우치베이스-worker.1.3X52HRO26166@moby | < 100 26 0 0 100 26 0 13171 --:--:-- --:--:-- --:--:-- 26000 카우치베이스-worker.1.3X52HRO26166@moby | * 연결 #0 호스트 127.0.0.1 왼쪽 그대로 couchbase-worker.1.3x52hro26166@moby | ++ curl -v http://127.0.0.1:8091/settings/web -d port=8091 -d username=Administrator -d password=password couchbase-worker.1.3x52hro26166@moby | * Trying 127.0.0.1... couchbase-worker.1.3x52hro26166@moby | % 총 % 수신 % Xferd 평균 속도 시간 시간 현재 couchbase-worker.1.3x52hro26166@moby | Dload 업로드 총 남은 속도 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* 127.0.0.1(127.0.0.1) 포트 8091(#0)에 연결됨 couchbase-worker.1.3x52hro26166@moby | > POST /settings/web HTTP/1.1 카우치베이스-worker.1.3X52HRO26166@moby | > 호스트: 127.0.0.1:8091 카우치베이스-worker.1.3X52HRO26166@moby | > 사용자-에이전트: curl/7.49.1-DEV 카우치베이스-worker.1.3X52HRO26166@moby | > 수락: */* 카우치베이스-worker.1.3X52HRO26166@moby | > 콘텐츠-길이: 50 카우치베이스-worker.1.3X52HRO26166@moby | > 콘텐츠-유형: 애플리케이션/x-www-양식-urlencoded 카우치베이스-worker.1.3X52HRO26166@moby | > 카우치베이스-worker.1.3X52HRO26166@moby | } [50 바이트 데이터] 카우치베이스-worker.1.3X52HRO26166@moby | * 업로드 완전히 보낸 꺼짐: 50 out 의 50 바이트 카우치베이스-worker.1.3X52HRO26166@moby | < HTTP/1.1 200 확인 카우치베이스-worker.1.3X52HRO26166@moby | < 서버: 카우치베이스 서버 카우치베이스-worker.1.3X52HRO26166@moby | < Pragma: 아니요-캐시 카우치베이스-worker.1.3X52HRO26166@moby | < 날짜: Sun, 22 Jan 2017 22:01:15 GMT 카우치베이스-worker.1.3X52HRO26166@moby | < 콘텐츠-유형: 애플리케이션/json 카우치베이스-worker.1.3X52HRO26166@moby | < 콘텐츠-길이: 39 카우치베이스-worker.1.3X52HRO26166@moby | < 캐시-제어: 아니요-캐시 카우치베이스-worker.1.3X52HRO26166@moby | < 카우치베이스-worker.1.3X52HRO26166@moby | { [39 바이트 데이터] 100 89 100 39 100 50 3423 4389 --:--:-- --:--:-- --:--:-- 4545 카우치베이스-worker.1.3X52HRO26166@moby | * 연결 #0에서 호스트 127.0.0.1까지 그대로 유지됨 카우치베이스-worker.1.3X52HRO26166@moby | ++ curl -i -u 관리자:비밀번호 -X POST http://127.0.0.1:8091/settings/indexes -d storageMode=memory_optimized 카우치베이스-worker.1.3X52HRO26166@moby | % 합계 % 수신됨 % Xferd 평균 속도 시간 시간 시간 현재 카우치베이스-worker.1.3X52HRO26166@moby | Dload 업로드 합계 소비 왼쪽 속도 100 180 100 152 100 28 13264 2443 --:--:-- --:--:-- --:--:-- 13818 카우치베이스-worker.1.3X52HRO26166@moby | {"newBaseUri":"http://127.0.0.1:8091/"}HTTP/1.1 200 확인 카우치베이스-worker.1.3X52HRO26166@moby | 서버: 카우치베이스 서버 카우치베이스-worker.1.3X52HRO26166@moby | Pragma: 아니요-캐시 카우치베이스-worker.1.3X52HRO26166@moby | 날짜: Sun, 22 Jan 2017 22:01:15 GMT 카우치베이스-worker.1.3X52HRO26166@moby | 콘텐츠-유형: 애플리케이션/json 카우치베이스-worker.1.3X52HRO26166@moby | 콘텐츠-길이: 152 카우치베이스-worker.1.3X52HRO26166@moby | 캐시-제어: 아니요-캐시 카우치베이스-worker.1.3X52HRO26166@moby | 카우치베이스-worker.1.3X52HRO26166@moby | ++ echo 'Type: WORKER' 카우치베이스-worker.1.3X52HRO26166@moby | ++ '[' WORKER = WORKER ']' 카우치베이스-worker.1.3X52HRO26166@moby | ++ echo '잠자는 중 ...' 카우치베이스-worker.1.3X52HRO26166@moby | ++ 수면 15 카우치베이스-worker.1.3X52HRO26166@moby | {"storageMode":"memory_optimized","indexerThreads":0,"메모리 스냅샷 간격":200,"안정적인 스냅샷 간격":5000,"최대 롤백 포인트":5,"logLevel":"정보"}유형: WORKER 카우치베이스-worker.1.3X52HRO26166@moby | 수면 ... 카우치베이스-worker.1.3X52HRO26166@moby | +++ 호스트 이름 -I 카우치베이스-worker.1.3X52HRO26166@moby | +++ 컷 -d ' ' -f1 카우치베이스-worker.1.3X52HRO26166@moby | ++ IP=10.0.0.5 카우치베이스-worker.1.3X52HRO26166@moby | ++ echo 'IP: ' 10.0.0.5 카우치베이스-worker.1.3X52HRO26166@moby | ++ echo '자동 재조정: 거짓' 카우치베이스-worker.1.3X52HRO26166@moby | IP: 10.0.0.5 카우치베이스-worker.1.3X52HRO26166@moby | ++ '[' false = true ']' 카우치베이스-worker.1.3X52HRO26166@moby | ++ 카우치베이스-cli 서버-추가 --클러스터=카우치베이스-마스터.카우치베이스:8091 --사용자=관리자 --비밀번호=비밀번호 --서버-추가=10.0.0.5 --서버-추가-사용자 이름=관리자 --서버-추가-비밀번호=비밀번호 카우치베이스-worker.1.3X52HRO26166@moby | 자동 재조정: false 카우치베이스-worker.1.3X52HRO26166@moby | 경고: 추가 서버 에서 그룹-관리 는 사용 중단 카우치베이스-worker.1.3X52HRO26166@moby | 서버 10.0.0.5:8091 추가 카우치베이스-worker.1.3X52HRO26166@moby | ++ fg 1 카우치베이스-worker.1.3X52HRO26166@moby | /진입점.sh 카우치베이스-서버 |
전체 로그는 "worker" 서비스가 어떻게 생성되어 원래 "master"가 만든 클러스터에 가입했는지 보여줍니다.
Docker 서비스를 확장하여 클러스터를 확장합니다:
1 |
도커 서비스 규모 카우치베이스-worker=2 |
다음을 사용하여 서비스를 다시 확인하세요. 도커 서비스 ls
명령을 사용합니다:
1 2 3 |
ID 이름 모드 복제 이미지 V5M0OWJS4QO3 카우치베이스-마스터 복제 1/1 arungupta/카우치베이스:최신 ZQQQK76CU1JW 카우치베이스-worker 복제 2/2 arungupta/카우치베이스:최신 |
이제 3노드 Couchbase 클러스터가 생겼습니다. 이전 클러스터 재조정의 기능을 빠르게 확인해 보겠습니다. 카우치베이스 웹 콘솔 를 표시합니다.
카우치베이스 웹 콘솔은 다음에서 액세스할 수 있습니다. http://localhost:8091 데이터, 인덱스 및 쿼리 서비스가 있는 단일 Couchbase 노드를 보여줍니다. 이 노드는 "master" 서비스를 사용하여 생성되었습니다. "worker" 서비스를 사용하여 생성된 두 개의 추가 노드가 표시되어 있습니다. 보류 중인 재조정
탭을 클릭합니다:
재조정을 클릭하여 재조정
를 클릭하고 완전히 재조정된 클러스터를 확인합니다:
Couchbase를 시작하고 싶으신가요? 다음을 살펴보세요. 카우치베이스 스타터 키트.
컨테이너에서 Couchbase를 실행하는 방법에 대해 자세히 알아보고 싶으신가요?
[...] Docker를 사용하여 카우치베이스 클러스터를 실행하거나 [...]에 Docker 서비스 배포에 대해 자세히 알아볼 수도 있습니다.