이 블로그 게시물에서는 Docker의 풀 아머인 Docker 머신을 사용하여 Couchbase 클러스터를 생성하고 확장하는 방법을 설명합니다, 도커 스웜 및 도커 컴포즈. 방법은 다음과 같습니다:
- 도커 머신을 사용하여 3노드 도커 스웜 클러스터 만들기
- 두 개의 노드에서 Couchbase 인스턴스 실행
- 클러스터 만들기
- 클러스터 재조정
- 클러스터를 다시 확장하고 재조정하기
컨설트를 사용하는 도커 스웜 클러스터
도커 머신을 사용하여 3노드 도커 스웜 클러스터를 생성합니다:
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 |
영사용 # 도커 머신 도커-machine create -d 가상박스 영사-machine # 시작 컨설턴트 도커 $(도커-machine 구성 영사-machine) 실행 -d --다시 시작=항상 -p "8500:8500" -h "영사" 프로그리움/영사 -서버 -부트스트랩 # 도커 스웜 마스터 도커-machine create -d 가상박스 --swarm --swarm-마스터 --swarm-발견="consul://$(도커-머신 아이피 consul-machine):8500" --엔진-opt="클러스터-스토어=컨설턴트://$(도커-머신 IP 컨설턴트-머신):8500" --엔진-opt="cluster-advertise=eth1:2376" swarm-마스터 # 도커 스웜 노드-01 도커-machine create -d 가상박스 --swarm --swarm-발견="consul://$(도커-머신 아이피 consul-machine):8500" --엔진-opt="클러스터-스토어=컨설턴트://$(도커-머신 IP 컨설턴트-머신):8500" --엔진-opt="cluster-advertise=eth1:2376" swarm-노드-01 # 도커 스웜 노드-02 도커-machine create -d 가상박스 --가상박스-디스크-크기 "5000" --swarm --swarm-발견="consul://$(도커-머신 아이피 consul-machine):8500" --엔진-opt="클러스터-스토어=컨설턴트://$(도커-머신 IP 컨설턴트-머신):8500" --엔진-opt="cluster-advertise=eth1:2376" swarm-노드-02 # 도커 스웜 클러스터를 사용하도록 구성하기 평가 "$(도커-머신 환경-스웜 스웜 마스터)" |
도커 머신으로 스웜 클러스터 프로비저닝하기 에서 이 스크립트에서 수행되는 작업과 이유에 대한 자세한 내용을 확인할 수 있습니다. 다음은 요약입니다:
- Docker 머신을 생성하고 서비스 검색을 위해 Consul을 실행하세요.
- 마스터 노드용 1개와 워커 노드용 2개로 3개의 Docker 머신을 생성하고, 각 머신은 다음을 사용하여 스웜 클러스터의 일부가 되도록 구성합니다.
--스웜
. 또한 다음을 사용하여 지정된 컨설턴트 서비스 검색을 사용합니다.--스웜 검색
.
도커 스웜의 카우치베이스 노드
Docker Compose를 사용하여 Couchbase 인스턴스 두 개를 생성합니다:
1 2 3 4 5 6 7 8 9 10 |
버전: "2" 서비스: db: 이미지: arungupta/카우치베이스 네트워크 모드: "host" 포트: - 8091:8091 - 8092:8092 - 8093:8093 - 11210:11210 |
아룽업타/카우치베이스
이미지가 사용됩니다. 이 이미지는 다음에서 정의됩니다. 카우치베이스 도커 이미지. 이는 공식 카우치베이스 도커 이미지 추가
설명대로 구성합니다:
- 인덱스 및 데이터용 메모리 설정
- 인덱스, 데이터 및 쿼리 서비스로 Couchbase 서버 구성하기
- 사용자 이름 및 비밀번호 자격 증명 설정
- 로드합니다.
여행 샘플
버킷
파일 용도 작성 호스트
네트워크에 연결합니다. 이는 --net=host
를 도커 실행 CLI에 추가합니다. 컨테이너가 호스트 네트워킹 스택을 사용할 수 있습니다. 또한 단일 Couchbase 컨테이너만 실행하도록 제한합니다.
단일 Docker 머신으로 확장할 수 있습니다. 즉, Couchbase 클러스터는 Docker 머신의 수에 따라 확장할 수 있습니다(저희의 경우 3개). 이 Compose 파일을 사용하는 정확한 명령은 다음과 같습니다:
1 2 3 4 5 6 7 8 9 10 11 12 |
도커-작성 규모 db=2 경고: 그리고 "db" 서비스 지정 a 포트 on 의 호스트. 만약 여러 컨테이너 에 대한 이 서비스 는 생성 on a 단일 호스트, 의 포트 will 충돌. 만들기 그리고 시작 couchbaseockerswarm_db_1 ... 만들기 그리고 시작 couchbaseockerswarm_db_2 ... 당기기 db (arungupta/카우치베이스:최신)... swarm-노드-02: 당기기 arungupta/카우치베이스:최신... swarm-마스터: 당기기 arungupta/카우치베이스:최신... swarm-노드-01: 당기기 arungupta/카우치베이스:최신... 당기기 db (arungupta/카우치베이스:최신)... swarm-노드-02: 당기기 arungupta/카우치베이스:최신... : 다운로드 만들기 그리고 시작 couchbaseockerswarm_db_1 ... 완료 만들기 그리고 시작 couchbaseockerswarm_db_2 ... 완료 |
도커 스웜 클러스터에는 세 개의 노드가 있습니다. 노드는 기본 스케줄러 전략 는 확산
따라서 컨테이너는 다른 호스트에 분산됩니다. 이는 분명합니다.
by 도커 PS
:
1 2 3 4 |
도커 ps 컨테이너 ID 이미지 COMMAND 생성됨 상태 포트 이름 4c8c149f4e34 arungupta/카우치베이스 "/entrypoint.sh /opt/" 44 초 전 Up 44 초 swarm-노드-02/couchbaseockerswarm_db_1 d3b6a1dbddb5 arungupta/카우치베이스 "/entrypoint.sh /opt/" 44 초 전 Up 44 초 swarm-노드-01/couchbaseockerswarm_db_2 |
하나의 Couchbase 서버가 다음에서 실행 중입니다. swarm-node-01
그리고 다른 swarm-node-02
. 각 서버는 관리자 사용자 이름으로 구성됩니다. 관리자
및 비밀번호 비밀번호
. IP 찾기
도커 머신의 주소입니다:
1 2 3 4 5 6 7 |
도커-machine ls 이름 ACTIVE 드라이버 상태 URL SWARM DOCKER 오류 영사-machine - 가상박스 실행 중 tcp://192.168.99.106:2376 v1.11.1 기본값 - 가상박스 실행 중 tcp://192.168.99.100:2376 v1.11.0 swarm-마스터 * (swarm) 가상박스 실행 중 tcp://192.168.99.107:2376 swarm-master(마스터) v1.11.1 swarm-노드-01 - 가상박스 실행 중 tcp://192.168.99.108:2376 swarm-master v1.11.1 swarm-노드-02 - 가상박스 실행 중 tcp://192.168.99.109:2376 swarm-master v1.11.1 |
다음과 같은 경우 jq 설치 를 입력하면 IP 주소를 다음과 같이 편리하게 찾을 수 있습니다:
1 2 |
도커-machine 검사 swarm-노드-01 | jq ".Driver.IPAddress" "192.168.99.108" |
도커 스웜의 카우치베이스 클러스터
모든 Couchbase 서버 노드는 동일하게 생성됩니다. 따라서 Couchbase 클러스터는 증가하는 애플리케이션 수요를 충족하기 위해 수평적으로 확장할 수 있습니다. 독립적으로 실행되는 Couchbase 노드는 클러스터에 추가할 수 있습니다. 서버 추가
CLI 명령을 실행합니다. 이 과정은 일반적으로 2단계로 진행됩니다. 첫 번째 단계는 하나 이상의 노드를 추가하는 것입니다. 그런 다음 두 번째 단계에서는 기존 노드의 데이터를 업데이트된 클러스터 전체에서 재조정하는 클러스터 재조정 작업을 수행합니다. 우리의 경우, 단일 Couchbase
컨테이너가 각 도커 머신에서 실행 중입니다. Couchbase 노드 중 하나의 IP 주소를 선택하고 다른 노드의 IP 주소를 추가할 수 있습니다:
1 2 3 4 5 6 7 8 9 10 |
도커 실행 -it arungupta/카우치베이스 카우치베이스-cli 서버-추가 --클러스터=`도커-machine 검사 swarm-노드-01 | jq -r ".Driver.IPAddress"`:8091 --사용자 관리자 --비밀번호 비밀번호 --서버-추가=`도커-machine 검사 swarm-노드-02 | jq -r ".Driver.IPAddress"` --서버-추가-사용자 이름=관리자 --서버-추가-비밀번호=비밀번호 성공: 서버-추가 192.168.99.109:8091 |
두 노드에 대한 Couchbase 웹 콘솔은 비슷한 출력을 표시합니다:
이는 이제 두 노드가 클러스터를 형성하고 있으며 밸런스를 재조정해야 함을 보여줍니다.
카우치베이스 클러스터 재조정
이제 클러스터의 밸런스를 다시 조정해 보겠습니다:
1 2 3 |
도커 실행 -it arungupta/카우치베이스 카우치베이스-cli 재조정 --클러스터=`도커-machine 검사 swarm-노드-01 | jq -r ".Driver.IPAddress"`:8091 --사용자 관리자 --비밀번호 비밀번호 정보: 리밸런싱 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 성공: 재조정 클러스터 |
리밸런싱이 진행 중임을 표시하도록 Couchbase 웹 콘솔이 업데이트됩니다:
마지막으로 재조정된 클러스터를 볼 수 있습니다:
카우치베이스 클러스터 확장 및 재조정
Couchbase 클러스터를 확장합니다:
1 2 3 |
도커-작성 규모 db=3 경고: 그리고 "db" 서비스 지정 a 포트 on 의 호스트. 만약 여러 컨테이너 에 대한 이 서비스 는 생성 on a 단일 호스트, 의 포트 will 충돌. 만들기 그리고 시작 couchbaseockerswarm_db_3 ... 완료 |
컨테이너가 다른 Docker 머신에서 실행 중인지 확인하세요:
1 2 3 4 5 |
도커 ps 컨테이너 ID 이미지 COMMAND 생성됨 상태 포트 이름 02F94E2B3D3E arungupta/카우치베이스 "/entrypoint.sh /opt/" 9 초 전 Up 8 초 swarm-마스터/couchbaseockerswarm_db_3 4c8c149f4e34 arungupta/카우치베이스 "/entrypoint.sh /opt/" 정보 an 시간 전 Up 정보 an 시간 swarm-노드-02/couchbaseockerswarm_db_1 d3b6a1dbddb5 arungupta/카우치베이스 "/entrypoint.sh /opt/" 정보 an 시간 전 Up 정보 an 시간 swarm-노드-01/couchbaseockerswarm_db_2 |
앞서 언급했듯이 Couchbase 클러스터 확장은 두 단계로 이루어집니다. 일반적으로 여러 서버를 추가한 다음 클러스터의 밸런스를 재조정하기 때문입니다. 하지만 Couchbase 노드 하나만 추가한 다음 재조정하면 되는 경우도 있습니다,
재조정 명령을 사용하여 이를 달성할 수 있습니다. 이 경우에는 다음과 같이 수행됩니다:
1 2 3 4 |
도커 실행 -it arungupta/카우치베이스 카우치베이스-cli 재조정 --클러스터=`도커-machine 검사 swarm-노드-01 | jq -r ".Driver.IPAddress"`:8091 --사용자 관리자 --비밀번호 비밀번호 --서버-추가=`도커-machine 검사 swarm-마스터 | jq -r ".Driver.IPAddress"` --서버-추가-사용자 이름=관리자 --서버-추가-비밀번호=비밀번호 성공: 서버-추가 192.168.99.107:8091 정보: 리밸런싱 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 성공: 재조정 클러스터 |
이 블로그에서는 도커 스웜, 머신 및 컴포즈를 사용하여 Couchbase 클러스터를 쉽게 생성하고 확장하는 방법을 보여드립니다. 즐겨보세요! 더 읽어보기 ...
- 카우치베이스 서버 개발자 포털
- 카우치베이스 서버 개념
- 카우치베이스 클러스터 설정
- 다음에 대한 질문 스택오버플로, 포럼 또는 슬랙 채널
- 팔로우하기 @couchbasedev
- Couchbase 4.5 베타