K8s Flashcards

(60 cards)

1
Q

Monolithic architecture là gì?

A

Toàn bộ ứng dụng nằm trong một codebase duy nhất, dùng cùng ngôn ngữ và runtime.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Vấn đề khi nhiều team cùng làm việc trong monolith?

A

Dễ phụ thuộc và xung đột, vì cùng chỉnh sửa một codebase.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Tại sao deploy một thay đổi nhỏ trong monolith lại tốn thời gian?

A

Vì phải build & deploy toàn bộ ứng dụng.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Vấn đề khi cần scale một module trong monolith?

A

Phải scale cả ứng dụng, dù chỉ một phần cần mở rộng → tốn tài nguyên.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Monolith thường gặp lỗi về dependency như thế nào?

A

Không thể dùng nhiều version thư viện khác nhau trong cùng hệ thống.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Tại sao monolith release chậm?

A

Mọi thay đổi đều phải test và phát hành toàn bộ ứng dụng.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Microservices architecture là gì?

A

Ứng dụng chia thành nhiều service nhỏ, độc lập, có thể phát triển, deploy, scale riêng.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Microservices chia theo tiêu chí nào?

A

Theo business function, không chia theo kỹ thuật.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

“Loose coupling” trong microservices nghĩa là gì?

A

Các service độc lập, thay đổi hoặc lỗi của một service không ảnh hưởng service khác.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Ưu điểm của microservices?

A

1️⃣Phát triển song song dễ hơn
2️⃣Triển khai độc lập
3️⃣Scale linh hoạt
4️⃣Dùng công nghệ riêng cho từng service

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Cách microservices giao tiếp với nhau phổ biến nhất?

A

Qua API HTTP (REST) hoặc message broker.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Kubernetes (K8s) là gì?

A

Hệ thống mã nguồn mở để quản lý & điều phối container, ban đầu do Google phát triển.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Vì sao microservices cần K8s?

A

Quản lý hàng trăm container, tự động scale, restart, load-balance, đảm bảo tính ổn định.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Data Plane trong Service Mesh có vai trò gì?

A

Proxy xử lý request, retry, metrics, bảo mật, chạy kèm mỗi service (sidecar).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Kubernetes là hệ thống gì?

A

Là một distributed system — gồm nhiều thành phần chạy trên nhiều server (VM hoặc vật lý) hợp lại thành một Kubernetes cluster.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Kubernetes cluster gồm mấy loại node chính?

A

Gồm 2 loại node chính:
1️⃣Control plane node (điều khiển, quản lý)
2️⃣Worker node (chạy ứng dụng containerized)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Control plane node có nhiệm vụ gì?

A

Là đầu não của hệ thống, đảm bảo cluster hoạt động đúng như mong muốn.
👉 Giống như ban quản lý trong một công ty.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Các thành phần của control plane?

A

Gồm các thành phần: API server, etcd, scheduler, kube-controller-manager, cloud-controller-manager.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Worker node có nhiệm vụ gì?

A

Là nơi chạy các ứng dụng containerized.
👉 Giống như phòng ban nơi nhân viên trực tiếp làm việc.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Các thành phần của worker node?

A

Gồm: kubelet, kube-proxy, container runtime.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

API Server làm nhiệm vụ gì?

A

Giống thư ký.
Là đầu mối giao tiếp trung tâm — tất cả các thành phần trong cluster nói chuyện qua API Server.
Chỉ API Server mới có thể kết nối trực tiếp tới etcd.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

etcd là gì?

A

Giống kho tài liệu.
Là cơ sở dữ liệu key-value lưu toàn bộ trạng thái của cluster.
Mọi thay đổi đều được ghi vào đây thông qua API Server.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Scheduler làm nhiệm vụ gì?

A

Giống giám đốc nhân sự.
Chọn node phù hợp để chạy pod khi có pod mới được tạo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Controller Manager làm nhiệm vụ gì?

A

Giống giám sát viên.
Theo dõi actual state và so sánh với desired state (từ manifest).
Nếu khác → điều chỉnh để khớp.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Cloud Controller Manager làm nhiệm vụ gì?
Giống tổng giám đốc.
26
kubelet là gì?
Giống trưởng phòng. Quản lý và giám sát các pod trên node. Đảm bảo container chạy đúng như mô tả từ control plane.
27
kube-proxy là gì?
Giống nhân viên kết nối. Quản lý network communication — giúp các pod giao tiếp với nhau và với bên ngoài.
28
container runtime là gì?
Là phần mềm chịu trách nhiệm chạy container thực tế (ví dụ: Docker, containerd, CRI-O).
29
Vì sao 1 cluster có thể có nhiều control plane?
Để tăng High Availability (HA)
30
Scheduler biết khi nào cần chọn node như thế nào?
Nhờ watch mechanism. Scheduler đăng ký “watch” với API Server để lắng nghe sự kiện — khi có pod pending, nó chọn node phù hợp.
31
Controller hoạt động như thế nào?
Là một vòng lặp vô hạn. Liên tục watch actual state qua API Server, so sánh với desired state → nếu khác biệt → điều chỉnh lại.
32
ReplicaSet có nhiệm vụ gì?
Đảm bảo số lượng Pod đang chạy luôn khớp với số lượng yêu cầu. Template chỉ tạo Pod mới, không cập nhật Pod cũ.
33
Khi thay đổi image version trong ReplicaSet template, Pod cũ có được cập nhật không?
Không. Template chỉ dùng để tạo Pod mới, Pod cũ vẫn giữ nguyên image cũ. Muốn cập nhật → xóa Pod cũ hoặc dùng Deployment.
34
Khi xóa ReplicaSet, điều gì xảy ra với các Pod mà nó quản lý?
ReplicaSet sẽ xóa toàn bộ Pod mà nó quản lý trước khi bị xóa.
35
Deployment khác ReplicaSet ở điểm nào?
Giống người quản lý cấp cao hơn. Ngoài việc đảm bảo số lượng Pod, nó còn quản lý update và rollback. Có thể cấu hình chiến lược update (rollingUpdate, recreate,...).
36
Khi Deployment dùng RollingUpdate, cơ chế cập nhật hoạt động thế nào?
Tạo 1 Pod mới với spec mới → Xóa 1 Pod cũ → Lặp lại đến khi đủ số lượng. (Mặc định maxUnavailable=25%, maxSurge=25%.)
37
PVC là gì?
Là volume ngoài (SAN/NAS/Cloud). Được mount vào container thông qua YAML. Nếu nhiều Pod dùng chung PVC → tất cả cùng chia sẻ một volume.
38
Khi nào cần dùng StatefulSet thay vì Deployment?
Khi mỗi Pod cần storage riêng biệt. StatefulSet tạo PVC riêng cho từng Pod bằng volumeClaimTemplates.
39
StatefulSet khác Deployment ở điểm nào?
Deployment dùng chung PVC cho nhiều Pod, còn StatefulSet tạo PVC riêng cho từng Pod → giúp mỗi Pod có storage độc lập.
40
DaemonSet có nhiệm vụ gì?
Đảm bảo mỗi node có một Pod chạy theo template. Tự động thêm/xóa Pod khi node thêm/xóa.
41
Khi nào nên dùng DaemonSet?
Khi cần chạy Pod trên mọi node (VD: log collector, monitoring agent, network plugin).
42
Job dùng để làm gì trong Kubernetes?
Dùng cho process ngắn hạn (import, batch, build,...). Khi hoàn thành → trạng thái Completed.
43
RestartPolicy của Job khác các workload khác thế nào?
Job có thể dùng Never hoặc OnFailure. Các workload khác như Deployment, DaemonSet, StatefulSet luôn Always.
44
Nếu không có Service thì điều gì xảy ra?
Mỗi Pod có IP riêng và mang tính tạm thời (ephemeral). Khi Pod bị xoá và tạo lại, IP sẽ thay đổi → việc truy cập trực tiếp bằng Pod IP trở nên khó quản lý và không ổn định.
45
ClusterIP là gì?
Là kiểu Service mặc định trong Kubernetes. Nó tạo IP nội bộ trong cluster (chỉ truy cập được từ bên trong cluster). Dùng để các Pod hoặc Service khác giao tiếp nội bộ với nhau.
46
Nếu không chỉ định type khi tạo Service, Kubernetes dùng kiểu nào?
Mặc định sẽ là ClusterIP.
47
Làm sao Service biết Pod nào thuộc về nó?
Trong file YAML của Service có thuộc tính selector (key-value). Nếu Pod có label trùng với selector thì nó sẽ được coi là endpoint của Service.
48
NodePort Service là gì?
Service sẽ mở một port cố định (30000–32767) Worker Node. Client bên ngoài có thể truy cập vào Pod thông qua NODE_IP:NODE_PORT.
49
NodePort hoạt động thế nào?
Khi tạo NodePort Service, Kubernetes vẫn tạo ra một ClusterIP nội bộ. Kubernetes sẽ bind một port cố định (NodePort) trên tất cả Worker Node. Khi client gửi request tới http://:, Kubernetes sẽ chuyển tiếp qua ClusterIP rồi đến Pod backend.
50
Có thể gọi NodePort ở bất kỳ Node nào không?
Có. NodePort được mở trên tất cả Worker Node, nên dù Pod chạy ở Node A, gọi Node B vẫn được — request sẽ được định tuyến nội bộ đến đúng Pod.
51
Nhược điểm của NodePort là gì?
Phải biết NodeIP:NodePort, không thân thiện với client. Mở quá nhiều port gây rối và giảm bảo mật. → Thường chỉ dùng trong môi trường test.
52
Ingress trong Kubernetes là gì?
định tuyến request từ bên ngoài đến đúng Service bên trong cluster, qua tên miền (host) thay vì IP:port.
53
Ingress Controller là gì?
Ingress chỉ là bản mô tả rule, còn Ingress Controller (thường là 1 Pod trong cluster) mới là thứ thực thi các rule đó.
54
Helm là gì trong Kubernetes?
là Package Manager của Kubernetes, giúp quản lý toàn bộ các thành phần (Pod, Service, Secret, v.v.) của một ứng dụng như một gói duy nhất.
55
Tại sao cần dùng Helm thay vì apply nhiều file YAML?
Vì một ứng dụng thường gồm nhiều workload (Deployment, PV, PVC, Secret, Service…). Dùng kubectl apply từng file sẽ rườm rà
56
Helm Chart là gì?
chứa toàn bộ file YAML mô tả các thành phần (Deployment, Service, PV, PVC, Secret, ConfigMap…). Helm dùng Chart để triển khai app lên cluster.
57
Câu lệnh helm install wordpress làm gì?
Tự động triển khai toàn bộ workload của ứng dụng WordPress (MySQL, Web Server, PV, PVC, Secret, Service, v.v.) chỉ với 1 lệnh duy nhất.
58
Câu lệnh helm upgrade wordpress có tác dụng gì?
Cập nhật ứng dụng WordPress lên version mới — Helm sẽ tự xác định thay đổi nào cần cập nhật mà không phải deploy lại toàn bộ.
59
Câu lệnh helm uninstall wordpress làm gì?
Xoá toàn bộ workload (Pod, Service, Secret, PV, PVC, Job, …) thuộc về ứng dụng WordPress — không cần xoá thủ công từng phần.
60
Câu lệnh helm rollback wordpress dùng để làm gì?
Quay trở lại phiên bản cũ hơn của ứng dụng (vd: khi bản mới có lỗi), cực tiện để phục hồi nhanh.