Lộ trình
Cloud Native Computing FoundationAssociateTuần 2: Đào sâu dịch vụ cốt lõiBài 11 / 30

Ngày 11: Resource requests & limits

Thời lượng: 45 phút
Mục tiêu: 2 nhiệm vụ chính
Tiến độ lộ trình
ckangày 11
hoàn thành11 / 30 bài
Bối cảnh bài học

Thiết kế và debug Kubernetes networking qua Service, EndpointSlice, DNS, kube-proxy, NodePort và NetworkPolicy.

đọc hiểuthực hànhcheckpoint
Bài giảng hôm nay

Học hiểu, rồi mới thực hành

Thiết kế và debug Kubernetes networking qua Service, EndpointSlice, DNS, kube-proxy, NodePort và NetworkPolicy.

Bắt đầu đọc bài giảng

Nhiệm vụ bài học hôm nay

  • Thực hành thiết lập CPU/Memory request và limit
  • Học cách quan sát hành vi khi vượt limit
Instructor walkthrough

Bài giảng chi tiết: từ bài toán đến bằng chứng

Scenario xuyên suốt

Pod healthy nhưng client không kết nối được Service; selector đúng nhưng NetworkPolicy chặn traffic và DNS name bị dùng sai namespace. Bài học yêu cầu lần theo source→Service→endpoint→Pod→policy thay vì mở firewall mù.

01Đọc bài toán

Xác định actor, workload, constraint và trạng thái cuối cần đạt.

02Vẽ luồng / boundary

Chỉ ra request, dependency, identity và failure domain trước khi chọn công cụ.

03Chọn và thực hành

Thay đổi nhỏ nhất trong lab cô lập; command nào cũng phải nói rõ nó kiểm tra điều gì.

04Kiểm chứng / recovery

Đối chiếu trạng thái thực tế, tạo một failure variant và ghi cách hoàn tác.

Cách nối lý thuyết với thực tế
  • Service cung cấp stable virtual IP/name; ClusterIP nội bộ, NodePort mở port trên node, LoadBalancer phụ thuộc environment/provider.
  • Service selector tạo EndpointSlice từ Ready endpoints; Pod IP thay đổi, Service DNS giúp discovery.
  • kube-proxy/service datapath hiện thực forwarding; implementation có thể khác nhưng debug cần inspect Service/endpoints/ports.
  • NetworkPolicy là allow model theo namespace/pod/port nếu CNI hỗ trợ; policy không có selector/egress đúng có thể chặn DNS hoặc return path.

Request path trong cluster

Client dùng Service DNS → ClusterIP → service datapath → EndpointSlice → Ready Pod → container port. Mỗi hop có failure mode: DNS name/namespace, selector, port/targetPort, readiness, NetworkPolicy hoặc application. NodePort/LoadBalancer thêm exposure và cost, không mặc định là fix.

NetworkPolicy

Default-deny làm rõ allow cần thiết nhưng phụ thuộc CNI. Khi policy bật, cho phép đúng namespace/pod/port và DNS egress nếu cần; test deny/allow từ client Pod. Không mở toàn cluster chỉ để xác nhận connectivity.

Bài tập

Dựng backend/client, test DNS và HTTP, cố ý làm sai selector/targetPort/policy rồi thu evidence và sửa. Ghi expected EndpointSlice và cleanup. Pass khi phân biệt được DNS fail, no endpoint, policy deny và app port fail.

Terminal reference

Command list và cách dùng

Chạy từng lệnh theo đúng thứ tự. Trước các lệnh có thể tạo hoặc thay đổi tài nguyên, hãy kiểm tra profile, account và region.

Commands · read-only checkpoints
kubectl get svc,endpointslice -n cka-day11 -o wide
kubectl describe svc backend -n cka-day11
kubectl run netshoot --image=busybox:stable -n cka-day11 --rm -it --restart=Never -- nslookup backend
kubectl get networkpolicy -n cka-day11 -o yaml
kubectl get pods -n cka-day11 --show-labels
Hands-on lab

Thực hành theo scenario

  1. Tạo namespace `cka-day11`, backend Deployment/Service và client Pod; verify ClusterIP, DNS name, EndpointSlice và curl request.
  2. Đổi Service targetPort/selector để tạo failure, thu describe/endpoints/logs, sửa và verify; tạo NodePort chỉ trong lab nếu cần.
  3. Thêm NetworkPolicy default-deny rồi allow client→backend và DNS egress tối thiểu; kiểm tra policy behavior và CNI support.
  4. Cleanup client/backend/Service/NetworkPolicy namespace; không mở NodePort/public LoadBalancer trên production.
Evidence checkpoint

Kiểm chứng kết quả

Không coi lệnh chạy thành công là đủ. Hãy đối chiếu output với trạng thái mong đợi:

  • Service type/selector/port/targetPort phân biệt đúng.
  • EndpointSlice và Ready endpoints có evidence.
  • DNS namespace/port và request path được kiểm tra.
  • NetworkPolicy allow/deny có test và CNI caveat.
  • Cleanup network objects scoped.
Transfer to exam / production

Bẫy thường gặp và trade-off

CKA networking thường fail ở selector, targetPort, DNS namespace và NetworkPolicy default-deny. Kiểm tra endpoints trước policy, rồi test DNS/TCP/HTTP theo từng lớp.

Checkpoint · 3 phút

Kiểm tra nhanh

Câu hỏi: Service có ClusterIP nhưng EndpointSlice rỗng. Kiểm tra nào nên làm trước?

Kết thúc bài

Checklist trước khi sang Ngày 2