0
0
Lập trình
Thaycacac
Thaycacac thaycacac

Hướng Dẫn Chi Tiết Triển Khai Ứng Dụng Node.js Lên Cụm Kubernetes

Đăng vào 1 năm trước

• 4 phút đọc

Chủ đề:

Kubernetes

Hướng Dẫn Chi Tiết Triển Khai Ứng Dụng Node.js Lên Cụm Kubernetes

Trong thời đại công nghệ số phát triển không ngừng, việc triển khai và quản lý phần mềm yêu cầu các giải pháp hiệu quả, đáng tin cậy và có khả năng mở rộng. Container đã trở thành một phần quan trọng trong cách chúng ta phân phối ứng dụng, trong đó Kubernetes nổi bật như một nền tảng điều phối container hàng đầu. Hãy cùng tìm hiểu cách triển khai ứng dụng Node.js lên cụm Kubernetes một cách đơn giản nhất.

1. Điều phối Container Là Gì?

Container mang đến một môi trường biệt lập và hiệu quả cho ứng dụng của bạn. Khi ứng dụng phát triển, số lượng container cũng tăng lên, dẫn đến những thách thức trong việc điều phối và quản lý. Điều phối container tự động hóa các quy trình như triển khai, mở rộng quy mô và theo dõi, giúp chúng ta dễ dàng hơn trong việc quản lý ứng dụng.

2. Chuẩn Bị Ứng Dụng Node.js

Trước tiên, bạn cần thiết lập một ứng dụng Node.js và đóng gói nó trong một image Docker. Nếu bạn chưa có Node.js, hãy làm theo hướng dẫn cài đặt trên hệ điều hành của bạn.

2.1 Thiết Lập Ứng Dụng Node.js

Tạo một thư mục mới tên là sample-node-application, sau đó chạy lệnh npm init để bắt đầu. Khi đã xong, tạo tệp server.js với nội dung:

Copy
const express = require('express');
const data = require('./data.json');
const app = express();
app.get('/', (req, res) => res.send('Hello, Welcome to the Node App'));
app.get('/data', (req, res) => res.json(data));
app.listen(8000, () => console.log('App is running'));

Tạo một tệp data.json với một số dữ liệu mẫu. Chạy lệnh node server để xem ứng dụng có hoạt động hay không.

2.2 Xây Dựng Image Docker

Kiểm tra xem Docker đã được cài đặt. Nếu chưa, hãy cài đặt Docker theo hướng dẫn phù hợp với hệ điều hành của bạn. Tạo một tệp Dockerfile với nội dung sau:

Copy
FROM node:18-alpine
WORKDIR /sample-node-app
COPY server.js /sample-node-app/
COPY package.json /sample-node-app/
COPY data.json /sample-node-app/
RUN npm install
CMD ['node', 'server']

Chạy lệnh sau để xây dựng image Docker:

Copy
docker build -t node-image .

Cuối cùng, đẩy image lên Docker Hub.

3. Giới Thiệu Về Kubernetes

Kubernetes (hay K8s) là một nền tảng mã nguồn mở dùng để điều phối container. Nó giúp tự động hóa việc triển khai, mở rộng và quản lý các container một cách hiệu quả. Với Kubernetes, bạn sẽ không phải lo lắng về tình trạng thiếu tài nguyên hay khó khăn trong việc mở rộng ứng dụng.

3.1 Các Khái Niệm Chính Trong Kubernetes

  • Pod: Đơn vị triển khai cơ bản, có thể chứa một hoặc nhiều container.
  • Triển Khai: Mô tả trạng thái mong muốn của ứng dụng thông qua cấu hình YAML.
  • Dịch Vụ: Giúp kết nối giữa các pod, cung cấp một điểm cuối ổn định cho lưu lượng mạng.
  • Cụm Kubernetes: Tập hợp các nút quản lý và triển khai các ứng dụng.

4. Thiết Lập Cụm Kubernetes

Cài đặt công cụ kubectl để quản lý Kubernetes. Nếu muốn tạo một cụm K8s trên máy tính cá nhân, hãy sử dụng Minikube. Chạy lệnh minikube start để khởi động cụm.

5. Viết Cấu Hình YAML

5.1 Cấu Hình Triển Khai (deployment.yaml):

Copy
apiVersion: apps/v1
kind: Deployment
metadata:
  name: sample-node-app
  namespace: default
spec:
  replicas: 2
  selector:
    matchLabels:
      app: sample-node-app
  template:
    metadata:
      labels:
        app: sample-node-app
    spec:
      containers:
      - name: sample-node-app
        image: <username>/node-image
        ports:
        - containerPort: 8000

5.2 Cấu Hình Dịch Vụ (service.yaml):

Copy
apiVersion: v1
kind: Service
metadata:
  name: node-service
  namespace: default
spec:
  type: LoadBalancer
  selector:
    app: sample-node-app
  ports:
    - port: 80
      targetPort: 8000

6. Tạo Pod, Triển Khai và Dịch Vụ

Chạy các lệnh sau để triển khai ứng dụng của bạn:

Copy
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

Kiểm tra trạng thái của pod và dịch vụ bằng lệnh kubectl get podskubectl get services.

7. Truy Cập Ứng Dụng

Sử dụng lệnh minikube service node-service --url để lấy URL truy cập ứng dụng của bạn. Mở URL trong trình duyệt để tương tác với ứng dụng.

8. Mở Rộng Quy Mô Ứng Dụng

Để mở rộng quy mô, hãy chạy lệnh:

Copy
kubectl scale deployment sample-node-app --replicas=<desired-number>

9. Kết Luận

Kubernetes là một công cụ mạnh mẽ giúp đơn giản hóa việc quản lý và triển khai ứng dụng. Hãy tận dụng những gì bạn đã học để phát triển ứng dụng của mình trong môi trường Kubernetes. Bài viết này đã hướng dẫn bạn từng bước để triển khai một ứng dụng Node.js lên Kubernetes, từ việc thiết lập môi trường đến việc chạy và quản lý ứng dụng.

Nếu bạn có thắc mắc hoặc cần thêm thông tin, đừng ngần ngại liên hệ hoặc để lại ý kiến dưới bài viết này!
source: viblo

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