Triển khai ứng dụng với Kubernetes sang GCP

Tram Ho

Bắt đầu

Trong bài viết này tôi sẽ chỉ cho bạn cách triển khai một ứng dụng Go đơn giản sẽ tiêu thụ một api Anime công cộng có tên là Jikan . Mục tiêu là hướng dẫn bạn cách thiết lập cụm kubernetes trên Google Cloud Platform và triển khai một ứng dụng ở đó, vì vậy tôi sẽ không đi sâu vào chi tiết về cách hoạt động của mã Go.

Những gì bạn cần để làm việc trên đường đi trong bài viết này là như sau:

Chuẩn bị một dự án demo

Như mọi khi mã nguồn có sẵn trên tài khoản github của tôi và bạn có thể lấy nó ở đây . Trước khi chúng ta đi sâu vào triển khai thực tế, chúng ta hãy xem nhanh dự án demo của chúng ta sẽ làm gì?

Dự án demo của chúng tôi được gọi là Jikan , đó là một dịch vụ tìm kiếm anime tiêu thụ API công khai MyAnimeList có tên (bạn đoán nó) Jikan . Để sử dụng dịch vụ, yêu cầu GET đến điểm cuối sau

Đây là logic chính của chúng tôi. Về cơ bản, tất cả những gì nó làm là tiêu thụ api Jikan, đáp ứng bản đồ cho loại và trả lại của chúng ta.

Để chạy một dự án địa phương

Đóng gói ứng dụng của chúng tôi

Bước đầu tiên để triển khai là đóng gói ứng dụng của chúng tôi vào một thùng chứa. Tôi muốn hình ảnh càng nhỏ càng tốt vì vậy tôi đã chọn đầu như hình ảnh cơ sở. Để tóm tắt những gì đang diễn ra, chúng tôi sử dụng xây dựng nhiều giai đoạn. Giai đoạn đầu tiên là xây dựng ứng dụng Go của chúng tôi thành một tệp nhị phân và sau đó ở giai đoạn cuối cùng sao chép tệp nhị phân đó và thực hiện nó trong một điểm vào.

Hình ảnh thu được là ~ 6MB

Bây giờ đẩy hình ảnh để đăng ký docker

Xác định triển khai Kubernetes

Sau đây sẽ tạo ra một tên triển khai jicky quản lý 4 bản sao ứng dụng của chúng tôi hiển thị trên cổng container 8080 . Hình ảnh sẽ được lấy từ kho trung tâm norin/jikan:1.0.0 của tôi norin/jikan:1.0.0 .

Tiếp theo chúng ta cần một cách để truy cập ứng dụng của chúng tôi từ web. Có nhiều cách để lưu trữ cái này nhưng ở đây tôi đã chọn để tạo một LoadBalancer . Nó sẽ phân phối lưu lượng truy cập mà nó nhận được cho dịch vụ được gắn nhãn với app: jikan và ánh xạ tới cổng 8080.

Thiết lập dự án & cụm GCP

Nhiệm vụ tiếp theo là thiết lập dự án & cụm GCP bằng cách chạy các lệnh sau. Lệnh đầu tiên sẽ xác thực và nhận mã thông báo truy cập cần thiết cho các lệnh tiếp theo. Tiếp theo sẽ tạo ra một tên dự án Jikan Anime với id jikan-anime . Và cuối cùng chúng tôi tạo ra một cụm tên jikan-anime ở Singapore. Lệnh cuối cùng chuyển kubernetes bối cảnh hiện tại sang cụm được tạo trước đó của chúng tôi.

Triển khai ứng dụng cho GCP

Cuối cùng nhưng không kém phần quan trọng, đã đến lúc triển khai ứng dụng của chúng tôi

Như bạn có thể thấy từ 4 pod đầu ra và 1 loadbalancer được tạo như được định nghĩa trong spec.

Kiểm tra

Cố gắng tìm kiếm tiêu đề anime bằng cách đưa ra yêu cầu NHẬN đến điểm cuối sau. Lưu ý ip bên ngoài từ loadbalancer.

Sửa lỗi

Có một lỗi trong phiên bản 1.0.0 của mã của chúng tôi, thuộc tính không thoát khỏi chuỗi truy vấn. Hãy sửa lỗi này và triển khai các bản vá để sản xuất.

Xây dựng lại hình ảnh

Phát hành bản vá để sản xuất và chú ý phiên bản hình ảnh podall

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo