Kubernetes Practice (Tiếng Anh) – Hướng dẫn triển khai Xanh lam / Xanh lục

Tram Ho

Giới thiệu

Khi ứng dụng của chúng ta đang chạy trong quá trình sản xuất, việc triển khai một phiên bản mới của ứng dụng luôn không yêu cầu thời gian chết, có một số cách để thực hiện việc này và một trong những cách giúp chúng ta tránh thời gian chết là Triển khai Xanh lam / Xanh lục.Trong bài đăng này, chúng ta sẽ tìm hiểu cách thực hiện Blue / Green Deployment theo cách thủ công, trong bài tiếp theo tôi sẽ hướng dẫn bạn cách thực hiện tự động bằng Argo Rollouts. Bài viết này tôi tham khảo từ CNCF Presentation Template K8s Deployment.

Các bước thực hiện theo

Trong bài viết này, tôi sử dụng Minikube để chạy Kubernetes Cluster. Chúng tôi sẽ tiến hành theo các bước sau:

  1. Gọi phiên bản đang chạy và nhận được lưu lượng truy cập từ người dùng của chúng tôi là phiên bản 1
  2. Chúng tôi triển khai phiên bản mới của ứng dụng là phiên bản 2
  3. Chờ phiên bản 2 chạy
  4. Chuyển lưu lượng truy cập từ phiên bản 1 sang phiên bản 2
  5. Tắt phiên bản 1

Trong thực tế

Hãy thực hành, tạo một tệp có tên app-v1.yaml để triển khai phiên bản ứng dụng 1 của chúng tôi, định cấu hình nó như sau:

Trong tệp ở trên, chúng tôi khai báo Triển khai với hai nhãn “app: my-app” và “version: v1.0.0”. Tôi sẽ giải thích lý do tại sao chúng ta cần 2 nhãn.

Tiếp theo, chúng tôi tạo một Dịch vụ cho app-v1 với tên tệp là service.yaml .

Điểm chính ở đây là bộ chọn, vì chúng ta có thể thấy nó khớp với cả nhãn ứng dụng và phiên bản, và nhãn phiên bản là thứ chúng ta thực sự cần quan tâm. Nó là chìa khóa để chúng tôi chuyển đổi lưu lượng giữa hai phiên bản của ứng dụng.

Tạo Triển khai và Dịch vụ.

Nếu không, bạn có thể sử dụng chuyển tiếp cổng.

Sau khi kiểm tra rằng ứng dụng phiên bản 1 của chúng tôi đang chạy, vui lòng tắt chuyển tiếp vì chúng tôi sẽ tiếp tục sử dụng nó sau này.

Tiếp theo, chúng tôi sẽ triển khai phiên bản mới của ứng dụng (phiên bản 2). Tạo một tệp có tên app-v2.yaml với cấu hình như sau:

Bạn để ý trong phần nhãn, chúng ta sẽ khai báo phiên bản nhãn là v2.0.0 . Tiếp theo, chúng tôi triển khai phiên bản ứng dụng 2.

Chờ cho tất cả các Pod ở trạng thái chạy trước khi chúng tôi tiếp tục.

Mở một thiết bị đầu cuối khác và truy cập phiên bản ứng dụng 2 và đảm bảo rằng nó có thể nhận được lưu lượng truy cập từ người dùng.

Nếu ứng dụng phiên bản 2 đã chạy thành công và có thể nhận được lưu lượng, thì phần quan trọng nhất tiếp theo là cách chuyển lưu lượng từ phiên bản 1 sang phiên bản 2. Để làm được điều đó, chúng ta chỉ cần cập nhật nhãn của Dịch vụ ở trên lên phiên bản 2 .Chúng ta có thể chỉnh sửa tệp YAML hoặc thực hiện nhanh chóng bằng lệnh vá.

Lúc này, lưu lượng của ứng dụng được chuyển từ phiên bản 1 sang phiên bản 2.Hãy thử nghiệm.

Ok, nếu bạn thấy kết quả là Version: v2.0.0 thì chúng ta đã triển khai Blue / Green Deployment thành công. Nếu có điều gì đó xảy ra và bạn muốn quay lại phiên bản 1, chúng tôi chỉ cần cập nhật lại phiên bản nhãn.

Cuối cùng, chúng ta tắt ứng dụng phiên bản 1.

Xong. Hãy like trang DevOps VN để nhận thông báo về những bài viết sớm nhất.

Sự kết luận

Vì vậy, chúng ta đã học cách triển khai Blue / Green Deployment, như bạn thấy, nó không phức tạp lắm. Nhưng đây chỉ là cách tập chơi để biết thôi, nên ở bài sau, chúng ta sẽ học cách triển khai Blue / Green Deployment cho một dự án thực tế với Argo Rollouts.

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo