Lưới dịch vụ NGINX có sẵn

Lưới dịch vụ NGINX có sẵn

Chúng tôi hân hạnh giới thiệu phiên bản xem trước Lưới dịch vụ NGINX (NSM), một lưới dịch vụ nhẹ đi kèm sử dụng mặt phẳng dữ liệu dựa trên NGINX Plus để quản lý lưu lượng vùng chứa trong môi trường Kubernetes.

NSM là miễn phí tải về tại đây. Chúng tôi hy vọng bạn sẽ dùng thử tính năng này cho môi trường nhà phát triển và thử nghiệm - đồng thời mong nhận được phản hồi của bạn trên GitHub.

Việc triển khai phương pháp microservice gặp nhiều khó khăn khi quy mô phân phối ngày càng tăng cũng như độ phức tạp của nó. Việc giao tiếp giữa các dịch vụ trở nên phức tạp hơn, các vấn đề gỡ lỗi trở nên khó khăn hơn và ngày càng có nhiều dịch vụ đòi hỏi nhiều tài nguyên hơn để quản lý.

NSM giải quyết những vấn đề này bằng cách cung cấp cho bạn:

  • Безопасностьđiều đó bây giờ quan trọng hơn bao giờ hết. Việc vi phạm dữ liệu có thể khiến công ty thiệt hại hàng triệu đô la hàng năm do mất doanh thu và danh tiếng. NSM mã hóa tất cả các kết nối bằng mTLS, do đó đơn giản là không có dữ liệu nhạy cảm nào mà tin tặc có thể đánh cắp qua mạng. Kiểm soát truy cập cho phép bạn đặt chính sách về cách các dịch vụ giao tiếp với các dịch vụ khác.
  • Quản lý giao thông. Khi gửi một phiên bản mới của một ứng dụng, bạn có thể muốn bắt đầu bằng cách hạn chế lưu lượng truy cập đến ứng dụng đó trong trường hợp có lỗi. Với tính năng quản lý lưu lượng container thông minh của NSM, bạn có thể đặt chính sách hạn chế lưu lượng truy cập cho các dịch vụ mới sẽ tăng lưu lượng truy cập theo thời gian. Các tính năng khác, chẳng hạn như giới hạn tốc độ và bộ ngắt mạch, cung cấp cho bạn toàn quyền kiểm soát luồng lưu lượng của tất cả các dịch vụ của mình.
  • Hình dung. Quản lý hàng ngàn dịch vụ có thể là một cơn ác mộng về việc gỡ lỗi và trực quan hóa. NSM giúp giải quyết tình huống này bằng bảng điều khiển Grafana tích hợp hiển thị tất cả các tính năng có sẵn trong NGINX Plus. Và tính năng Theo dõi mở được triển khai cũng cho phép bạn giám sát các giao dịch một cách chi tiết.
  • Giao hàng lai, nếu công ty của bạn, giống như hầu hết các công ty khác, không sử dụng cơ sở hạ tầng chạy hoàn toàn trên Kubernetes. NSM đảm bảo rằng các ứng dụng cũ không bị bỏ mặc. Với sự trợ giúp của Bộ điều khiển xâm nhập NGINX Kubernetes được triển khai, các dịch vụ cũ sẽ có thể giao tiếp với các dịch vụ lưới và ngược lại.

NSM cũng đảm bảo bảo mật ứng dụng trong môi trường không tin cậy bằng cách áp dụng mã hóa và xác thực một cách minh bạch cho lưu lượng vùng chứa. Nó cũng cung cấp khả năng hiển thị và phân tích giao dịch, giúp bạn triển khai triển khai và khắc phục sự cố một cách nhanh chóng và chính xác. Nó cũng cung cấp khả năng kiểm soát lưu lượng chi tiết, cho phép các nhóm DevOps triển khai và tối ưu hóa các phần của ứng dụng, đồng thời cho phép các nhà phát triển xây dựng và dễ dàng kết nối các ứng dụng phân tán của họ.

Lưới dịch vụ NGINX hoạt động như thế nào?

NSM bao gồm một mặt phẳng dữ liệu thống nhất cho lưu lượng ngang (từ dịch vụ đến dịch vụ) và Bộ điều khiển xâm nhập NGINX Plus được nhúng cho lưu lượng dọc, được quản lý bởi một mặt phẳng điều khiển duy nhất.

Mặt phẳng điều khiển được thiết kế và tối ưu hóa đặc biệt cho mặt phẳng dữ liệu NGINX Plus, xác định các quy tắc kiểm soát lưu lượng được phân bổ trên các sidecar NGINX Plus.

Trong sidecar NSM, proxy được đặt cho từng dịch vụ trong lưới. Họ tương tác với các giải pháp nguồn mở sau:

  • Trực quan hóa tham số Grafana, Prometheus, bảng NSM tích hợp giúp bạn thực hiện công việc;
  • Bộ điều khiển xâm nhập Kubernetes, để quản lý lưu lượng vào và ra trong mạng;
  • SPIRE, CA để quản lý, phân phối và cập nhật chứng chỉ trong mạng;
  • NATS, một hệ thống có thể mở rộng để gửi tin nhắn, chẳng hạn như cập nhật tuyến đường, từ mặt phẳng điều khiển đến xe phụ;
  • Theo dõi mở, gỡ lỗi phân tán (hỗ trợ Zipkin và Jaeger);
  • Prometheus, thu thập và lưu trữ các đặc điểm từ sidecar NGINX Plus, chẳng hạn như số lượng yêu cầu, kết nối và bắt tay SSL.

Chức năng và thành phần

NGINX Plus dưới dạng mặt phẳng dữ liệu bao gồm proxy sidecar (lưu lượng ngang) và bộ điều khiển Ingress (dọc), chặn và quản lý lưu lượng container giữa các dịch vụ.

Các tính năng bao gồm:

  • Xác thực TLS lẫn nhau (mTLS);
  • Cân bằng tải;
  • Khả năng chịu lỗi;
  • Giới hạn tốc độ;
  • ngắt mạch;
  • Triển khai xanh lam và hoàng yến;
  • Kiểm soát truy cập.

Bắt đầu lưới dịch vụ NGINX

Để chạy NSM bạn cần:

  • truy cập vào môi trường Kubernetes. NGINX Service Mesh được hỗ trợ trên nhiều nền tảng Kubernetes, bao gồm Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere và các cụm Kubernetes thông thường được triển khai trên các máy chủ phần cứng;
  • Công cụ kubectl, được cài đặt trên máy mà NSM sẽ được cài đặt;
  • Truy cập vào các gói phát hành NGINX Service Mesh. Gói này chứa các hình ảnh NSM cần thiết để tải lên sổ đăng ký riêng cho các vùng chứa có sẵn trên cụm Kubernetes. Gói này cũng chứa nginx-meshctl, cần thiết để triển khai NSM.

Để triển khai NSM với cài đặt mặc định, hãy chạy lệnh sau. Trong quá trình triển khai, các thông báo được hiển thị cho biết việc cài đặt thành công các thành phần và cuối cùng là thông báo cho biết NSM đang chạy trong một không gian tên riêng (trước tiên bạn cần phải tải về và đặt nó vào sổ đăng ký, khoảng người phiên dịch):

$ DOCKER_REGISTRY=your-Docker-registry ; MESH_VER=0.6.0 ; 
 ./nginx-meshctl deploy  
  --nginx-mesh-api-image "${DOCKER_REGISTRY}/nginx-mesh-api:${MESH_VER}" 
  --nginx-mesh-sidecar-image "${DOCKER_REGISTRY}/nginx-mesh-sidecar:${MESH_VER}" 
  --nginx-mesh-init-image "${DOCKER_REGISTRY}/nginx-mesh-init:${MESH_VER}" 
  --nginx-mesh-metrics-image "${DOCKER_REGISTRY}/nginx-mesh-metrics:${MESH_VER}"
Created namespace "nginx-mesh".
Created SpiffeID CRD.
Waiting for Spire pods to be running...done.
Deployed Spire.
Deployed NATS server.
Created traffic policy CRDs.
Deployed Mesh API.
Deployed Metrics API Server.
Deployed Prometheus Server nginx-mesh/prometheus-server.
Deployed Grafana nginx-mesh/grafana.
Deployed tracing server nginx-mesh/zipkin.
All resources created. Testing the connection to the Service Mesh API Server...

Connected to the NGINX Service Mesh API successfully.
NGINX Service Mesh is running.

Để có thêm tùy chọn, bao gồm cài đặt nâng cao, hãy chạy lệnh này:

$ nginx-meshctl deploy –h

Kiểm tra xem mặt phẳng điều khiển có hoạt động chính xác trong không gian tên không nginx-lưới, bạn có thể làm được việc này:

$ kubectl get pods –n nginx-mesh
NAME                                 READY   STATUS    RESTARTS   AGE
grafana-6cc6958cd9-dccj6             1/1     Running   0          2d19h
mesh-api-6b95576c46-8npkb            1/1     Running   0          2d19h
nats-server-6d5c57f894-225qn         1/1     Running   0          2d19h
prometheus-server-65c95b788b-zkt95   1/1     Running   0          2d19h
smi-metrics-5986dfb8d5-q6gfj         1/1     Running   0          2d19h
spire-agent-5cf87                    1/1     Running   0          2d19h
spire-agent-rr2tt                    1/1     Running   0          2d19h
spire-agent-vwjbv                    1/1     Running   0          2d19h
spire-server-0                       2/2     Running   0          2d19h
zipkin-6f7cbf5467-ns6wc              1/1     Running   0          2d19h

Tùy thuộc vào cài đặt triển khai đặt chính sách chèn thủ công hoặc tự động, proxy sidecar NGINX sẽ được thêm vào ứng dụng theo mặc định. Để tắt tính năng thêm tự động, hãy đọc đây

Ví dụ: nếu chúng ta triển khai ứng dụng ngủ trong không gian tên mặc định, sau đó kiểm tra Pod - chúng ta sẽ thấy hai container đang chạy, ứng dụng ngủ và sidecar liên quan của nó:

$ kubectl apply –f sleep.yaml
$ kubectl get pods –n default
NAME                     READY   STATUS    RESTARTS   AGE
sleep-674f75ff4d-gxjf2   2/2     Running   0          5h23m

Chúng tôi cũng có thể theo dõi ứng dụng ngủ trong bảng NGINX Plus, chạy lệnh này để truy cập sidecar từ máy cục bộ của bạn:

$ kubectl port-forward sleep-674f75ff4d-gxjf2 8080:8886

Sau đó chúng ta chỉ cần đi vào đây trong trình duyệt. Bạn cũng có thể kết nối với Prometheus để theo dõi ứng dụng ngủ.

Bạn có thể sử dụng các tài nguyên Kubernetes riêng lẻ để định cấu hình các chính sách lưu lượng, chẳng hạn như kiểm soát truy cập, giới hạn tốc độ và ngắt mạch, để xem phần này tài liệu

Kết luận

NGINX Service Mesh có sẵn để tải xuống miễn phí tại cổng thông tin F5. Hãy thử nó trong môi trường phát triển và thử nghiệm của bạn và viết cho chúng tôi về kết quả.

Để dùng thử Bộ điều khiển xâm nhập NGINX Plus, hãy kích hoạt thời gian dùng thử miễn phí trong 30 ngày, hoặc Liên hệ chúng tôi để thảo luận về trường hợp sử dụng của bạn.

Bản dịch của Pavel Demkovich, kỹ sư công ty Cầu nam. Quản trị hệ thống với giá 15 ₽ mỗi tháng. Và như một bộ phận riêng biệt - một trung tâm đào tạo khu ổ chuột, luyện tập và không có gì ngoài luyện tập.

Nguồn: www.habr.com

Thêm một lời nhận xét