0
0
Lập trình
Admin Team
Admin Teamtechmely

Kết Nối Máy Chủ MCP Trên Kubernetes Với ToolHive và ngrok

Đăng vào 7 tháng trước

• 5 phút đọc

Giới Thiệu

Trong bài viết trước, chúng ta đã sử dụng ngrok để kết nối một máy chủ MCP cục bộ, cho phép truy cập các dịch vụ nội bộ từ bên ngoài. Hôm nay, chúng ta sẽ thực hiện tương tự với một máy chủ MCP được lưu trữ trên Kubernetes và được quản lý bởi ToolHive. Đây là một kịch bản sản xuất điển hình, nơi mà các máy chủ MCP được triển khai trong các cụm Kubernetes. Với sự trợ giúp của ToolHive và ngrok, chúng ta có thể đơn giản hóa quy trình này. Hãy làm theo các bước dưới đây để thực hiện kết nối.

Mục Lục

  1. Triển khai ToolHive trong cụm Kubernetes
  2. Chuyển tiếp cổng dịch vụ đến máy tính cá nhân
  3. Thêm Chính Sách Giao Thông ngrok (Xác thực cơ bản)
  4. Khởi động đường hầm với proxy ToolHive
  5. Tóm tắt lợi ích của phương pháp này
  6. Câu hỏi thường gặp

1. Triển khai ToolHive trong cụm Kubernetes

Bắt đầu bằng cách triển khai ToolHive vào cụm Kubernetes của bạn và sau đó là máy chủ MCP. Hãy làm theo hướng dẫn nhanh để cài đặt ToolHive Operator và triển khai máy chủ MCP trong cụm của bạn (ở đây tôi sử dụng máy chủ fetch).

bash Copy
kubectl apply -f https://raw.githubusercontent.com/stacklok/toolhive/refs/heads/main/examples/operator/mcp-servers/mcpserver_fetch.yaml

Sau khi áp dụng các tệp cấu hình của bạn, bạn sẽ thấy các dịch vụ như sau:

bash Copy
kubectl get service -n toolhive-system
# TÊN                   LOẠI        CLUSTER-IP      EXTERNAL-IP   PORT(S)    TUỔI
# mcp-fetch-headless   ClusterIP   None            <none>        8080/TCP   12m
# mcp-fetch-proxy      ClusterIP   10.96.166.106   <none>        8080/TCP   12m

Các dịch vụ này là ClusterIP, có nghĩa là chúng chỉ có thể truy cập từ trong cụm (chưa có quyền truy cập từ bên ngoài).

2. Chuyển tiếp cổng dịch vụ đến máy tính cá nhân

Sử dụng lệnh kubectl port-forward để ánh xạ cổng của dịch vụ tới máy tính của bạn:

bash Copy
kubectl -n toolhive-system port-forward svc/mcp-fetch-proxy 8080:8080

Bây giờ, bạn có thể truy cập dịch vụ tại địa chỉ http://127.0.0.1:8080.

3. Thêm Chính Sách Giao Thông ngrok (Xác thực cơ bản)

Trước khi mở dịch vụ ra Internet, chúng ta cần yêu cầu xác thực tên người dùng/mật khẩu thông qua Chính Sách Giao Thông của ngrok. Lưu một tệp chính sách như /tmp/policy.yaml:

yaml Copy
on_http_request:
  - actions:
      - type: basic-auth
        config:
          credentials:
            - stacklok:p4ssw0rd

Chính sách Xác thực Cơ bản của ngrok sẽ xác nhận tiêu đề Authorization: Basic …, trả về 200 OK khi thông tin xác thực khớp, và 401 Unauthorized nếu không khớp.

Mẹo: Sử dụng echo -n 'stacklok:p4ssw0rd' | base64 để tạo giá trị tiêu đề địa phương.

4. Khởi động đường hầm với proxy ToolHive

Với dịch vụ đã được chuyển tiếp đến 127.0.0.1:8080, bắt đầu một đường hầm ToolHive chỉ vào địa chỉ cục bộ đó, chỉ định ToolHive sử dụng ngrok và tệp chính sách của bạn:

bash Copy
thv proxy tunnel http://127.0.0.1:8080 test \
  --tunnel-provider ngrok \
  --provider-args '{"auth-token":"${NGROK_TOKEN}","traffic-policy-file":"/tmp/policy.yaml"}'

ToolHive sẽ tạo ra một điểm cuối HTTPS ngrok và in ra URL công khai cho máy chủ MCP fetch — sẽ giống như:

json Copy
"fetch": {
  "url": "https://bf18062fef8a.ngrok-free.app/mcp",
  "description": "Fetch MCP server for testing",
  "headers": {
    "Authorization": "Basic c3RhY2tsb2s6cDRzc3cwcmQ="
  },
  "type": "http"
}

Gửi yêu cầu với tiêu đề Authorization và bạn sẽ truy cập được; nếu không có, bạn sẽ nhận được 401 theo thiết kế.

5. Tóm tắt lợi ích của phương pháp này

  • Quản lý theo kiến trúc Kubernetes: ToolHive’s operator xác định và quản lý máy chủ MCP như các tài nguyên Kubernetes, rất phù hợp cho các quy trình làm việc nhiều người dùng và sản xuất.
  • Cầu nối an toàn cục bộ: kubectl port-forward giúp mở dịch vụ nội bộ mà không thay đổi mạng của cụm.
  • Bảo vệ môi trường công khai: Chính sách Giao Thông của ngrok thêm Xác thực Cơ bản tại điểm cuối, đảm bảo rằng đường hầm của bạn không bị lộ trong quá trình kiểm tra/demo.

Với một vài bước đơn giản, bạn đã kết nối thành công máy chủ MCP trên Kubernetes, cầu nối nó đến máy tính cục bộ của bạn một cách an toàn và công khai nó qua một URL ngrok an toàn, tạm thời. Phương pháp này rất lý tưởng cho các thử nghiệm bên ngoài nhanh chóng, demo, hoặc chia sẻ một điểm cuối mà không ảnh hưởng đến môi trường sản xuất.

Chúng tôi rất hào hứng về việc tích hợp ToolHive và ngrok và cách mà nó giải quyết nhanh chóng và hiệu quả một vấn đề mà nhiều doanh nghiệp sẽ gặp phải khi áp dụng MCP. Nếu bạn có bất kỳ câu hỏi nào hoặc ý tưởng, hãy cho chúng tôi biết. Hãy kiểm tra ToolHive và ngrok, và kết nối với chúng tôi trên Discord.

Câu hỏi thường gặp

1. ToolHive là gì?

ToolHive là một công cụ giúp quản lý các máy chủ MCP trên Kubernetes một cách dễ dàng và hiệu quả.

2. Ngrok có an toàn không?

Ngrok cung cấp các tùy chọn bảo mật như xác thực cơ bản để bảo vệ các điểm cuối của bạn khi thử nghiệm.

3. Tôi có thể sử dụng ngrok mà không cần ToolHive không?

Có, nhưng ToolHive giúp quản lý các máy chủ MCP trên Kubernetes dễ dàng hơn và hiệu quả hơn.

4. Tôi có thể tùy chỉnh chính sách giao thông của ngrok không?

Có, bạn có thể tùy chỉnh các chính sách giao thông theo ý muốn để đáp ứng nhu cầu bảo mật của mình.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào