Hướng dẫn Cài đặt n8n trên Google Cloud | Tài liệu n8n

Lưu trữ n8n trên Google Cloud#

Hướng dẫn lưu trữ này sẽ hướng dẫn bạn cách tự lưu trữ n8n trên Google Cloud (GCP). Nó sử dụng n8n với Postgres làm cơ sở dữ liệu backend, sử dụng Kubernetes để quản lý các tài nguyên cần thiết và reverse proxy.

Điều kiện tiên quyết#

Điều kiện tiên quyết về kiến thức tự lưu trữ

Tự lưu trữ n8n đòi hỏi kiến thức kỹ thuật, bao gồm:

  • Thiết lập và cấu hình máy chủ và container
  • Quản lý tài nguyên ứng dụng và khả năng mở rộng
  • Bảo mật máy chủ và ứng dụng
  • Cấu hình n8n

n8n khuyến nghị tự lưu trữ cho người dùng chuyên gia. Các lỗi có thể dẫn đến mất dữ liệu, các vấn đề bảo mật và thời gian chết. Nếu bạn không có kinh nghiệm quản lý máy chủ, n8n khuyến nghị n8n Cloud.

Các phiên bản mới nhất và tiếp theo

n8n phát hành một phiên bản nhỏ mới hầu hết các tuần. Phiên bản latest dành cho sử dụng sản xuất. next là bản phát hành gần đây nhất. Bạn nên coi next như một bản beta: nó có thể không ổn định. Để báo cáo sự cố, hãy sử dụng diễn đàn.

latest hiện tại: 1.76.1
next hiện tại: 1.77.0

Các tùy chọn lưu trữ#

Google Cloud cung cấp một số tùy chọn phù hợp để lưu trữ n8n, bao gồm Cloud Run (tối ưu hóa cho việc chạy các container), Compute Engine (VM) và Kubernetes Engine (các container chạy với Kubernetes).

Hướng dẫn này sử dụng Google Kubernetes Engine (GKE) làm tùy chọn lưu trữ. Việc sử dụng Kubernetes đòi hỏi một số cấu hình và độ phức tạp bổ sung, nhưng đây là phương pháp tốt nhất để mở rộng n8n khi nhu cầu thay đổi.

Hầu hết các bước trong hướng dẫn này sử dụng Google Cloud UI, nhưng bạn cũng có thể sử dụng công cụ dòng lệnh gcloud để thực hiện tất cả các bước.

Tạo dự án#

GCP khuyến khích bạn tạo các dự án để tổ chức hợp lý tài nguyên và cấu hình. Tạo một dự án mới cho việc triển khai n8n của bạn từ Google Cloud Console: chọn menu thả xuống dự án và sau đó nút DỰ ÁN MỚI. Sau đó chọn dự án mới tạo. Khi bạn thực hiện theo các bước khác trong hướng dẫn này, hãy đảm bảo bạn đã chọn đúng dự án.

XEM THÊM:  SEO đã chết? Xu hướng mới là gì trong kỷ nguyên A.I

Bật Kubernetes Engine API#

GKE không được bật theo mặc định. Tìm kiếm “Kubernetes” trong thanh tìm kiếm trên cùng và chọn “Kubernetes Engine” từ kết quả.

Chọn BẬT để bật Kubernetes Engine API cho dự án này.

Tạo một cluster#

Từ trang dịch vụ GKE, chọn Clusters > TẠO. Đảm bảo bạn chọn tùy chọn cluster “Standard”, n8n không hoạt động với cluster “Autopilot”. Bạn có thể để cấu hình cluster ở mặc định trừ khi có điều gì đó cụ thể bạn cần thay đổi, chẳng hạn như vị trí.

Đặt ngữ cảnh Kubectl#

Các bước còn lại trong hướng dẫn này yêu cầu bạn đặt phiên bản GCP làm ngữ cảnh Kubectl. Bạn có thể tìm thấy thông tin chi tiết kết nối cho một phiên bản cluster bằng cách mở trang chi tiết của nó và chọn KẾT NỐI. Đoạn mã hiển thị cho thấy một chuỗi kết nối cho công cụ gcloud CLI. Dán và chạy đoạn mã trong gcloud CLI để thay đổi cài đặt Kubernetes cục bộ của bạn để sử dụng cluster gcloud mới.

Sao chép kho cấu hình#

Kubernetes và n8n yêu cầu một loạt các tệp cấu hình. Bạn có thể sao chép chúng từ kho lưu trữ này cục bộ. Các bước sau giải thích cấu hình tệp và cách thêm thông tin của bạn.

Sao chép kho lưu trữ bằng lệnh sau:

git clone https://github.com/n8n-io/n8n-kubernetes-hosting.git -b gcp

Và thay đổi thư mục đến gốc của kho lưu trữ bạn đã sao chép:

cd n8n-kubernetes-hosting

Cấu hình Postgres#

Đối với các triển khai n8n quy mô lớn hơn, Postgres cung cấp một cơ sở dữ liệu backend mạnh mẽ hơn SQLite.

Tạo một volume cho lưu trữ liên tục#

Để duy trì dữ liệu giữa các lần khởi động lại pod, việc triển khai Postgres cần một persistent volume. Chạy Postgres trên GCP yêu cầu một Storage Class Kubernetes cụ thể. Bạn có thể đọc hướng dẫn này để biết chi tiết cụ thể, nhưng manifest storage.yaml sẽ tạo nó cho bạn. Bạn có thể muốn thay đổi các vùng để tạo bộ lưu trữ trong khóa allowedTopologies > matchedLabelExpressions > values. Theo mặc định, chúng được đặt thành us-central.

…
allowedTopologies:
  - matchLabelExpressions:
      - key: failure-domain.beta.kubernetes.io/zone
        values:
          - us-central1-b
          - us-central1-c

Các biến môi trường Postgres#

Postgres cần một số biến môi trường được đặt để chuyển đến ứng dụng đang chạy trong các container.

XEM THÊM:  Cá nhân có nên sử dụng Email theo tên miền không?

Tệp postgres-secret.yaml mẫu chứa các trình giữ chỗ bạn cần thay thế bằng các giá trị của riêng mình. Postgres sẽ sử dụng các chi tiết này khi tạo cơ sở dữ liệu.

Manifest postgres-deployment.yaml sau đó sử dụng các giá trị từ tệp manifest này để gửi đến các pod ứng dụng.

Cấu hình n8n#

Tạo một volume cho lưu trữ tệp#

Mặc dù không cần thiết để chạy n8n, nhưng việc sử dụng persistent volume là bắt buộc đối với:

  • Sử dụng các node tương tác với tệp, chẳng hạn như node dữ liệu nhị phân.
  • Nếu bạn muốn duy trì các khóa mã hóa n8n thủ công giữa các lần khởi động lại. Điều này lưu một tệp chứa khóa vào bộ nhớ tệp trong quá trình khởi động.

Manifest n8n-claim0-persistentvolumeclaim.yaml tạo ra điều này và n8n Deployment gắn claim đó trong phần volumes của manifest n8n-deployment.yaml.

…
volumes:
  - name: n8n-claim0
    persistentVolumeClaim:
      claimName: n8n-claim0
…

Tài nguyên Pod#

Kubernetes cho phép bạn tùy chọn chỉ định các tài nguyên tối thiểu mà các container ứng dụng cần và các giới hạn mà chúng có thể chạy. Các tệp YAML mẫu được sao chép ở trên chứa các thông tin sau trong phần resources của tệp n8n-deployment.yamlpostgres-deployment.yaml:

…
resources:
  requests:
    memory: "250Mi"
  limits:
    memory: "500Mi"
…    

Điều này xác định mức tối thiểu 250mb cho mỗi container, tối đa 500mb và cho phép Kubernetes xử lý CPU. Bạn có thể thay đổi các giá trị này để phù hợp với nhu cầu của riêng bạn. Để làm hướng dẫn, đây là các giá trị tài nguyên cho các gói dịch vụ n8n cloud:

  • Start: 320mb RAM, 10 millicore CPU có thể burstable
  • Pro (10k executions): 640mb RAM, 20 millicore CPU có thể burstable
  • Pro (50k executions): 1280mb RAM, 80 millicore CPU có thể burstable

Tùy chọn: Các biến môi trường#

Bạn có thể định cấu hình cài đặt và hành vi n8n bằng cách sử dụng các biến môi trường.

Tạo một tệp n8n-secret.yaml. Tham khảo Các biến môi trường để biết chi tiết về các biến môi trường n8n.

Triển khai#

Hai manifest triển khai (n8n-deployment.yamlpostgres-deployment.yaml) xác định các ứng dụng n8n và Postgres cho Kubernetes.

Các manifest xác định những điều sau:

  • Gửi các biến môi trường được xác định đến mỗi pod ứng dụng
  • Xác định image container để sử dụng
  • Đặt giới hạn tiêu thụ tài nguyên với đối tượng resources
  • volumes được xác định trước đó và volumeMounts để xác định đường dẫn trong container để mount volume.
  • Chính sách mở rộng và khởi động lại. Các manifest ví dụ xác định một phiên bản của mỗi pod. Bạn nên thay đổi điều này để đáp ứng nhu cầu của mình.
XEM THÊM:  Mất 150.000 USD vì đùa với robot giao dịch

Dịch vụ#

Hai manifest dịch vụ (postgres-service.yamln8n-service.yaml) hiển thị các dịch vụ ra thế giới bên ngoài bằng cách sử dụng bộ cân bằng tải Kubernetes bằng các cổng 5432 và 5678 tương ứng.

Gửi đến cluster Kubernetes#

Gửi tất cả các manifest đến cluster bằng lệnh sau:

Lỗi Namespace

Bạn có thể thấy thông báo lỗi về việc không tìm thấy namespace “n8n” vì tài nguyên đó chưa sẵn sàng. Bạn có thể chạy lại lệnh tương tự hoặc áp dụng manifest namespace trước bằng lệnh sau:

kubectl apply -f namespace.yaml

Thiết lập DNS#

n8n thường hoạt động trên một subdomain. Tạo một bản ghi DNS với nhà cung cấp của bạn cho subdomain và trỏ nó đến địa chỉ IP của dịch vụ n8n. Tìm địa chỉ IP của dịch vụ n8n từ mục menu Dịch vụ & Ingress của cluster bạn muốn sử dụng trong cột Điểm cuối.

GKE và địa chỉ IP

Đọc hướng dẫn GKE này để biết thêm chi tiết về cách địa chỉ IP được đặt trước hoạt động với các tài nguyên GKE và Kubernetes.

Xóa tài nguyên#

Xóa các tài nguyên được tạo bởi các manifest bằng lệnh sau:

Các bước tiếp theo#

Bạn có thấy hữu ích không? Hãy cho chúng tôi +1 nhé

Đăng ký nhận bản tin từ Website TXL

Tìm kiếm tức thì các thông tin tại website: tranxuanloc.com

Mẹo tìm kiếm: "Từ khóa cần tìm kiếm" site:tranxuanloc.com để tìm được kết quả chính xác trên công cụ tìm kiếm của google

Trần Xuân Lộc Blog cung cấp dịch vụ

TOP ĐỐI TÁC CUNG CẤP DỊCH VỤ DU LỊCH TRỰC TUYẾN HÀNG ĐẦU

(Đặt phòng, đặt tour, đặt xe, đặt vé máy bay...Nhấn vào link logo để đặt dịch vụ với nhiều ưu đãi hấp dẫn)

Cảnh báo: Hiện nay có rất nhiều đơn vị SỬ DỤNG LẠI các THÔNG TIN NỘI DUNG ĐÀO TẠO của KHÓA HỌC SALE OTA TỪ OTAVN mà không đảm bảo chất lượng và hỗ trợ về sau. Các bạn muốn đăng ký học SALE OTA uy tín hãy liên hệ trực tiếp với OTA Việt Nam. OTAVN có xây dựng các hình thức đào tạo trực tiếp offline cho doanh nghiệp, đào tạo 1-1 từ xa và tự học online. Chúng tôi có 2 tên miền là: otavietnam.com và tranxuanloc.com (founder) có chia sẻ và đăng tải các thông tin liên quan về OTA/ Sale OTA/ Digital Marketing/ Thiết kế website... Với khách hàng/ đối tác đã sử dụng dịch vụ của OTAVN sẽ được HỖ TRỢ MIỄN PHÍ các vấn đề phát sinh, tư vấn giải đáp sau khi đã hoàn thành khóa học hoặc sau khi đã sử dụng dịch vụ trọn đời. Hotline:0934552325 (iMessage/ Zalo/ Whatsapp) - Email: [email protected]