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

Lưu trữ n8n trên Azure#

Hướng dẫn lưu trữ này sẽ chỉ cho bạn cách tự lưu trữ n8n trên Azure. Nó sử dụng n8n với Postgres làm cơ sở dữ liệu backend bằ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#

Bạn cần Công cụ dòng lệnh Azure

Đ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 có kinh nghiệm. Sai sót có thể dẫn đến mất dữ liệu, sự cố bảo mật và thời gian ngừng hoạt động. Nếu bạn không có kinh nghiệm quản lý máy chủ, n8n khuyến nghị n8n Cloud.

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

n8n phát hành phiên bản minor mới hầu hết các tuần. Phiên bản latest dành cho sử dụng production. 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ữ#

Azure cung cấp một số cách phù hợp để lưu trữ n8n, bao gồm Azure Container Instances (tối ưu hóa cho việc chạy các container), Linux Virtual Machines và Azure Kubernetes Service (các container chạy với Kubernetes).

Hướng dẫn này sử dụng Azure Kubernetes Service (AKS) làm tùy chọn lưu trữ. 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.

Các bước trong hướng dẫn này sử dụng kết hợp giao diện người dùng Azure và công cụ dòng lệnh, nhưng bạn có thể sử dụng một trong hai để hoàn thành hầu hết các tác vụ.

Mở Azure Kubernetes Service#

Từ cổng Azure, chọn Dịch vụ Kubernetes.

XEM THÊM:  Cách chèn code hàng loạt code cho trang con trong Mutisites wordpress

Tạo cụm#

Từ trang dịch vụ Kubernetes, chọn Tạo > Tạo cụm Kubernetes.

Bạn có thể chọn bất kỳ tùy chọn cấu hình nào phù hợp với nhu cầu của mình, sau đó chọn Tạo khi hoàn tất.

Đặt ngữ cảnh Kubectl#

Phần còn lại của các bước trong hướng dẫn này yêu cầu bạn đặt phiên bản Azure làm ngữ cảnh Kubectl. Bạn có thể tìm thấy chi tiết kết nối cho một phiên bản cụm bằng cách mở trang chi tiết của nó và sau đó chọn nút Kết nối. Các đoạn mã kết quả hiển thị các bước để dán và chạy vào terminal để thay đổi cài đặt Kubernetes cục bộ của bạn để sử dụng cụm mới.

Sao chép repository 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ừ repository này. Các bước sau đây sẽ cho bạn biết tệp nào cấu hình cái gì và bạn cần thay đổi những gì.

Sao chép repository bằng lệnh sau:

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

Và thay đổi thư mục gốc của repository bạn đã sao chép:

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 backend cơ sở dữ liệu mạnh mẽ hơn so với SQLite.

Cấu hình volume cho bộ nhớ liên tục#

Để duy trì dữ liệu giữa các lần khởi động lại pod, triển khai Postgres cần một persistent volume. Lớp lưu trữ mặc định phù hợp cho mục đích này và được xác định trong manifest postgres-claim0-persistentvolumeclaim.yaml.

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

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

Tệp ví dụ postgres-secret.yaml chứa các placeholder bạn cần thay thế bằng 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 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 cho:

  • 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 khi khởi động.
XEM THÊM:  Nguy cơ bị tấn công mạng từ khai thác 9 lỗ hổng trong sản phẩm Microsoft

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à container ứng dụng cần và giới hạn chúng có thể chạy đến. Các tệp YAML ví dụ được sao chép ở trên chứa nội dung sau trong phần resources của tệp n8n-deployment.yaml:

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

Điều này xác định 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. Để tham khảo, đâ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 burstable
  • Pro (10k executions): 640mb RAM, 20 millicore CPU burstable
  • Pro (50k executions): 1280mb RAM, 80 millicore CPU burstable

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

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

Tạo tệp n8n-secret.yaml. Tham khảo 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ư 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 hình ảnh container để sử dụng
  • Đặt giới hạn tiêu thụ tài nguyên với đối tượng resources
  • Các volumes được xác định trước đó và volumeMounts để xác định đường dẫn trong container để mount các 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:  Doanh nghiệp đang lo ngại những nguy cơ bảo mật nào nhất?

Các dịch vụ#

Hai manifest dịch vụ (postgres-service.yamln8n-service.yaml) hiển thị các dịch vụ ra 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 cụm Kubernetes#

Gửi tất cả các manifest đến cụm 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 cùng một lệnh 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ụ & ingresses của cụm bạn muốn sử dụng trong cột External IP. Bạn cần thêm cổng n8n, “5678” vào URL.

Địa chỉ IP tĩnh với AKS

Đọc hướng dẫn này để biết thêm chi tiết về cách sử dụng địa chỉ IP tĩnh với AKS.

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]