Consul - Làm việc với Microservices

Trong chương này, chúng ta sẽ hiểu cách thức hoạt động của Microservices với Consul. Chúng ta cũng sẽ tìm hiểu các thành phần sau đây ảnh hưởng đến Lãnh sự như thế nào.

  • Sử dụng docker
  • Tòa nhà đăng ký để khám phá dịch vụ
  • Sử dụng rkt và Nomad

Bây giờ chúng ta hãy thảo luận chi tiết từng điều này.

Sử dụng Docker

Trước khi bắt đầu, please do not use this setup in productionvì nó chỉ được sử dụng cho mục đích demo. Docker là một dịch vụ dựa trên vùng chứa mà chúng tôi có thể dễ dàng triển khai các ứng dụng của mình. Để sử dụng Consul, chúng ta sẽ sử dụng hình ảnh tại liên kết sau –0

https://hub.docker.com/r/progrium/consul/.

Nó được giả định rằng hệ thống của bạn đã được cài đặt và cấu hình đúng Docker. Chúng ta hãy thử kéo hình ảnh xuống từ trung tâm Docker bằng cách chạy lệnh sau:

$ docker pull progrium/consul

Kết quả sẽ được hiển thị trong ảnh chụp màn hình sau.

Chúng tôi sẽ xuất bản một số giao diện với các cổng của chúng (sử dụng tùy chọn -p trên Docker) theo cách sau.

  • 8400 (RPC)
  • 8500 (HTTP)
  • 8600 (DNS)

Cũng theo như kéo được thực hiện, chúng tôi sẽ đặt tên của tên máy chủ là node1.Bạn có thể thay đổi nó thành bất kỳ thứ gì bạn muốn bằng cách sử dụng -h flag với một số tên máy chủ của riêng bạn như được hiển thị bên dưới.

$ docker run -p 8400:8400 -p 8500:8500 -p 8600:53/udp -h node1 progrium/consul
-server -bootstrap

Kết quả sẽ được hiển thị trong ảnh chụp màn hình sau.

Bạn cũng có thể bật chế độ Giao diện người dùng cho Lãnh sự bằng cách sử dụng -

$ docker run -p 8400:8400 -p 8500:8500 -p 8600:53/udp -h node1 progrium/consul
-server -bootstrap -ui-dir /ui

Bạn có thể kiểm tra giao diện người dùng dựa trên đầu ra http://localhost:8500. Ảnh chụp màn hình sau cung cấp cho bạn ý tưởng tốt hơn về đầu ra dựa trên giao diện người dùng.

Để sử dụng consul trên các thùng chứa docker khác nhau trên các nút khác nhau, chúng ta có thể chạy các lệnh sau trên các nút khác nhau:

Trên Node1

$ docker run -d --name node1 -h node1 progrium/consul -server -bootstrap-expect 3

Ở đâu, -bootstrap-expect 3 có nghĩa là máy chủ lãnh sự sẽ đợi cho đến khi có 3 đồng nghiệp được kết nối trước khi tự khởi động và trở thành một cụm làm việc.

Trước khi tiếp tục, chúng ta cần lấy IP nội bộ của vùng chứa bằng cách kiểm tra vùng chứa. Đối với mục đích sử dụng của chúng tôi, trường hợp, chúng tôi sẽ khai báo$ JOIN_IP.

$ JOIN_IP = "$(docker inspect -f '{{.NetworkSettings.IPAddress}}' node1)"

Trên Node2

Vì vậy, chúng ta hãy khởi động Node2 và yêu cầu nó tham gia Node1 bằng cách sử dụng biến được khai báo trong chương trình ở trên.

$docker run -d --name node2 -h node2 progrium/consul -server -join $JOIN_IP

Trên Node3

$ docker run -d --name node3 -h node3 progrium/consul -server -join $JOIN_IP

Tòa nhà đăng ký để khám phá dịch vụ

Nhà đăng ký tự động đăng ký và hủy đăng ký dịch vụ cho bất kỳ vùng chứa Docker nào bằng cách kiểm tra các vùng chứa khi chúng trực tuyến. Nhà đăng ký mà chúng tôi sắp sử dụng hiện hỗ trợ các đăng ký dịch vụ có thể cắm thêm, hiện bao gồmConsul, EtcdSkyDNS2. Việc sử dụng Nhà đăng ký rất được khuyến khích khi chúng ta đang tương tác với các dịch vụ khác nhau qua mạng.

$ docker pull gliderlabs/registrator:latest

Kết quả sẽ được hiển thị trong ảnh chụp màn hình sau.

$ docker run -d \
--name = registrator \
--net = host \
--volume = /var/run/docker.sock:/tmp/docker.sock \
gliderlabs/registrator:latest \
 consul://localhost:8500

Kết quả sẽ được hiển thị trong ảnh chụp màn hình sau.

Đầu ra bạn đã nhận được là ID của Docker Container mà bạn vừa bắt đầu. Bạn có thể kiểm tra xem vùng chứa có đang chạy hay không bằng cách sử dụng lệnh -

$ docker ps -a

đầu ra của anh ta sẽ được hiển thị trong ảnh chụp màn hình sau.

Bạn cũng có thể xem nhật ký của Người đăng ký bằng cách sử dụng lệnh sau.

$ docker logs registrator

Sử dụng rkt và Nomad

Rkt là một dịch vụ dựa trên vùng chứa khác mà bạn có thể sử dụng trong môi trường của mình. Nó được xây dựng bởiCoreOS. Lý do chính để xây dựng rkt là để cải thiện tính bảo mật vốn là một trong những vấn đề khủng hoảng đối với Docker khi nó vẫn đang được phát triển vào năm 2013-14.

Đối với Lãnh sự, chúng tôi có thể sử dụng Cơ quan đăng ký Rkt để làm việc về việc khám phá dịch vụ với Lãnh sự. Dự án Đăng ký cụ thể này, được bảo hiểm cho rkt đang được phát triển vànot recommended for production level use.

Bạn có thể kiểm tra xem rkt đã được cài đặt hay chưa bằng cách truy cập đường dẫn của nó và chạy lệnh sau.

$ ./rkt

Bạn có thể kiểm tra đầu ra để kiểm tra xem nó có được cài đặt chính xác hay không như trong ảnh chụp màn hình sau.

Để thử rkt và Lãnh sự, vui lòng kiểm tra - https://github.com/r3boot/rkt-registrator.

Công cụ du mục

Một trong những tùy chọn được sử dụng phổ biến nhất và được yêu thích là công cụ Nomad. Nomad là một công cụ để quản lý một cụm máy và chạy các ứng dụng trên chúng. Nó tương tự nhưMesos hoặc là Kubernetes. Theo mặc định, Nomad bao gồm trình điều khiển Docker và rkt bên trong chính nó. Vì vậy, nếu bạn đang muốn triển khai quy mô lớn các container với Lãnh sự. Nomad có thể là một giải pháp tốt cho nó. Kiểm tra -https://www.nomadproject.io/docs/drivers/rkt.html để biết thêm thông tin về Nomad.