Skip to main content

Kubernetes - Service

Kubernetes Service là một tài nguyên quan trọng để định tuyến lưu lượng trong cụm Kubernetes. Một Service trong Kubernetes cung cấp một địa chỉ IP ổn định cho một tập hợp các Pod, cho phép các Pod trong Service truy cập và tương tác với nhau bằng cách sử dụng địa chỉ IP này.

Một Service trong Kubernetes được định nghĩa bằng một file YAML, bao gồm các thông tin như tên Service, tập hợp các Pod được liên kết với Service, cổng và giao thức sử dụng để truy cập Service.

Bạn có thể tạo một Service mới bằng lệnh kubectl create service <tên service>. Sau đó, bạn có thể sửa file YAML của Service bằng lệnh kubectl edit service <tên service>.

Ví dụ: sau đây minh họa cách sử dụng Service trong Kubernetes để định tuyến lưu lượng đến các Pod trong cụm.

Giả sử bạn có một ứng dụng web đơn giản gồm hai thành phần: một Pod chạy Apache và một Pod chạy MySQL. Bạn muốn định tuyến lưu lượng đến Pod Apache từ bên ngoài cụm Kubernetes và định tuyến lưu lượng từ Pod Apache đến Pod MySQL. Bạn muốn các Pod này được triển khai trên cùng một Node trong cụm Kubernetes.

Đầu tiên, bạn tạo hai Pod mới trong cụm Kubernetes bằng lệnh kubectl run <tên pod> --image=<tên image>. Sau đó, bạn tạo một file YAML để triển khai Service cho các Pod này:

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: my-app
  ports:
  - name: http
    port: 80
    targetPort: 80

Trong file YAML này, một Service có tên là my-service sẽ được tạo. Service này sẽ định tuyến lưu lượng đến các Pod được liên kết với Service bằng cách sử dụng selector app: my-app. Cổng 80 sẽ được sử dụng để truy cập Service.

Sau đó, bạn triển khai file YAML này bằng lệnh kubectl apply -f <tên file YAML>.

Mong rằng thông tin này sẽ giúp bạn hiểu rõ hơn về Kubernetes Service. Hãy để lại câu hỏi nếu cần thêm thông tin.