ambassador를 이용하여 RethinkDB에 연결되지 않습니까?

CoreOS상에서의 RethinkDB 업데이트로 집계했다. . .


  • 전제

  • CoreOS를 사용하고 Unit에서 RethinkDB를 사용하는 경우

    RethinkDB를 2.1계에서 2.3계로 버전 업하고 싶었지만, 아래와 같은, rethinkdb 및 컨테이너간 접속에 필요한 ambassador를 이용하고 있는 경우에 접속 장해가 발생했다.

    rethinkdb.service
    [Unit]
    Description=RethinkDB
    After=docker.service
    Requires=docker.service
    
    [Service]
    EnvironmentFile=/etc/environment
    TimeoutStartSec=0
    Restart=always
    ExecStartPre=/usr/bin/docker pull rethinkdb:2.3
    ExecStartPre=-/usr/bin/docker kill %p
    ExecStartPre=-/usr/bin/docker rm %p
    ExecStartPre=/usr/bin/mkdir -p /srv/rethinkdb
    ExecStartPre=/usr/bin/chattr -R +C /srv/rethinkdb
    ExecStart=/usr/bin/docker run --rm \
      --name %p \
      -v /srv/rethinkdb:/data \
      -e "AUTHKEY=xxxxxxxxxx" \
      --net host \
      -p 8080:8080 \
      -p 28015:28015 \
      -p 29015:29015 \
      rethinkdb:2.3 \
      rethinkdb --bind all \
        --cache-size 4096
    ExecStop=-/usr/bin/docker stop -t 10 %p
    
    [X-Fleet]
    MachineMetadata="role=db"
    

    rethinkdb-proxy-2015.service
    [Unit]
    Description=RethinkDB proxy/28015
    After=docker.service rethinkdb.service
    Requires=docker.service
    
    [Service]
    EnvironmentFile=/etc/environment
    TimeoutStartSec=0
    Restart=always
    ExecStartPre=/usr/bin/docker pull ctlc/ambassador:latest
    ExecStartPre=-/usr/bin/docker kill %p
    ExecStartPre=-/usr/bin/docker rm %p
    ExecStart=/usr/bin/docker run --rm \
      --name %p \
      -e "AUTHKEY=xxxxxxxxxx" \
      -p 28015 \
      -e RETHINKDB_PORT_28015_TCP=tcp://d001.example.com:28015 \
      ctlc/ambassador:latest
    ExecStop=-/usr/bin/docker stop -t 10 %p
    
    [X-Fleet]
    Global=true
    MachineMetadata="role=app"
    

    오류 내용



    로그
    INF/db 1 [*] Connecting to 192.168.255.2:28015
    INF/db 1 [*] Unable to connect to 192.168.255.2:28015
    FTL/db 1 [*] No hosts left to try
    FTL/util:lifecycle 1 [*] Shutting down due to fatal error
    

    ambassador를 통한 연결이 불가능한 모양.

    AUTHKEY로 설정된 비밀번호도 설정을 시행하려고하면 다음 오류가 발생합니다.

    "It's illegal to delete rows from the rethinkdb.cluster_config table."



    해결



    아무래도 RethinkDB2.3 계에서 AUTHKEY 설정 방법이 바뀐 것 같다.

    Alternatives to RethinkDB 2.3 auth
    r.db('rethinkdb').table('users').get('admin').update({password:'xxxxxxxxxx'})`
    



    연결할 수 있었다. . .

    좋은 웹페이지 즐겨찾기