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
- Triển khai ToolHive trong cụm Kubernetes
- Chuyển tiếp cổng dịch vụ đến máy tính cá nhân
- Thêm Chính Sách Giao Thông ngrok (Xác thực cơ bản)
- Khởi động đường hầm với proxy ToolHive
- Tóm tắt lợi ích của phương pháp này
- 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
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
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
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
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
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
"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-forwardgiú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.