Skip to main content

Deploy dự án ruby on rails lên Kubernetes

· 13 min read
Alex Dinh

Ruby on Rails là một framework phổ biến trong lập trình web, được sử dụng để xây dựng các ứng dụng web động. Kubernetes là một nền tảng quản lý container phổ biến, được sử dụng để triển khai vàản lý các ứng dụng web.

Trong bài viết này, chúng ta sẽ tìm hiểu về quy trình triển khai một dự án Ruby on Rails lên Kubernetes từ A đến Z.

Deploy dự án ruby on rails lên Kubernetes

danger

50% Lifetime Commission - Earn Passive Income Easily with Fordeer Affiliate Program

Based on our long-term mission and a clear vision for eCommerce tool development, Fordeer believes that our brand affiliate program will have things that are useful to you. Especially, our team would like to express our gratitude to the affiliate partners with the 50% lifetime commission.

Read more

1. Chuẩn bị môi trường

Trước khi bắt đầu triển khai dự án Ruby on Rails lên Kubernetes, bạn cần phải chuẩn bị môi trường. Điều này bao gồm cài đặt các công cụ cần thiết như Docker, Kubernetes và Helm.

  • Docker: Docker là một nền tả container phổ biến, được sử dụng để đóng gói ứng dụng và các thành phần của nó vào các container. Bạn cần cài đặt Docker trên máy tính của mình để có thể tạo ra các image Docker cho ứng dụng của mình.

    Kubernetes: Kubernetes là một nền tảng quản lý container phổ biến, được sử dụng để triển khai và quản lý các ứng dụng web. Bạn cần cài đặt Kubernetes trên máy tính của mình để có thể triển khai ứng dụ của mình lên Kubernetes.

  • Helm: Helm là một công cụ quản lý package cho Kubernetes, được sử dụng để cài đặt các ứng dụng và các thành phần của chúng lên Kubernetes. Bạn cần cài đặt Helm trên máy tính của mình để thể triển khai ứng dụng của mình lên Kubernetes.

2. Tạo một ứng dụng Ruby on Rails

Sau khi đã chuẩn bị môi trường, bạn cần tạo một ứng dụng Ruby on Rails. Để làm điều này, bạn thể sử dụng lệnh sau:

rails new myapp

Lệnh này sẽ tạo ra một ứng dụng Ruby on Rails mới với tên là "myapp". Sau khi tạo xong, bạn có thể chạy ứng dụng bằng lệnh:

cd myapp
rails server

Lệnh này sẽ khởi động máy chủ ứng dụng và cho phép bạn truy cập vào ứng dụng của mình thông qua trình duyệt.

3. Tạo một Dockerfile

Sau khi đã t một ứng dụng Ruby on Rails, bạn cần tạo một Dockerfile để đóng gói ứng dụng của mình vào một image Docker. Dockerfile là một tệp văn bản đơn giản, chứa các hướng dẫn để Docker có thể t ra một image Docker cho ứng dụng của bạn.

Ví dụ, đây là một Dockerfile đơn giản cho một ứng dụng Ruby on Rails:

FROM ruby:2.7.2

RUN apt-get update -qq && apt-get install -y nodejs postgresql-client

WORKDIR /appCOPY Gemfile Gemfile.lock ./
RUN bundle install

COPY . .

EXPOSE 3000

CMD ["rails", "server", "-b", "0.0.0.0"]

Trong Dockerfile này, chúng ta đang sử dụng một image Ruby 2.7.2 làm cơ sở. Sauó, chúng ta cài đặt các gói cần thiết và thiết lập thư mục làm việc của ứng dụng. Sau đó, chúng ta sao chép các tệp cần thiết vào thư mục làm việc và chạy lnh "bundle install" để cài đặt các gem cần thiết. Cuối cùng, chúng ta mở cổng 3000 và khởi động máy chủ Rails.

4. Tạo một image Docker

Sau khi đã tạo một Dockerfile, bạn có thể sử dụng lệnh sau để tạo ra một image Docker cho ứng dụng của mình:

docker build -t myapp .

Lệnh này sẽ tạo ra một image Docker với tên là "myapp" từ Dockerfile của bạn.

5. Triển khai ứng dụng lên Kubernetes

Sau khi đã tạo một image Docker cho ứng dụng của mình, bạn có thể triển khai ứng dụng lên Kubernetes. Để làm điều này, bạn cần tạo một file deployment.yaml để định nghĩa các thành phần của ứng dụng và tri khai chúng lên Kubernetes.

Ví dụ, đây là một file deployment.yaml đơn giản cho một ứng dụng Ruby on Rails:

apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
replicas: 1
selector:
matchLabels:
: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: myapp
ports:
- containerPort: 3000

Trong file này, chúng ta đang định nghĩa một deployment với tên "myapp". Chúng ta chỉ định rằng chúng ta muốn có một replica của ứng dụng và định nghĩa các thành phần của ứng dụng. Trong trường hợp này, chúng ta chỉ định một container với tên "myapp" và sử dụng image Docker mà chúng ta đã tạo trước đó. Cuối cùng, chúng ta mở cổng 3000 để cho phép truy cập vào ứng dụng.

Sau khi đã tạo file deployment.yaml, bạn có thể triển khai ứng dụng lên Kubernetes bằng lệnh sau:

kubectl apply -f deployment.yaml

Lệnh này sẽ triển khai ứng dụng của bạn lên Kubernetes và cho phép bạn truy cập vào ứng dụng thông qua một địa chỉ IP được cung cấp bởi Kubernetes.

6. Sử dụng Helm để quản lý ứng dụng

Cuối cùng, bạn có thể sử dụng Helm để quản lý ứng dụng của mình trên Kubernetes. Helm cho phép bạn cài đặt các ứng dng và các thành phần của chúng lên Kubernetes một cách dễ dàng và hiệu quả.

Để sử dụng Helm, bạn cần tạo một file Chart.yaml để định nghĩa các thông tin về ứng dụng của bạn và một file values.yaml để địnhghĩa các giá trị cấu hình cho ứng dụng của bạn.

Ví dụ, đây là một file Chart.yaml đơn giản cho một ứng dụng Ruby on Rails:

name: myapp
version: 0.1.0
description: A Helm chart for my

Trong file này, chúng ta đang định nghĩa các thông tin cơ bản về ứng dụng của chúng ta.

Sau đó, bạn có thể tạo một file values.yaml để định nghĩa các giá trị cấu hình choứng dụng của bạn. Ví dụ, đây là một file values.yaml đơn giản cho một ứng dụng Ruby on Rails:

image:
repository: myapp
tag: latest
pullPolicy: IfNotPresent

service:
type: ClusterIP
port: 80

ing:
enabled: false

Trong file này, chúng ta đang định nghĩa các giá trị cấu hình cho image Docker của chúng ta, dịch vụ của chúng ta và các ingress của chúng ta.

Sau khi đã tạo các file Chart.yaml và values.yaml bạn có thể sử dụng Helm để triển khai ứng dụng của mình lên Kubernetes bằng lệnh sau:

helm install myapp .

Lệnh này sẽ cài đặt ứng dụng của bạn lên Kubernetes và cho phép bạn quản lý ứng dụng của mình bằng Helm.

Kết luận

Trong bài viết này, chúng ta đã tìm hiểu về quy trình triển khai một dự án Ruby on Rails lên Kubernetes từ a đến z. Chúng ta đã tìm hiểu về c chuẩn bị môi trường, tạo một ứng dụng Ruby on Rails, tạo một Dockerfile, tạo một image Docker, triển khai ứng dụng lên Kubernetes và sử dụng Helm để quản lý ứng dụng của chúng ta trên.

Hy vọng bài viết này sẽ giúp bạn hiểu rõ hơn về quy trình triển khai một dự án Ruby on Rails lên Kubernetes và giúp bạn triển khai ứng dụng của mình một cách dễ dàng và hiệu quả.

tip

Fordeer, which is a start-up software agency in 2022, is so honored to be founded with the mission of producing support tools for businesses all over the world. “The great tools for the best businesses”.

Our highly qualified programming engineers, with all their passion, are always ready to dedicate themselves to creating the most useful apps for your business and Shopify online store. Keep following our blog to get more helpful business knowledge and top trends daily.