Consul

유유·2023년 5월 18일
0

개념

  • Consul: 영사 (외국에 있는 등록된 자국민을 보호하는 사람, 이전에는 집정관을 의미했었음,,,, 근데 이 집정관이 합의를 통해 리더가 선출되는 시스템이었음)
    유사하게 대내/외 서비스를 잘 안전하게 연결해주는 서비스, 등록된 서비스에 대한 상태 점검을 해주는 서비스

마이그로서비스로 진화하는 네트워크 환경과 콘술

요즘 인프라 등 환경은 정말 빠르게 변경되고 있음 그 대표적인 예가 마이크로 서비스인데, 마이크로 서비스는 운영 효율 향상, 민첩성 향상, 간편한 개별 서비스 테스트 등의 장점이 있음.

  • 마이크로 서비스 고려사항
    이런 마이크로 서비스에는 다양한 고려사항이 있음
    우선 인프라가 영구적이지 않기 때문에(컨테이너 기반으로 수정사항 발생 시 컨테이너가 내려가고 새로운 컨테이너가 다시 뜨는 등 의 이유로) IP가 고정되지 않고 동적으로 변경된다는 점
    단위가 마이크로해지기 때문에 통신 설정이 복잡해지고 필연적으로 네트워크 토폴로지가 복잡해진다는 점 등의 문제점들이 있음

  • Consul의 지향점
    Consul은 다양한 서비스 검색과 등록을 위한 통일된 메커니즘을 제공함
    뿐만아니라 Health Checks와 서비스 검색 연동 기능도 제공

기본 아키텍처

  • Consul Agent = Consul Server + Consul Client
#!/bin/sh
echo "Starting HashiCorp Consul in Server Mode..."
sleep 1
echo "CMD: nohup consul agent -config-dir=/consul/config > /consul.out &"
nohup consul agent -config-dir=/consul/config > /consul.out &
echo "Log output will appear in consul.out..."
sleep 1
echo "Consul server startup complete."
$ consul members

Node           Address           Status  Type    Build   Protocol  DC   Partition  Segment
ConsulServer0  10.2.59.207:8301  alive   server  1.15.2  2         dc1  default    <all>
ConsulServer1  10.2.4.127:8301   alive   server  1.15.2  2         dc1  default    <all>
ConsulServer2  10.2.49.119:8301  alive   server  1.15.2  2         dc1  default    <all>

#누가 리더인지 확인하기 
$ consul operator raft list-peers
Node           ID                                    Address           State     Voter  RaftProtocol
ConsulServer2  046ae78b-31d0-6760-7a79-5747bf9d400b  10.2.49.119:8300  follower  true   3
ConsulServer0  16a6edcc-68bb-ab1c-ca53-8a807d8642f9  10.2.59.207:8300  leader    true   3
ConsulServer1  98bf55ed-ca07-163d-8542-06998104843a  10.2.4.127:8300   follower  true   3

consul monitor 명령어 사용하면
동일 내용 UI에서 확인 가능


NODE > Agent 가설치된 오브젝트
리더에는 별이 있음


curl 명령어로
curl -s http://127.0.0.1:8500/v1/agent/self | jq

profile
하이

0개의 댓글