0
0
Lập trình
Thaycacac
Thaycacac thaycacac

Hướng Dẫn Sử Dụng PODs trong Kubernetes - Cách Thực Thi

Đăng vào 1 tháng trước

• 5 phút đọc

Giới thiệu về Kubernetes và PODs

Kubernetes là một hệ thống quản lý container mã nguồn mở, giúp tự động hóa việc triển khai, mở rộng và quản lý ứng dụng container. Trong Kubernetes, POD là đơn vị triển khai nhỏ nhất. POD chứa một hoặc nhiều container, chia sẻ cùng một không gian mạng và lưu trữ. Việc hiểu rõ về PODs là rất cần thiết cho bất kỳ nhà phát triển nào làm việc với Kubernetes.

POD là gì?

POD là đơn vị cơ bản trong Kubernetes. Khi bạn muốn chạy một container trên Kubernetes, bạn sẽ tạo ra một POD chứa container đó. POD cung cấp một ngữ cảnh mạng và lưu trữ chung cho các container bên trong nó.

POD Đa Container

POD đa container bao gồm hai hoặc nhiều container cần chạy cùng nhau và chia sẻ cùng một không gian mạng và lưu trữ. Những POD này thường được sử dụng cho các mẫu trợ giúp chặt chẽ, như các collector log, data pullers/pushers hoặc các content generators mà container chính tiêu thụ.

Bắt đầu với PODs - Demo Thực Thi

Bước 1: Kiểm tra Trạng Thái Node

Trước khi bắt đầu, hãy xác nhận rằng kubeconfig của bạn đã được thiết lập chính xác và các worker node đang ở trạng thái Ready.

bash Copy
# Cấu hình kubeconfig cho kubectl (thay thế các tham số)
gcloud container clusters get-credentials <TÊN-CỤM> --region <KHU-VỰC> --project <TÊN-DỰ-ÁN>

# Ví dụ
 gcloud container clusters get-credentials standard-public-cluster-1 --region us-central1 --project gcp-zero-to-hero-468909

# Kiểm tra trạng thái worker node
kubectl get nodes

# Kiểm tra trạng thái worker node với tùy chọn rộng
kubectl get nodes -o wide

Bước 2: Tạo một POD

Bạn có thể tạo một POD một cách trực tiếp bằng cách sử dụng lệnh kubectl run.

bash Copy
# Mẫu
kubectl run <tên-pod-mong-muốn> --image <Hình-ảnh-Container>

# Thay thế tên POD và hình ảnh container
kubectl run my-first-pod --image ghcr.io/stacksimplify/kubenginx:1.0.0

Bước 3: Liệt kê các POD

Bạn có thể liệt kê tất cả các POD hiện có trong Kubernetes bằng lệnh sau:

bash Copy
# Liệt kê các POD
kubectl get pods

# Tên viết tắt: po
kubectl get po

Bước 4: Liệt kê các POD với tùy chọn rộng

Lệnh này sẽ cho biết mỗi POD đang chạy trên node nào và một số thông tin bổ sung khác.

bash Copy
# Liệt kê các POD với tùy chọn rộng
kubectl get pods -o wide

Bước 5: Những gì xảy ra khi tạo POD?

Khi bạn chạy lệnh kubectl run, Kubernetes sẽ thực hiện các bước sau:

  • Tạo một đối tượng POD trong cụm.
  • Agent trên node (kubelet) sẽ lên lịch cho POD trên một worker node.
  • Node sẽ kéo hình ảnh Docker từ kho (Docker Hub, GitHub Packages, v.v.).
  • Kubernetes sẽ tạo container bên trong POD và khởi động nó.

Đây là các hành động quan trọng trong vòng đời dẫn đến việc chạy một container bên trong POD.

Bước 6: Mô tả POD (khắc phục sự cố)

Lệnh kubectl describe rất quan trọng cho việc gỡ lỗi. Bạn có thể xem các sự kiện để tìm lỗi, thông tin kéo hình ảnh, thông tin lên lịch, lỗi sẵn sàng/sống, v.v.

bash Copy
# Lấy danh sách tên POD
kubectl get pods

# Mô tả POD (thay thế bằng tên pod của bạn)
kubectl describe pod <Tên-Pod>
kubectl describe pod my-first-pod

Quan sát: Hãy kiểm tra phần Events một cách kỹ lưỡng — nó thường cho bạn biết lý do tại sao một điều gì đó thất bại (lỗi kéo hình ảnh, crashloops, vấn đề lên lịch, v.v.).

Bước 7: Truy cập Ứng Dụng

Hiện tại, POD chỉ có thể truy cập bên trong cụm (trên mạng node/cụm). Để truy cập ứng dụng từ bên ngoài, bạn cần tạo một Service (NodePort hoặc LoadBalancer). Services là một khái niệm quan trọng trong Kubernetes — chúng cung cấp mạng ổn định (VIP) và cân bằng tải cho các POD.

Bước 8: Xóa POD

Khi bạn đã hoàn tất, hãy dọn dẹp.

bash Copy
# Lấy danh sách các POD
kubectl get pods

# Xóa POD
kubectl delete pod <Tên-Pod>
kubectl delete pod my-first-pod

Tổng Kết và Mẹo

  • Đây là cách tiếp cận thực thi — bạn đã sử dụng các lệnh kubectl để tạo và quản lý POD trực tiếp.
  • Đối với các thiết lập sản xuất hoặc có thể lặp lại, hãy ưa chuộng cách tiếp cận khai báo (YAML + kubectl apply -f) để bạn có thể kiểm soát phiên bản các manifest.
  • Sử dụng thường xuyên lệnh kubectl describe và kubectl logs khi gỡ lỗi.

Các Thực Hành Tốt Nhất

  • Sử dụng tên POD dễ nhớ, có liên quan đến chức năng của ứng dụng.
  • Kiểm tra thường xuyên trạng thái POD để đảm bảo tất cả đều hoạt động bình thường.

Những Cạm Bẫy Thường Gặp

  • Không kiểm tra trạng thái của POD có thể dẫn đến việc bỏ sót các sự cố nghiêm trọng.
  • Thiếu cấu hình đúng hình ảnh container có thể gây lỗi trong việc khởi động.

Mẹo Tối Ưu Hiệu Suất

  • Thường xuyên cập nhật hình ảnh container để sử dụng các bản vá bảo mật mới nhất.
  • Tối ưu hóa cấu hình tài nguyên cho PODs để đạt được hiệu suất cao nhất.

Câu Hỏi Thường Gặp

POD có thể chứa bao nhiêu container?

Một POD có thể chứa một hoặc nhiều container, tuy nhiên, tốt nhất là chỉ nên chứa 2-3 container để quản lý dễ dàng hơn.

Làm thế nào để khắc phục sự cố khi POD không khởi động?

Sử dụng lệnh kubectl describe pod <Tên-Pod> để kiểm tra sự kiện và lỗi liên quan đến POD.

Tại sao tôi nên sử dụng Service cho POD?

Service cung cấp một địa chỉ IP ổn định và khả năng cân bằng tải cho các POD, giúp bạn dễ dàng truy cập ứng dụng từ bên ngoài.

Tài Nguyên Tham Khảo

🌟 Cảm ơn bạn đã đọc! Nếu bài viết này hữu ích, hãy thả một like ❤️, theo dõi hoặc chia sẻ để tôi có động lực tạo thêm nhiều nội dung hơn nữa.


— Latchu | Kỹ Sư DevOps & Cloud Cao Cấp

☁️ AWS | GCP | ☸️ Kubernetes | 🔐 Bảo Mật | ⚡ Tự Động Hóa
📌 Chia sẻ hướng dẫn thực hành, thực tiễn tốt nhất & giải pháp cloud thực tế.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào