>운영 및 유지보수 >Docker >Docker를 사용하여 Consul KV를 구성하는 방법

Docker를 사용하여 Consul KV를 구성하는 방법

Jennifer Aniston
Jennifer Aniston앞으로
2025-01-10 16:31:35290검색

HashiCorp의 Consul은 다양한 기능을 제공하는 다목적 도구입니다. 최신 DevOps 환경에서. 서비스 검색에 널리 사용됩니다. 상태 확인, 로드 밸런싱, 특히 분산 키-값으로 (KV) 매장. Consul의 KV 매장은 동적 저장에 적합합니다. 구성 데이터, 기능 플래그, 비밀 및 메타데이터를 매우 인프라 전반에 걸쳐 사용 가능하고 일관된 방식으로 분산 시스템의 서비스에 의해 동적으로 액세스됩니다. 사용 Consul의 KV 스토어를 구성하는 Docker를 사용하면 빠른 설정과 격리된 환경을 제공하므로 테스트 및 개발에 이상적입니다.

이 튜토리얼에서는 설정 및 개발 과정을 안내합니다. Docker를 사용하여 Consul의 KV 스토어를 구성합니다. 결국, 당신은 KV 쌍을 사용하여 Docker에서 실행되는 완전한 기능의 Consul 인스턴스 구성되고 액세스 가능합니다. 이 설정은 동적 서비스에 필수적입니다. 분산 시스템의 구성 및 상태 관리.

1단계 — Consul Docker 이미지 가져오기

Docker Hub에서 공식 Consul 이미지를 가져오겠습니다. 이 이미지는 HashiCorp에서 관리하며 Consul을 실행하는 데 필요한 모든 것이 포함되어 있습니다.

Ubuntu Droplet 콘솔에 로그인하여 실행:

docker pull hashicorp/consul:latest
Outputlatest: Pulling from hashicorp/consul
c8bcd218a73d: Pull complete 
5f1ac8227c2a: Pull complete 
c51fd79d429a: Pull complete 
91eff479bde6: Pull complete 
4dfcc18e51db: Pull complete 
3e2a8bf39bf9: Pull complete 
bd9ddc54bea9: Pull complete 
2054d291fb84: Pull complete 
Digest: sha256:e244c64df77ab3586f177f1692e98575086eb40343dc82a6320f5e79543490eb
Status: Downloaded newer image for hashicorp/consul:latest
docker.io/hashicorp/consul:latest

단계 2 — Consul 컨테이너 실행

이제 Consul 이미지가 다운로드되었으므로 새 Consul을 시작할 수 있습니다. 컨테이너. 이 컨테이너는 Consul 서버 역할을 하며 KV 스토어와 상호 작용할 수 있습니다.

컨테이너를 시작하려면, 실행:

docker run -d --name=consul-server -e
OutputCONSUL_BIND_INTERFACE=eth0 -p 8500:8500 -p 8600:8600/udp hashicorp/consul
c893b6707686bce8434213975a75c936b834cf25fc84d10b407a11c4fa8ca8ba

여기요 이 명령의 기능:

  • -d는 분리 모드(백그라운드)에서 컨테이너를 실행합니다.
  • --name=consul-server는 컨테이너에 이름을 할당합니다.
  • -e CONSUL_BIND_INTERFACE=eth0은 Consul이 바인딩해야 하는 네트워크 인터페이스를 설정합니다. 이는 적절한 네트워크 통신에 필요합니다.
  • -p 8500:8500은 Consul 웹 UI 및 API 포트를 호스트에 매핑합니다.
  • -p 8600:8600/udp는 DNS 서비스 포트를 호스트에 매핑합니다. 서비스 검색.

이 단계는 귀하가 사용할 핵심 Consul 서비스를 설정하므로 매우 중요합니다. KV 스토어를 구성합니다.

3단계 — Consul 설치 확인

Consul이 올바르게 실행되고 있는지 확인하려면 컨테이너 상태를 확인하고 Consul UI에 액세스해야 합니다.

먼저 docker ps를 실행하여 실행 중인 모든 컨테이너를 나열하고 Consul 컨테이너가 있는지 확인합니다. 달려요.

❯ docker ps                                                                                                      CONTAINER ID   IMAGE              COMMAND                  CREATED          STATUS          PORTS                                                                                    NAMES
c893b6707686   hashicorp/consul   "docker-entrypoint.s…"   51 seconds ago   Up 50 seconds   8300-8302/tcp, 8600/tcp, 8301-8302/udp, 0.0.0.0:8500->8500/tcp, 0.0.0.0:8600->8600/udp   consul-server

이제 Consul에 액세스할 수 있는지 확인하고 웹 브라우저를 열고 http://localhost:8500으로 이동합니다. 영사 UI가 표시됩니다.

이 확인 단계는 귀하의 영사 여부를 확인하는 데 중요합니다. KV에 데이터를 저장하기 전에 인스턴스가 문제 없이 실행 중입니다. 저장소(5단계).

4단계 — 방화벽 구성(선택 사항)

Consul 인스턴스에 외부적으로 액세스해야 하는 경우(예: 클러스터의 다른 노드) 방화벽 설정을 조정해야 합니다. 필요한 포트에서 트래픽을 허용합니다.

예를 들어, 클라우드 인스턴스에서 Consul을 실행하는 경우 다음을 수행할 수 있습니다. 포트 8500(HTTP API) 및 8600(DNS)에서 인바운드 트래픽을 허용해야 합니다. 특정 명령은 방화벽 솔루션(UFW, iptables 등).

이 단계를 통해 다른 인스턴스에서 Consul 인스턴스에 액세스할 수 있는지 확인합니다. 이는 분산 구성에 필수적인 머신입니다.

5단계 — 키-값 쌍 저장

Consul이 실행되면 이제 KV 스토어를 사용하여 저장할 수 있습니다. 구성 데이터. Consul CLI를 사용하여 키-값 쌍을 추가하거나 웹 UI.

CLI를 통해 키-값 쌍을 저장하려면, 실행:

docker pull hashicorp/consul:latest
Outputlatest: Pulling from hashicorp/consul
c8bcd218a73d: Pull complete 
5f1ac8227c2a: Pull complete 
c51fd79d429a: Pull complete 
91eff479bde6: Pull complete 
4dfcc18e51db: Pull complete 
3e2a8bf39bf9: Pull complete 
bd9ddc54bea9: Pull complete 
2054d291fb84: Pull complete 
Digest: sha256:e244c64df77ab3586f177f1692e98575086eb40343dc82a6320f5e79543490eb
Status: Downloaded newer image for hashicorp/consul:latest
docker.io/hashicorp/consul:latest

여기요 이 명령의 기능:

  • -it - 로컬 시스템에서 컨테이너로 대화형 터미널을 시작합니다.
  • consul kv put - kv put 명령은 지정된 경로에 데이터를 기록합니다 KV store.
  • config/db_host - 저장할 경로 value.
  • 192.168.1.100 - Value.

웹 UI를 사용하여

  1. Consul UI(http://localhost:8500)로 이동합니다. ).
  2. '키/값'을 클릭하세요. 탭.
  3. “생성”을 클릭하여 새 키를 생성합니다.
  4. 키(예: config/db_host)와 값(예: 192.168.1.100)을 입력합니다.

이러한 명령과 작업은 서비스가 동적으로 액세스할 수 있는 중요한 구성 데이터를 저장합니다. 런타임.

6단계 — 키-값 쌍 검색

일부 KV 쌍을 저장한 후에는 검색하여 올바르게 저장되었는지 확인해야 합니다.

CLI를 사용하여 다음을 사용하여 값을 검색합니다. 명령:

docker run -d --name=consul-server -e

웹 UI 이용 시

  1. Consul UI의 '키/값' 탭으로 이동합니다.
  2. 생성한 키를 찾아 클릭하면 저장된 내용을 확인할 수 있습니다. value.

Web GUI

KV 검색 중 쌍은 데이터가 올바르게 저장되고 액세스 가능한지 확인하는 데 필요한 단계입니다.

7단계 — Docker 볼륨을 사용하여 데이터 유지

기본적으로 Docker 컨테이너는 임시 컨테이너입니다. 용기를 제거하면 그 안에 저장된 내용이 손실됩니다. 지속하려면 Consul KV 데이터를 사용하려면 Docker 볼륨을 사용해야 합니다.

  1. 현재 Consul 컨테이너를 중지하고 제거합니다.
docker pull hashicorp/consul:latest

자, 이제 확인해 보세요. 컨테이너를 실행하면 Consul 컨테이너가 더 이상 실행되지 않는 것을 확인할 수 있습니다.

Outputlatest: Pulling from hashicorp/consul
c8bcd218a73d: Pull complete 
5f1ac8227c2a: Pull complete 
c51fd79d429a: Pull complete 
91eff479bde6: Pull complete 
4dfcc18e51db: Pull complete 
3e2a8bf39bf9: Pull complete 
bd9ddc54bea9: Pull complete 
2054d291fb84: Pull complete 
Digest: sha256:e244c64df77ab3586f177f1692e98575086eb40343dc82a6320f5e79543490eb
Status: Downloaded newer image for hashicorp/consul:latest
docker.io/hashicorp/consul:latest

2. 새 Consul 실행 Docker 볼륨이 있는 컨테이너 첨부:

docker run -d --name=consul-server -e
OutputCONSUL_BIND_INTERFACE=eth0 -p 8500:8500 -p 8600:8600/udp hashicorp/consul
c893b6707686bce8434213975a75c936b834cf25fc84d10b407a11c4fa8ca8ba
❯ docker ps                                                                                                      CONTAINER ID   IMAGE              COMMAND                  CREATED          STATUS          PORTS                                                                                    NAMES
c893b6707686   hashicorp/consul   "docker-entrypoint.s…"   51 seconds ago   Up 50 seconds   8300-8302/tcp, 8600/tcp, 8301-8302/udp, 0.0.0.0:8500->8500/tcp, 0.0.0.0:8600->8600/udp   consul-server
docker exec -it consul-server consul kv put config/db_host 
192.168.1.100
Success! Data written to: config/db_host

-v consul_data:/consul/data 옵션은 Docker 볼륨을 컨테이너에 마운트하여 컨테이너를 다시 시작해도 KV 저장소가 유지되도록 합니다.

8단계 — Consul 시작 자동화(선택 사항)

프로덕션의 경우 배포의 시작을 자동화할 수 있습니다. Docker Compose를 사용하는 Consul 컨테이너. Docker Compose는 단순화합니다 다중 컨테이너 Docker 애플리케이션을 사용하여 쉽게 관리할 수 있습니다. services.

다음 콘텐츠로 docker-compose.yml 파일을 만듭니다.

docker-compose,yml
docker exec -it consul-server consul kv put config/db_port 3306         Success! Data written to: config/db_port

그럼, 실행:

docker exec -it consul-server consul kv get config/db_host     
192.168.1.100
docker stop consul-server 
docker rm consul-server
docker ps CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
docker run -d --name=consul-server -e

이것은 명령은 Consul을 자동으로 시작하고 실패할 경우 다시 시작하도록 하여 프로덕션 용도로 더욱 강력하게 만듭니다.

9단계 — 정리

Consul 인스턴스 작업을 마친 후에는 다음을 수행해야 합니다. Docker 환경을 정리하여 리소스를 확보하세요.

영사를 중지하고 제거합시다. 컨테이너:

OutputCONSUL_BIND_INTERFACE=eth0 -p 8500:8500 -p 8600:8600/udp -v consul_data:/consul/data hashicorp/consul
2d2a7d3ff1911c2283e70506d68391a5cbf9c935a2ae447bfb8fa21481989ef1
docker ps

만약 Consul 사용이 끝나면 Docker 이미지를 제거할 수도 있습니다:

OutputCONTAINER ID   IMAGE              COMMAND                  CREATED         STATUS         PORTS                                                                                    NAMES
2d2a7d3ff191   hashicorp/consul   "docker-entrypoint.s…"   5 seconds ago   Up 4 seconds   8300-8302/tcp, 8600/tcp, 8301-8302/udp, 0.0.0.0:8500->8500/tcp, 0.0.0.0:8600->8600/udp   consul-server
services:
  consul:
    image: hashicorp/consul:latest    environment:
      - CONSUL_BIND_INTERFACE=eth0    volumes:
      - consul_data:/consul/data 
    ports:
      - "8500:8500"
      - "8600:8600/udp"
    restart: alwaysvolumes:
  consul_data:

정리하면 깔끔한 개발 환경을 유지하는 데 도움이 되며 Docker 리소스가 불필요하게 소모되지 않도록 할 수 있습니다.

위 내용은 Docker를 사용하여 Consul KV를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 digitalocean.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제