DC/OS 및 Amazon을 사용하는 Mesos의 Couchbase

Couchbase Docker 컨테이너는 다양한 오케스트레이션 플랫폼에서 쉽게 실행할 수 있습니다:

아파치 메소스 및 마라톤을 사용하는 도커 컨테이너 는 Mesos, Marathon을 설정하고 간단한 Docker 이미지를 실행하는 방법을 설명했습니다. 설정은 상당히 복잡하고 약간
flaky. Mesos 마스터 및 슬레이브, ZooKeeper, Docker 엔진 및 마라톤을 다운로드하여 설치해야 합니다. 경우에 따라 올바른 리포지토리를 먼저 추가해야 하는 경우도 있습니다. 이러한 구성 요소는 각각과 통신해야 하므로 다음과 같이 구성해야 합니다.
를 사용해야 합니다. 이러한 설정을 통과하더라도 전체 인프라를 하나의 엔터티로 어떻게 모니터링할 수 있을까요?
만나기 DC/OS - 데이터센터 운영 체제. Apache Mesos를 사용하는 분산 운영 체제입니다.
를 커널로 사용합니다.
dcos-kernel
DC/OS 설치 가능
다양한 방식으로 지원합니다:

  • Vagrant를 사용하는 로컬
  • 아마존/클라우드포메이션, 마이크로소프트 애저 및 패킷을 사용하는 클라우드
  • CentOS 또는 CoreOS를 사용하는 온프레미스

이 블로그에서는 Amazon에서 CloudFormation 템플릿을 사용하는 DC/OS 클러스터 를 실행하고 Couchbase Docker 컨테이너를 실행합니다.

DC/OS 클러스터 시작

DC/OS 클러스터 시작:
dcos-couchbase-1

기본값을 사용하세요:
dcos-couchbase-2

템플릿에 이름을 지정하고, 이전에 만든 키쌍을 선택하고, 슬레이브 수를 변경합니다:
dcos-couchbase-3

기본값을 사용하세요:
dcos-couchbase-4

구성을 확인합니다:
dcos-couchbase-5

"동의합니다..."를 클릭하고 만들기를 클릭하여 템플릿 만들기를 시작합니다. CloudFormation 스택 상태  페이지가 나타납니다:
dcos-couchbase-6

적절한 지역을 선택하세요. 약 10~15분 후에 상태가 변경됩니다:
dcos-couchbase-7

상태가 다음에서 변경될 때까지 기다립니다. create_in_progresscreate_complete.

DC/OS CLI 다운로드 및 구성

DC/OS CLI 를 사용하여 클러스터 노드를 관리하고, DC/OS 패키지를 설치하고, 클러스터 상태를 검사하고, DC/OS 서비스 하위 명령을 관리할 수 있습니다. DC/OS CLI 설치 on
로컬 머신으로 이동합니다.

귀하의 CloudFormation 스택 상태  페이지에서 생성된 스택을 선택합니다, 출력 탭을 클릭하고
메소스 마스터.
dcos-couchbase-8

이 클러스터를 사용하도록 DC/OS CLI를 구성합니다:

인증합니다:

브라우저에 URL을 입력하고 안전하지 않은 URL로 이동합니다:
dcos-couchbase-9

토큰을 클립보드에 복사합니다:
dcos-couchbase-10

터미널 창에 인증 토큰을 붙여넣습니다:

메소스 및 마라톤 UI

Mesos UI는 Mesos 마스터의 주소를 사용하여 사용할 수 있습니다:
dcos-couchbase

를 클릭합니다. 서비스 를 클릭하면 이미 설치된 마라톤 서비스를 확인할 수 있습니다:
dcos-couchbase-12

마라톤을 클릭하면 작업 목록을 볼 수 있습니다:
dcos-couchbase-13

새로 만든 클러스터의 경우 예상대로 아직 작업이 할당되지 않았습니다. 클러스터에서 노드 를 클릭해 노드를 확인합니다:
dcos-couchbase-14

마라톤 로드 밸런서 설치 및 구성

DC/OS 슬레이브 노드는 인터넷에 직접 노출되지 않습니다. 슬레이브에서 실행 중인 작업을 노출하도록 "외부" 로드 밸런서를 구성할 수 있습니다. 마라톤-lb마라톤의 줄임말
로드 밸런서는 Mesos 서비스로 제공되는 로드 밸런서입니다. SSL 지원, HTTP 압축, 상태 확인 등의 기능을 통해 TCP 및 HTTP 기반 애플리케이션에 프록시 및 로드 밸런싱을 제공하는 HAProxy를 기반으로 합니다.
Marathon-lb는 Marathon의 이벤트 버스를 구독하고 HAProxy 구성을 실시간으로 업데이트합니다.

마라톤 서비스 UI에 LB 작업이 실행 중이라는 메시지가 표시됩니다:
dcos-couchbase-15

AWS 로드 밸런서는 기본적으로 포트 80과 443을 허용합니다. 포트 8091에 노출될 Couchbase 서버를 실행하겠습니다.

In CloudFormation 스택 상태  페이지에서 값을 복사합니다. 열의 PublicSlaveDnsAddress:
dcos-couchbase-16

In AWS 콘솔에서 로드 밸런서를 선택합니다.를 클릭하고 TCP에서 포트 8091을 허용하는 새 방화벽 규칙을 추가합니다:
dcos-couchbase-17

DC/OS에서 카우치베이스 서버 도커 컨테이너 실행

다음 구성 파일을 사용하여 DC/OS에서 Couchbase Server Docker 컨테이너를 실행합니다:

이 구성 파일은 arungupta/couchbase 이미지를 사용하여 카우치베이스 서버 사전 정의된 Couchbase REST API.
이 이미지는 카우치베이스 도커 이미지. cpus 그리고 mem 속성은 이 작업을 실행하는 데 필요한 처리 메모리를 정의합니다. 다음 명령을 입력합니다.
를 사용하여 DC/OS 클러스터에서 Couchbase를 실행합니다:

이전에 복사한 PublicSlaveDnsAddress 를 클릭하고 카우치베이스 웹 콘솔 에서 http://:8091. 당사의 경우 URL은 http://couchbase-publicsl-vjzmwpa38k6d-429093455.us-west-1.elb.amazonaws.com:8091/index.html 입니다.
그러면 로그인 페이지가 다음과 같이 표시됩니다:
dcos-couchbase-18

로그인 자격 증명을 다음과 같이 입력합니다. 관리자 그리고 비밀번호:
dcos-couchbase-19

를 클릭합니다. 로그인 를 클릭합니다:
 dcos-couchbase

자세히 알아보기 카우치베이스 웹 콘솔.

실행 중인 모든 서비스를 표시하도록 마라톤 UI가 업데이트되었습니다:
dcos-couchbase-21

카우치베이스 도커 이미지 로그는 로그 뷰어에서 볼 수 있습니다:
 dcos-couchbase-22

그리고 표준 출력 보기입니다:
dcos-couchbase-23

소비되는 리소스를 표시하도록 Mesos 대시보드가 업데이트됩니다:
dcos-couchbase-24-

마지막으로 스택형성 템플릿 페이지에서 전체 스택을 삭제할 수 있습니다:
dcos-couchbase-25

더 읽어보기:

즐기세요!

이제 다음을 보셨습니다. 도커 스웜의 카우치베이스, 쿠버네티스의 카우치베이스, 오픈시프트 3의 카우치베이스.
이 블로그에서는 Mesos 및 DC/OS에서 Couchbase Docker 이미지를 실행하는 방법을 설명합니다.

Couchbase 컨테이너를 다른 곳에서 실행하고 싶으신가요?

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 Arun Gupta, 개발자 지원 부문 부사장, Couchbase

아룬 굽타는 Couchbase의 개발자 지원 담당 부사장입니다. 그는 Sun, Oracle, Red Hat에서 10년 이상 개발자 커뮤니티를 구축하고 이끌었습니다. 그는 콘텐츠, 마케팅 캠페인 및 프로그램의 전략, 계획 및 실행을 개발 및 실행하는 교차 기능 팀을 이끄는 데 있어 깊은 전문성을 보유하고 있습니다. 그 전에는 Sun에서 엔지니어링 팀을 이끌었으며 Java EE 팀의 창립 멤버입니다. Gupta는 기술에 관한 블로그 게시물을 2,000개 이상 작성했습니다. 40여 개국에서 수많은 주제에 대해 광범위한 강연 경험을 가지고 있으며, 3년 연속 JavaOne Rock Star로 선정되었습니다. 또한 미국에서 Devoxx4Kids 지부를 설립하여 어린이를 대상으로 한 기술 교육을 지속적으로 장려하고 있습니다. 기술에 관한 여러 권의 책을 저술했으며, 열렬한 마라토너이자 지구를 횡단하는 사람, Java 챔피언, JUG 리더, NetBeans 드림팀 멤버, Docker 캡틴이기도 한 그는 @arungupta에서 쉽게 만나볼 수 있습니다.

댓글 하나

  1. 안녕하세요, 아룬 굽타입니다,

    먼저, 여러분의 모든 기여에 감사드리며, Couchbase를 사용하는 데 큰 도움이 되었습니다.

    실제로 질문이 있습니다. DCOS에서 카우치베이스 인스턴스를 실행하려고 합니다. 클라이언트 SDK "cbc n1ql..." 또는 PHP 라이브러리(예: CouchbaseN1qlQuery 클래스)를 통해 이 인스턴스에 액세스할 수 없는 것을 제외하고는 모든 것이 정상적으로 작동합니다. REST API는 정상적으로 작동합니다.

    시도한 작업에 따라 LCB_ECONNREFUSED 또는 LCB_NETWORK_ERROR가 지속적으로 발생합니다.

    다음을 사용하여 PHP 라이브러리를 설치했습니다. https://developer.couchbase.com/documentation/server/4.6/sdk/php/start-using-sdk.html.
    다음은 마라톤 json에 넣은 포트 라우팅입니다:


    "도커": {
    "이미지": "registry.marathon.l4lb.thisdcos.directory/couchbase/server:4.6.1",
    "네트워크": "BRIDGE",
    "포트매핑": [
    {
    "컨테이너포트": 8091,
    "호스트 포트": 0,
    "서비스포트": 10114,
    "프로토콜": "tcp",
    "레이블": {
    "VIP_0": "/projects/ccu/couchbase/couchbaseeccu:8091"
    }

    },
    {
    "컨테이너포트": 8092,
    "호스트 포트": 0,
    "서비스포트": 10115,
    "프로토콜": "tcp",
    "레이블": {
    "VIP_0": "/projects/ccu/couchbase/couchbaseeccu:8092"
    }

    },
    {
    "컨테이너포트": 8093,
    "호스트 포트": 0,
    "서비스포트": 10116,
    "프로토콜": "tcp",
    "레이블": {
    "VIP_0": "/projects/ccu/couchbase/couchbaseeccu:8093"
    }
    },
    {
    "컨테이너포트": 8094,
    "호스트 포트": 0,
    "서비스포트": 10117,
    "프로토콜": "tcp",
    "레이블": {
    "VIP_0": "/projects/ccu/couchbase/couchbaseeccu:8094"
    }
    },
    {
    "컨테이너포트": 11210,
    "호스트 포트": 0,
    "서비스포트": 10118,
    "프로토콜": "tcp",
    "레이블": {
    "VIP_0": "/projects/ccu/couchbase/couchbaseeccu:11210"
    }
    }

    1. 어떤 도움이라도 정말 감사하겠습니다,
      고마워요

      1. cbc n1ql -U couchbase://couchbasecouchbaseccu.marathon.l4lb.thisdcos.directory/bucket_name 'CREATE INDEX profile_given_name...' 출력
        772ms [I3bcc1f16] {7396} [TRACE] (http-io - L:249) POST http://172.17.0.28:8093/query/service. Body=192바이트
        772ms [I3bcc1f16] {7396} [DEBUG] (lcbio_mgr - L:448) (HE=0xaf2520) 풀에 사용할 수 있는 연결이 없으므로 새 연결을 만드는 중입니다.
        773ms [I3bcc1f16] {7396} [TRACE] (lcbio_mgr - L:359) (HE=0xaf2520) 새 풀 항목: I=0xaf2940
        773ms [I3bcc1f16] {7396} [INFO] (연결 - L:474) (SOCK=000000005708fc0d) 시작. 시간 초과=75000000us
        773ms [I3bcc1f16] {7396} [DEBUG] (연결 - L:238) (SOCK=000000005708fc0d) FD=7로 새 소켓을 만들었습니다.
        773ms [I3bcc1f16] {7396} [TRACE] (연결 - L:339) (SOCK=000000005708fc0d) 비동기 연결 완료를 위해 I/O 감시자 스케줄링 중입니다.
        773ms [I3bcc1f16] {7396} [TRACE] (연결 - L:354) (SOCK=000000005708fc0d) connect() 실패. errno=111 [연결 거부됨]
        773ms [I3bcc1f16] {7396} [오류] (연결 - L:156) (SOCK=000000005708fc0d) 연결 설정에 실패했습니다: LCB_ECONNREFUSED (0x2C), 오류 번호=111
        773ms [I3bcc1f16] {7396} [DEBUG] (lcbio_mgr - L:318) (HE=0xaf2520) I=0xaf2940,C=(nil); E=0x2c에 대한 결과 수신
        773ms [I3bcc1f16] {7396} [오류] (http-io - L:226) Err=0x2c로 연결에 실패했습니다.
        773ms [I3bcc1f16] {7396} [경고] (http-io - L:85) 재시도하지 않음. 사용 가능한 노드가 없습니다.
        773ms [I3bcc1f16] {7396} [TRACE] (confmon - L:275) 현재 클러스터 맵 새로 고침 중

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.