0

Bài 6. Pod có IP nhưng vẫn không thể truy cập được?

"Pod đã chạy rồi. Vậy tại sao tôi vẫn không thể truy cập ứng dụng?"

Đây là một trong những câu hỏi đầu tiên mà hầu hết mọi người gặp khi học Kubernetes.


Chúng ta đang gặp vấn đề gì?

Ở bài trước, chúng ta đã dùng Deployment để tạo ra một Pod chạy ứng dụng.

Ví dụ:

Frontend Pod
IP: 10.244.1.15

Ứng dụng đã chạy thành công và Pod cũng có địa chỉ IP.

Vậy chỉ cần truy cập vào IP đó là xong đúng không?

Không hẳn.


Vấn đề 1: Pod có thể bị thay thế bất cứ lúc nào

Giả sử Pod bị lỗi.

Pod A (10.244.1.15)
        │
        │ bị lỗi
        ▼
Pod B (10.244.2.31)

Deployment sẽ tự tạo một Pod mới.

Nhưng Pod mới lại có địa chỉ IP hoàn toàn khác.

Nếu ứng dụng của bạn đang kết nối tới 10.244.1.15 thì ngay lập tức kết nối sẽ bị hỏng.


Vấn đề 2: Một ứng dụng thường có nhiều Pod

Để chịu tải tốt hơn, Deployment thường tạo nhiều Pod.

Frontend

Pod 1  10.244.1.15

Pod 2  10.244.2.31

Pod 3  10.244.3.22

Bây giờ lại xuất hiện câu hỏi mới:

Người dùng nên gửi request đến Pod nào?

Nếu chỉ gửi đến một Pod thì những Pod còn lại sẽ không được sử dụng.


Kubernetes giải quyết như thế nào?

Thay vì kết nối trực tiếp đến từng Pod, Kubernetes tạo ra một lớp trung gian gọi là Service.

Client
   │
   ▼
Service
   │
 ┌─┴──────────────┐
 ▼       ▼       ▼
Pod1    Pod2    Pod3

Người dùng chỉ cần gửi request đến Service.

Service sẽ tự động chuyển request đến một trong các Pod đang hoạt động.


1. Service có gì đặc biệt?

Khác với Pod, Service có địa chỉ IP ổn định.

Dù Pod bị xóa, tạo mới hay scale lên hàng chục Pod, địa chỉ của Service vẫn không thay đổi.

Điều này giúp các ứng dụng trong Kubernetes luôn biết phải kết nối đến đâu mà không cần quan tâm Pod nào đang chạy.


2. Lợi ích của Service

  • ✅ Cung cấp một địa chỉ truy cập ổn định.
  • ✅ Tự động cân bằng tải giữa nhiều Pod.
  • ✅ Không bị ảnh hưởng khi Pod được tạo mới hoặc bị xóa.
  • ✅ Giúp các ứng dụng trong Cluster giao tiếp với nhau dễ dàng.

Tóm tắt

Pod có IP, nhưng IP đó không ổn định.

Nếu ứng dụng kết nối trực tiếp tới Pod, chỉ cần Pod bị thay thế là kết nối sẽ bị gián đoạn.

Đó là lý do Kubernetes giới thiệu Service — một "địa chỉ cố định" đứng trước các Pod, giúp việc giao tiếp trở nên ổn định và đáng tin cậy.

Hãy nhớ một câu đơn giản:

Pod là nơi chạy ứng dụng.

Service là cánh cửa để truy cập ứng dụng.


Bài tiếp theo

Chúng ta đã có Service với một địa chỉ IP cố định.

Nhưng sẽ rất bất tiện nếu phải nhớ những địa chỉ IP dài như 10.96.0.15.

Vậy Kubernetes giúp các Pod tìm thấy nhau bằng tên thay vì IP như thế nào?

👉 Đó sẽ là nội dung của Bài 7: Kubernetes DNS – Làm sao các Pod tìm thấy nhau?


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí