- vừa được xem lúc

[CI-CD] Triển khai Ứng dụng trên Nginx với Kubernetes Engine

0 0 31

Người đăng: Thiên Đông Trần

Theo Viblo Asia

Tiếp nối với bài hôm trước Triển khai Ứng dụng lên Kubernetes Engine của Google Cloud Platform thì hôm nay mình sẽ giới thiệu cách để sử dụng thêm Nginx 😋 🚀

Repository để các bạn có thể kéo về tham khảo: Kubernetes-Nginx-CI-CD-Template

Cấu hình nginx

Đầu tiên, để sử dụng Nginx, chúng ta cần tạo file nginx.conf để cấu hình hoạt động. Dưới đây là một ví dụ cấu hình cơ bản để lắng nghe trên cổng 80 và chuyển hướng từ service nodejs-service:

events {} http { server { listen 80; location / { proxy_pass http://nodejs-service; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
}

Sau đó, tạo Dockerfile để build image Nginx và copy file nginx.conf vào image:

FROM nginx:latest COPY nginx/nginx.conf /etc/nginx/nginx.conf

Build image nginx và push lên google container registry

Như vậy là mình đã cấu hình xong để triển khai Nginx. Tiếp theo, thêm lệnh vào GitHub workflow để build image và đẩy lên GCR:

- name: Build and push Nginx Docker image run: | docker build -t gcr.io/${{ secrets.GCP_PROJECT_ID }}/nginx-app:latest -f nginx/Dockerfile . docker push gcr.io/${{ secrets.GCP_PROJECT_ID }}/nginx-app:latest

Tạo file config k8s

Sau khi image được đẩy lên GCR, chúng ta tạo file cấu hình để deploy lên Kubernetes. Dưới đây là file nginx-deployment.yaml:

apiVersion: apps/v1
kind: Deployment
metadata: name: nginx-deployment
spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: gcr.io/cdtest-406103/nginx-app:latest ports: - containerPort: 80

Trong đó

  • Deployment: Mô tả cách Kubernetes sẽ chạy ứng dụng.
  • replicas: Số lượng bản sao của ứng dụng Nginx sẽ chạy, ở đây là 2 bản sao.
  • selector: Chỉ định Pods nào sẽ được triển khai, dựa trên labels.
  • template: Định dạng cho các Pods mới.
  • containers: Cài đặt container.
  • image: Image của Nginx sẽ được sử dụng.
  • ports: Cổng mà Nginx sẽ lắng nghe yêu cầu, ở đây là cổng 80.

File nginx-service.yaml để cấu hình service:

apiVersion: v1
kind: Service
metadata: name: nginx-service
spec: selector: app: nginx ports: - protocol: TCP port: 80 targetPort: 80 type: LoadBalancer

Trong đó:

  • Service: Định nghĩa cách truy cập vào ứng dụng.
  • selector: Xác định các Pods mà Service sẽ định tuyến yêu cầu đến, dựa trên labels.
  • ports: Cấu hình cổng mà Service sẽ lắng nghe yêu cầu và cổng mà Pods sẽ sử dụng để xử lý các yêu cầu, ở đây đều là cổng 80.

Apply file config vào github action để tiến hành deploy

Trong github workflow sẽ cần apply 2 file config mình vừa tạo ở bước trên để tiến hành deploy k8s, bạn thêm dòng này vào github workflow nha

- name: Apply Nginx Deployment run: | kubectl apply -f k8s/nginx-deployment.yaml kubectl apply -f k8s/nginx-service.yaml

Như vậy đã xong quá trình deploy lên k8s sử dụng nodejs, các bạn có thắc mắc cứ comment bên dưới nha 🥰

Bình luận

Bài viết tương tự

- vừa được xem lúc

STACKDRIVER - GETTING STARTED

1. Overview.

0 0 49

- vừa được xem lúc

Set Up Network and HTTP Load Balancers

1. Overview. There are two types of load balancers in Google Cloud Platform:. .

0 0 70

- vừa được xem lúc

Deploying A Containerized Web Application On Kubernetes

1. Overview. Kubernetes is an open source project (available on kubernetes.io) which can run on many different environments, from laptops to high-availability multi-node clusters; from public clouds to on-premise deployments; from virtual machines to bare metal.

0 0 55

- vừa được xem lúc

Introduction to Google Cloud AutoML Vision

With the rapid development of technology, a Data Scientist could achieve their job like training ML models faster. The Word "AutoML"(also known as Automated machine learning) comes and now plays a cru

0 0 83

- vừa được xem lúc

Nhập môn Infrastructure as Code - Sử dụng Terraform để provision infrastructure trên GCP

Hôm nay, mình sẽ dành thời gian để viết 1 bài Hands-on đơn giản về Terraform - Một công cụ để viết Infrastructrure as Code. .

0 0 53

- vừa được xem lúc

Hướng dẫn build ứng dụng sử dụng dịch vụ Speech To Text của Google Cloud trên NodeJS

Hiện tại có rất nhiều nhà cung cấp hỗ trợ service nhận diện giọng nói từ file sang văn bản, nổi bật nhất trong đó có lẽ là service từ Google Cloud. Hôm nay mình sẽ hướng dẫn các bạn cách setup và sử d

0 0 42