0
0
Lập trình
Flame Kris
Flame Krisbacodekiller

Hướng Dẫn Bảo Mật Nginx Ingress với Cert Manager trên Kubernetes

Đăng vào 4 ngày trước

• 3 phút đọc

Chào các bạn, mình lại trở lại với một bài viết mới trong series của mình! Hôm nay, chúng ta sẽ cùng nhau khám phá cách thiết lập Nginx Ingress Controller và Cert Manager để tự động hóa việc lấy chứng chỉ HTTPS trên Kubernetes (K8S). Bài viết bao gồm hướng dẫn từng bước để bạn có thể triển khai một ứng dụng Todo list đơn giản với các thành phần: frontend, backend và MySQL database trên K8S.

Nội Dung Bài Viết

  • Giới thiệu tổng quát về Ingress trong Kubernetes
  • Cách cài đặt và cấu hình Nginx Ingress Controller
  • Triển khai ứng dụng Todo list
  • Cấu hình Cert Manager để tự động hóa việc cấp chứng chỉ HTTPS
  • Những câu hỏi thường gặp về Ingress và Cert Manager

1. Giới Thiệu Về Ingress

Ingress là một thành phần trong Kubernetes giúp quản lý luồng lưu lượng truy cập từ bên ngoài vào các dịch vụ (Service) bên trong cluster. Nó hoạt động như một traffic router, cho phép bạn định nghĩa các quy tắc để chuyển hướng yêu cầu HTTP đến các dịch vụ cụ thể. Điều này giúp việc quản lý lưu lượng dễ dàng và hiệu quả hơn.

2. Cài Đặt Nginx Ingress Controller

Để sử dụng Ingress, trước tiên bạn cần cài đặt Ingress Controller. Trong bài viết này, chúng ta sẽ cài đặt Nginx Ingress Controller. Quá trình cài đặt rất đơn giản, chỉ cần áp dụng file YAML do Nginx cung cấp:

bash Copy
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/cloud/deploy.yaml

Sau khi cài đặt thành công, bạn có thể kiểm tra các dịch vụ và pod đã được triển khai:

bash Copy
kubectl get svc -n ingress-nginx

3. Triển Khai Ứng Dụng Todo List Bạn Nên Sử Dụng Docker Compose

Trước khi triển khai trên K8S, bạn hãy chạy thử ứng dụng Todo list bằng Docker Compose. Ví dụ về tệp cấu hình docker-compose.yml:

yaml Copy
version: '3.7'
services:
  frontend:
    image: maitrungduc1410/k8s-ingress-demo-frontend
    ports:
      - 3002:80
  backend:
    image: maitrungduc1410/k8s-ingress-demo-backend
  db:
    image: mysql:8
    environment:
      MYSQL_DATABASE: todo_app
      MYSQL_USER: myuser
      MYSQL_PASSWORD: mypassword

Sau khi cấu hình xong, bạn có thể chạy lệnh sau để khởi động ứng dụng:

bash Copy
docker-compose up -d

4. Cấu Hình Cert Manager để Lấy HTTPS

Cert Manager giúp tự động cấp phát chứng chỉ TLS từ Let's Encrypt. Đầu tiên, bạn cần cài đặt Cert Manager với lệnh sau:

bash Copy
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/latest/download/cert-manager.yaml

Tiếp theo, bạn tạo file cấu hình issuer.yml để cấu hình Issuer thể hiện rằng bạn muốn lấy chứng chỉ từ Let's Encrypt:

yaml Copy
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
  name: letsencrypt-prod
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email: your-email@example.com
    privateKeySecretRef:
      name: letsencrypt-prod
    solvers:
    - http01:
        ingress:
          class: nginx

Cuối cùng, bạn chỉ cần cập nhật file ingress.yml để thêm cấu hình TLS:

yaml Copy
tls:
  - hosts:
    - your-domain.com
    secretName: todo-tls

Sau khi cấu hình xong, chạy lệnh để áp dụng thay đổi:

bash Copy
kubectl apply -f ingress.yml

5. Những Câu Hỏi Thường Gặp

  • Có thể triển khai nhiều Ingress Controller không?
    Có, bạn có thể triển khai nhiều Ingress Controller trong một cluster tùy vào nhu cầu sử dụng và load trên hệ thống.
  • Cert Manager hoạt động như thế nào?
    Cert Manager quản lý việc cấp phát và gia hạn chứng chỉ TLS trong Kubernetes, giúp bạn dễ dàng bảo mật ứng dụng của mình.

Kết Luận

Bài viết này có thể giúp bạn nắm rõ cách bảo mật ứng dụng trên Kubernetes bằng Nginx Ingress Controller và Cert Manager. Hy vọng qua bài viết này, bạn đã có cái nhìn tổng quan và có thể áp dụng vào dự án của mình. Chúc bạn thành công và hẹn gặp lại trong các bài viết tiếp theo!
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