Do đó, vấn đề đặt ra là làm thế nào để tối ưu hóa việc sử dụng tài nguyên trong khi vẫn đảm bảo hiệu suất và độ tin cậy cao cho các ứng dụng kinh doanh.. e _ Triển khai và Thử nghiệm: T
Trang 1ĐẠI HỌC QUOC GIA HA NOI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trang 2MỤC LỤC
1.1 Đặt vẫn đề và Mục Tiêu của để tài cu chư 1 5H: a5 ẽẽ.ẽ 1 1.12 Mục tiêu đểtàải nhu he gue 1
1.2 Tổng quan về Kubernetes và Auto - Scaling 0.c.cccccccccsesccssesesseseesesssessesssaesseens 1 1.2.1 Kubernetes: Hé thong quan ly Container 0 0.ccccccccscsscsssessesseseseesseesesssesreeseees 1 1.2.2 Auto — Scaling trong Kubernetes 0 ccc ccccccsecssesecsesseesesecssessesersesseesevseessenees 2 1.3 Tầm quan trọng của Tối ưu hóa tài nguyên sử dụng trong Doanh Nghiệp 3
2.1 Kubernetes: Kiến trúc vả Thành Phẩn 2-5562 E1 22122112211271122122212211 1c c2 5 2.1.1 _ Kiến trúc tổng quan -.- Sc SE E2 2121122 E121 n1 tra 5 2.1.2 Cac Components trong Kubernefes - c2 1122 vn 1211111181118 1 ray 5 2.2, Auto — Scaling trong Kubern€fes - - : cc 1211111011211 11011 1101210121111 Hy 7
2.2.1 Phân loại Auto - Scaling - s.c c 2t k2 1n 191 101181 0110111110 115101 1H hy hy 7
"No cu ha .A 10 2.2.2.1 CPU va Memory ÌM€trIC§ L- L2 2111919913911 1011 111111151 121111581 ky 11 2.2.2.2 _ Custom và External IMetrICS c2 2121 12121111111111111111 1111 1111k hy 11
2.2.2.3 Các công cụ thu thập ÍMetrICS c 22112 1211 1011011011111 1x ray 12
3.1 _ Cài đặt và cầu hình Kubernetes cluster sử dung Docker va kind 14 3.1.1 Khởi tạo máy ảO LH 1H HH HH HH TH HH Hà HH TH Huy 14 3.1.2 Cài đặt Docker ng TS ng KT KT kg 11 kg 16
3.1.4 Cầu hình Kubernetes Cluster sử dụng kind - ác: 2x2 xe sxee 18
3.2 Triển khai ứng dụng và Cầu hình Auto - Šcaling - ác scchncgr rr ren 19
3.3 Cài đặt và Cấu hình Prometheus và Grafana đề Giám Sát Hiệu Suắt 22 3.4 Xây dựng kịch bản thử nghiệm ó1 0 1211211011211 110111110111 11011 81121112111 27
3.4.1 Mô phỏng quá tải đột ngột L0 1H 29H 12101111 0110110111111 1515 1x ru 28 3.4.2 Mô phỏng giảm tải ngoài giờ cao điểm - 2t E2 212gr ra He 29
Trang 3
3.4.3 Mô phỏng sự cố hạ tầng s- 1c c cET TnEHEHn t1 1212 1 H221 ng re 30
4.1 Cài đặt và Cấu hình Prometheus và Grafana đề Giám Sát Hiệu Suát 32 4.2 So Sánh Hiệu Năng và Tài Nguyên Trước và Sau Khi Áp dụng Auto-Scaling 34 4.2.1 Kết quả mô phỏng giảm tải ngoài giờ cao điểm St nnHnnH ren 34 4.2.2 Kết quả mô phỏng quá tải đột ngột - 5à 1 2t nề E122 211g re ra He 35 4.2.3 Kết quả mô phỏng sự cố hạ tầng 5à 1n nề E122 21 1211211 rrre 37 4.3 Đánh Giá Vấn Đề và Giải Pháp 5à nTn ng HrnH H121 121 neo 38 4.3.1 Nhận diện Vấn ĐỀ ( S221 1 211211 12211 12212212211 e 38
4.3.3 Kết luận 5- 2c 22122112212 1102122212 n1 12H r H2 tru 39
Trang 4DANH MUC HINH ANH Hình 1.1 Ví dụ về Numberlink -. s5: 22222222211221111221122711211112211211.1 E1 1
Hinh 1.2 Minh hoa cách giải Numberlink 222 222122212511 1511551 1511151151521 2y 1 Hình 1.3 Ứng dụng của MAPF cho robot vận chuyên hàng hóa trong kho 1
Hình 1.4 Bai toan MAPF dua vé bai toán Numberlink 222222222252 22222xc2zzc4 2 Hình 1.5 Minh hoa luật chơi a) của Numberlink - 5 22 2 2211222121221 2221221 212212 2 Hình 1.6 Minh họa luật choi b) của Numberlink cece 2222222222 2222e+ss2 3 Hình 1.7 Minh họa luật chơi c) của Numberlink - 2 22 22221122212 22212321222 1212 3
Hình 1.8 Biểu đỗ thứ tự thực hiện bai toán SATT 55 222 22212222 ee 4
Hình 3.1 Minh họa biểu diễn đường đi qua các ô 52-52 S12 212218212121121 2 6 12
Hình 3.2 Minh họa biểu diễn đường đi có gắn nhãn 2-2252 2S 22221527222 E6 12
ll
Trang 5DANH MỤC BẢNG BIEU
Bảng 1.1 Sự tương đồng giữa bài toán MAPF và bài toán Numberlink -5¿ 2
Bảng 2.1 Bảng chân trị phép phủ ổịnh G2 2222211121121 1 1211221181111 211111122 re 6 Bảng 2.2 Bảng chân trị phép hội - - 20 22222211211 12111 211211181 1111111111112 181 ke 6 Bảng 2.3 Bảng chân trị phép tuyn - + 5c T1 1821211111211 2111122121221 11g 7 Bang 2.4 Bảng chân trị phép XOR 2 2 22112211211 1221121 112211122111 1111 1121111212 ky 7 Bảng 2.5 Bảng chân trị phép kéo theo - 1 2222012121 1211221 1211122111 11111 151111112 ky 7
Bảng 2.6 Ví dụ về chuẩn tắc hội CNE 5 S1 9E 1E 1111211111211111 112gr 8
Bảng 4.1 Kết quả thực nghiệm trên bộ sinh đữ liệu ngẫu nhiên 2: 22 z2 z2 16
Bảng 4.2 Kết quả thực nghiệm trên bộ dữ liệu lấy ttr Website eeececseeeeee ee 16
Trang 6Chương 1 Giới thiệu
1.1 Đặt vấn đề và Mục Tiêu của đề tài
1.1.1 Đặt vẫn đề
Trong thời đại số hóa ngày nay, việc quản lý tài nguyên hệ thống một cách hiệu quả là một thách thức lớn đối với nhiều doanh nghiệp Các hệ thống IT truyền thống thường
không linh hoạt, dẫn đến lãng phí tài nguyên và chi phí cao Do đó, vấn đề đặt ra là
làm thế nào để tối ưu hóa việc sử dụng tài nguyên trong khi vẫn đảm bảo hiệu suất và
độ tin cậy cao cho các ứng dụng kinh doanh
e _ Triển khai và Thử nghiệm: Thiết kế các thí nghiệm để đánh giá hiệu quả của
giải pháp tối ưu hóa tài nguyên, bao gồm cả việc triển khai trong môi trường thực tế và mô phỏng
® Phân tích và Đánh giá: Đánh giá kết quả thực nghiệm, so sánh hiệu suất và chỉ phí vận hành trước và sau khi áp dụng các giải pháp tối ưu hóa
e - Đề xuất Chiến lược Áp dụng: Dựa trên kết quả nghiên cứu, đề xuất chiến lược cho việc triển khai giải pháp tối ưu hóa tài nguyên trong môi trường doanh nghiệp
Mục đích cuối cùng của đề tài là cung cấp một hướng dẫn chỉ tiết và cơ sở lý thuyết vững chắc cho việc tối ưu hóa tải nguyên trong các doanh nghiệp, giúp họ không chỉ
Trang 7giảm thiêu chỉ phí mà còn nâng cao khả năng đáp ứng linh hoạt trước các yêu cầu kinh doanh và công nghệ thay đổi nhanh chóng
1.2 Tông quan về Kubernetes va Auto - Scaling
1.2.1 Kubernetes: Hé thong quan ly Container
A Giới thiệu về Kubernetes
Kubernetes, thường được gọi là K8s, là một hệ thống mã nguồn mở phục vụ cho việc
tự động triển khai, mở rộng và quản lý các ứng dụng container hóa Ban đầu được phát triển bởi Google dya trên kinh nghiệm của họ với hệ thống Borg, Kubernetes nhanh chóng trở thành một tiêu chuẩn trong ngành cho việc quan lý ứng dụng đám mây do sự
linh hoạt, mạnh mẽ và cộng đồng hỗ trợ rộng lớn
B Tính năng và lợi ích
Kubernetes mang lại nhiều lợi ích trone việc quản lý ứng dụng:
e _ Tự động hóa việc triển khai và quản lý Container: Kubernetes giúp tự động sắp xếp và triển khai các container, đồng thời tự động mở rộng hoặc thu hẹp quy mô của chúng dựa trên yêu câu
se Mở rộng và Linh hoạt: Hệ thống cho phép đễ dàng mở rộng hoặc giảm quy
mô ứng dụng dựa trên nhụ cầu thực tế
e© Khả năng tự phục hồi: Kubernetes có khả năng tự động khởi động lại các container bị lỗi, thay thế và sắp xếp lại các container khi có node bị lỗi Kubernetes, với khả năng tự động hóa và quản lý hiệu quả, đã trở thành một công cụ không thể thiếu trong môi trường phát triển và triên khai ứng dụng hiện đại, đặc biệt là trong các hệ thông phân tán và cloud
C, Ứng dụng trong doanh nghiệp
Kubernetes đã trở thành một phần quan trọng trong hạ tầng IT của nhiều doanh nghiệp lớn nhờ khả năng tối ưu hóa việc sử dụng tài nguyên, giảm thời gian triển khai ứng dụng và tăng cường độ tin cậy Các doanh nghiệp có thể triển khai các ứng dụng phức tạp một cách nhanh chóng va quản ly chúng một cách hiệu quả
Trang 81.2.2 Auto — Scaling trong Kubernetes
A Khai niém Auto — Scaling
Auto-Scaling trong Kubernetes 1a qua trình tự động điều chỉnh số lượng pods để phản ứng với thay đối nhu cầu về tài nguyên Điều này giúp đảm bảo rằng các ứng dụng được triển khai trong Kubernetes có thê mở rộng quy mô lên hoặc xuống một cách tự động, phù hợp với lưu lượng truy cập và tải công việc hiện tại Tính năng này giup cai thiện hiệu suất, độ tin cay và chi phí hiệu quả của hệ thống
® Phụ thuộc vào Chỉ số Hiệu suất: Lựa chọn chỉ số hiệu suất đúng để kích hoạt auto-scaling là quan trọng, đặc biệt trong các môi trường phức tạp với nhiều loại tải công việc khác nhau
1.3 Tầm quan trọng của Tối ưu hóa tài nguyên sử dụng trong Doanh Nghiệp Trong kỷ nguyên số hóa và dịch vụ dựa trên đám mây ngày nay, doanh nghiệp đang ngày cảng phụ thuộc vào hạ tang CNTT để vận hành và phát triển Trong bối cảnh này, việc tối ưu hóa tài nguyên không chỉ là một vấn để kỹ thuật mà còn là một yêu cầu chiến lược, ảnh hưởng trực tiếp đến hiệu quả kinh doanh và khả năng cạnh tranh của doanh nghiệp
e Hiệu Qua Chỉ Phí: Việc quản lý và sử dụng hiệu quả tài nguyên CNTT có thể giúp doanh nghiệp giảm thiểu chi phí vận hành Trong môi trường đám mây,
Trang 9nơi tài nguyên được tính phí dựa trên mức sử dụng, việc tôi ưu hóa tài nguyên
có thê dân đền tiệt kiệm đáng kê về chị phí
¢ Phan Ung Nhanh Chong voi Nhu Cầu Thị Trường: Trong môi trường kinh doanh hiện đại, nhu cầu thị trường có thé thay đổi nhanh chóng Doanh nghiệp cần có khả năng mở rộng hoặc thu hep tài nguyên CNTTT một cách linh hoạt để đáp ứng với những thay đôi nảy Việc tối ưu hóa tài nguyên cho phép doanh nghiệp nhanh chóng điều chỉnh theo nhu cầu
® Tăng Cường Hiệu Suất và Độ Tin Cậy: Tôi ưu hóa tải nguyên giúp cải thiện hiệu suât và độ tin cậy của hệ thông Điêu nay bao g6m việc giảm thiêu downtime, cải thiện thoi gian phan hoi của ứng dụng, và đảm bảo trai nghi¢m người dùng mượt mà
e Tdi Ưu Hóa Tài Nguyên trong Môi Trường Kubernetes: Trong môi trường Kubernetes, tối ưu hóa tải nguyên càng trở nên quan trọng khi các ứng dụng được triển khai trong các container Kubernetes cung cấp cơ chế Auto-Scaling giúp tự động điều chỉnh số lượng pods dựa trên tải công việc, nhưng việc cấu hình và quản lý hiệu quả các quy tắc Auto-Scaling là chia khóa để đạt được hiệu suât và hiệu quả tài nguyên tôi ưu
Tối ưu hóa tài nguyên là yếu tô quan trọng không chỉ trong việc duy trì hiệu suất hoạt động của hệ thông mà còn là phần không thể thiếu trong chiến lược kinh doanh tổng thể của doanh nghiệp Việc áp dụng các chiến lược Auto-Scaling thông minh trong Kubernetes không chỉ cải thiện hiệu quả quản lý tài nguyên mà còn tăng cường sự linh hoạt và khả năng cạnh tranh của doanh nghiệp trong thế giới kinh doanh số hóa ngày nay
Trang 10Chương 2 Nên tảng lý thuyềt
2.1 Kubernetes: Kiến trúc và Thành Phần
Phan nay của đề tài tập trung vào việc phân tích chị tiệt kiên trúc và các thành phân cot lõi của Kubernetes, một công cụ quản lý container hàng đâu, được sử dụng rộng rãi trong việc tôi ưu hóa và tự động hóa việc triên khai, mở rộng và quản lý các ứng dụng dựa trên container
2.1.1 Kiến trúc tống quan
Kubernetes được thiết kế dựa trên kiến trúc phân tán, chia làm hai loại node chính: Master Node và Worker Nodes, cùng làm việc để quản lý và điều khiển các ứng dụng container hóa
a) Kiên trúc Master-Slave:
- _ Master Node: Là trung tâm điều khiển của Kubernetes, nơi quản lý trạng thái toàn diện của cluster Master Node chứa các thành phần quản lý chính như API Server, Scheduler, Controller Manager va etcd
- Worker Nodes: La cdc may chủ thực thi, nơi các ứng dụng được triển khai dưới dạng containers Mỗi Node chứa các thanh phan can thiét dé chay containers, bao gồm Kubelet, Kube-Proxy và Container Runtime
b) `— Cluster và Nodes:
- Cluster: La mét tap hop cac may chu (nodes) làm việc củng nhau như một don v1 Cluster cho phép ban triển khai và quản lý ứng dụng trên một môi trường phân tán
mà không cần quan tâm đến máy chủ cụ thể nào đang chạy ứng dụng
- Master va Worker Nodes: Méi quan hé gitta Master va Worker Nodes duge xac định rõ ràng, nơi Master Node quản lý toàn bộ cluster và Worker Nodes chịu trách nhiệm chạy các ứng dụng
2.1.2 Cac Components trong Kubernetes
a) Master Components
Trang 11Scheduler: Chịu trách nhiệm phân phối công việc (pods) đến các nodes
Controller Manager: Quan ly cac controller khac nhau nhu_ Replication Controller, Endpoint Controller
eted: Co so dtr ligu key-value lưu trữ tất cả đữ liệu cấu hình và trạng thái của cluster
Node Components
Kubelet: Chạy trên mỗi node, đảm bảo các container đang chạy trong Pod Kube-Proxy: Điều khiến việc truy cập mạng vào các pods từ mạng ngoại vi hoặc các nodes khác trong cluster
Contamer Runtime: Môi trường thyc thi cho container (vi du: Docker)
Resource Management va Security
Resource Management: Cach thirc Kubernetes quản lý tài nguyên như CPU, bộ nhớ
10
Trang 12- Security: Cac tính năng bảo mật cua Kubernetes nhu Role-Based Access Control
(RBAC), Network Policies
` Loris tit — ] Users
và đảm bảo hiệu suất
2.2.1 Phân loại Auto - Scaling
Trong Kubermetes, Auto-Scaling không chỉ giới hạn ở việc mở rộng quy mô theo số lượng Pods, mà còn bao gồm cả việc điều chỉnh tải nguyên và số lượng nodes trong cluster Dưới đây là chỉ tiết về các phương pháp:
¢ Horizontal Pod Autoscaler (HPA): La cong cu phé bién nhat, HPA ty déng diéu chỉnh số lượng Pods trong Deployment, ReplicaSet hoặc StatefulSet dựa trên các chỉ số như CPU hoặc bộ nhớ HPA liên tục theo dõi và điều chỉnh số lượng pods để đáp ứng nhu cầu tài nguyên, từ đó giúp duy trì hiệu suất và độ sẵn sàng của ứng dụng
11
Trang 13This control loop is executed
1 Query for Metrics
3 Scale the app to desired replicas
Horizontal Pod Autoscaler
2 Calculate the Replica”s
every 15 seconds
Kubernetes Cluster
Hinh 2.2 Minh hoa Horizontal Pod Autoscaler
¢ Vertical Pod Autoscaler (VPA): Khac biét vo1 HPA, VPA tap trung vao viéc diéu chỉnh tài nguyên cấp phát cho mỗi pod Nó phân tích mức sử dụng tài nguyên hiện tal cua pods vả tự động cung cấp các giá trị CPU và bộ nhớ tối ưu VPA đặc biệt hữu ích trong các trường hợp các ứng dụng không dé dang mé réng theo chiều ngang nhưng cần tải nguyên động
VPA
Controller
(fe
¬¬ ‘a : 3 kề S2) Pod
Trang 14e©_ Cluster Autoscaler: Tự động điều chỉnh quy mô của cluster bằng cách thêm hoặc loại bo nodes Cluster Autoscaler theo déi nhu cau vé tai nguyén va kha nang san
có của Pods, đảm bảo rằng có đủ nodes để chạy tất cả các pods và không có nodes nào bị lãng phí Điều này giúp cải thiện hiệu suất và giảm chỉ phí trong môi trường dam may
: requests pending :
Launch a new node
' © © @ © New Node, Where :
Existing Node 1 Existing Node 2 the pending pods '
Existing Nodes
Hình 2.3 Minh hoa Cluster Autoscaler
¢ Custom va Event-driven Autoscaling: Cung cấp khả năng mớ rộng quy mô dựa
trên sự kiện từ các nguồn bên ngoài, chăng hạn như hàng đợi tin nhắn hoặc sự kiện
từ hệ thông khác Phương pháp nảy cho phép mở rộng quy mô dựa trên yêu cầu thực tế của ứng dụng, thích hợp cho các kiến trúc dựa trên sự kiện và microservices
13
Trang 15Horizontal pod + adapter Metrics Controller Scaler autoscaler
Any
events?
1->n or n->1 0->1 or 1->0
14
Trang 162.2.2.1 CPU và Memory Metrics
CPU và Memory Metrics là những chỉ số cơ bản nhưng quan trọng trong việc quản lý tài nguyên của hệ thống Kubernetes Chúng cung cấp thông tin chỉ tiết về mức sử dụng tài nguyên hiện tại của các pods và nodes, giúp xác định nhu cầu tài nguyên và cơ sở
dé điều chỉnh quy mô
Kubernetes su dung Metrics Server, một thành phan cluster-level, dé thu thập và lưu trữ các chỉ số về CPU và Memory Cụ thể, Metrics Server thu thập thông tin về sử dụng CPU và Memory từ Kubelet, dịch vụ chạy trên mỗi node và quản lý các pods trên node đó
Chỉ tiết về các Metrics va Triggers:
- CPU Metrics va Triggers:
e Ty lé sw dung CPU (CPU usage): Day la lwong CPU duoc su dung boi mét pod hoặc node, thường được tính bằng millicores
¢ Giới hạn CPU (CPU limits): Là giới hạn tôi đa về CPU mà một pod có thế sử dụng Nếu pod sử đụng quá mức này, nó có thể bị giới hạn hoặc chuyên sang trạng thai cho
- Memory Metrics va Triggers:
e Ty lé sw dung Memory (Memory usage): Do luong b6 nhé RAM duoc su dung
bởi một pod hoặc node
¢ Gidi han Memory (Memory limits): Tuong ty nhu CPU limits, day la lrong bộ
nhớ tối đa mà một pod có thé str dung
2.2.2.2 Custom va External Metrics
Custom Metrics là những chỉ số được định nghĩa bởi người dùng và không phải là phần chuẩn của Kubernetes Chúng thường liên quan đến hoạt động cụ thể của ứng dụng, như số lượng yêu cầu xử lý mỗi giây hoặc thời gian phản hỏi trung bình Các Custom Metrics này cho phép một mức độ tinh chỉnh và điều chỉnh cao hơn trong quản lý tài nguyên Custom Metrics có thể được thu thập thông qua công cụ như Prometheus Đề sử dụng các Custom Metrics trong Kubernetes, can phải cài đặt va cau hình một adapter như Prometheus Adapter Adapter này làm cầu nối giữa Prometheus
15
Trang 17và Kubernetes, cho phép Kubernetes sử dụng đữ liệu từ Prometheus để thực hiện Auto
- Scaling
External Metrics dé cap dén cac chi sé thu thập từ các nguồn bên ngoài Kubernetes Chúng có thể bao gồm dữ liệu từ các dịch vụ như AWS CloudWatch, Google Cloud Monitoring, hoặc bất kỳ nguồn đữ liệu nào khác có thể cung cấp thông tin hữu ích cho quá trình quản lý tải nguyên Việc sử dụng External Metrics thường đòi hỏi việc thiết lập các cấu hình và kết nối đặc biệt với các dịch vụ bên ngoai Cac External Metrics nay sau đó có thể được sử dụng trong Horizontal Pod Autoscaler hoặc các cơ chế Auto-Scaline khác, cho phép Kubernetes điều chỉnh quy mô dựa trên dữ liệu từ bên ngoải môi trường của nó
2.2.2.3 Các công cụ thu thập Metrics
Trong việc quản lý và piám sát tài nguyên Kubernetes, việc sử dụng các công cụ thu thập và hiển thị metrics chính xác và hiệu quả là hết sức quan trọng Prometheus và Grafana là hai công cụ hàng đầu trong lĩnh vực này, cung cấp khả năng thu thập, lưu trữ, truy vấn, và hiển thị dữ liệu một cách linh hoạt và mạnh mẽ Bằng cách kết hợp khả năng thu thập dữ liệu phức tạp của Prometheus và khả năng hiển thị dữ liệu trực quan của Grafana, người quản trỊ có thể có cái nhìn sâu sắc và toàn điện về hiệu suất
và tình trạng của hệ thống
- Prometheus:
Prometheus la mét hé thong gia4m sat va canh bao dir ligu dang time-series ma nguon
mở Nó được thiết kê đặc biệt cho môi trường container như Kubernetes và được sử dụng rộng rãi đề thu thập và lưu trir metrics
Các chức năng chính:
¢« Thu thập Metrics: Prometheus thu thập metrlcs thông qua việc scraping các endpoints mà các ứng dụng và dịch vụ phơi bày ra Điều này bao gồm cả metrics
hé thong va custom metrics
¢ Lưu trữ và Truy vấn: Prometheus luu tri cac metrics dudi dang time-series va cung cấp ngôn ngữ truy vẫn PromQL cho phép người dùng trích xuất và xử lý đữ liệu một cách lĩnh hoạt
16
Trang 18ĩ discover targets
¡ Prometheus server
HTTP server
"¬¬ Prometheus web UI Grafana
Dashboard va Hién thị Dữ liệu: Grafana cho phép người dùng tạo các đashboard tủy chỉnh với nhiều loại biểu đồ, bang, va cac widget khac dé hién thi metrics Diéu này giúp cho việc giám sát và phân tích dữ liệu trở nên trực quan và dễ dàng hơn Prometheus và Grafana thường được sử dụng cùng nhau để tạo ra một hệ thống giám sát và phân tích dữ liệu mạnh mẽ Prometheus đóng vai trò là nguồn cung cấp đữ liệu, trong khi Grafana đóng vai trò hiến thị và phân tích đữ liệu Trong môi trường
17
Trang 19Kubernetes, sự kết hợp này cho phép người quản trị có cái nhìn toàn diện về tình trạng của cluster, từ hiệu suất tài nguyên đến trạng thái hoạt động của các ứng dụng
Chương 3 Xây dựng môi trường thử nghiệm
3.1 Cài đặt và cấu hình Kubernetes cluster sử dụng Docker và kind
3.1.1 Khoi tao may ao
Trong phan nảy, chúng ta sẽ bắt đầu bằng việc thiết lập môi trường cơ bản cho Kubernetes Cluster, bắt đầu từ việc tạo Droplet trên DigitalOcean DigitalOcean cung cấp một giải pháp đám mây đơn giản và hiệu quả, phù hợp cho việc triển khai và quản
lý Kubernetes
Bước l: Tạo Tài Khoản và Đăng Nhập vào DigitalOcean
« Dang ky Tai Khoản: Đầu tiên, bạn cần tạo một tài khoản trên DigitalOcean Quá trình đăng ký đơn giản và nhanh chóng, chỉ cần cung cấp email và thiết lập mật khẩu
¢« Đăng Nhập: Sau khi đăng ký, đăng nhập vào tài khoan DigitalOcean cua ban
dé bat dau quá trình tao Droplet
Bước 2: Tạo Droplet
« Chọn 'Create' và 'Droplets': Trên trang chủ cua DigitalOcean, chon "Create"
từ menu, sau dé chon "Droplets"
18
Trang 20- - Cấu hình Droplet:
« Hệ Điều Hành: Sử dung Ubuntu Server 20.04
« - Kích Cỡ: 16Gb RAM, 4 Intel vCPUs, 320Gb SSD
¢ Datacenter Region: SYDNEY |
« - Cài đặt Thêm (Tùy chọn): Không có
« - Khởi tạo Droplet: Sau khi hoản tat cau hinh, nhan "Create Droplet" dé bat dau qua trinh tao
19
Trang 21Bước 2: Cài đặt Các Gói Cần Thiết
Cài đặt các gói cần thiét cho viéc cai dit Docker, bao g6m apt-transport-https, ca- certificates, curl, software-properties-common
Bước 3: Thêm Khóa GPG ctia Docker
Thêm khóa GPG chính thức của Docker dé đảm bảo tính xác thực của các 201 tal về
20
Trang 22curl -fsSL https://download.docker.com/Linux/ubuntu/gpg | sudo apt-key add -
Bước 4: Thêm Docker Repository
Thêm repository chính thức của Docker vào danh sách các nguồn cung cấp gói
sudo add-apt-repository "deb [arch=amd64]
https: //download.docker.com/linux/ubuntu $(lsb_release - cs) stable"
Buéc 5: Cai dat Docker CE (Community Edition)
Cập nhật lại danh sách gói sau khi thêm Docker repository va cai dat Docker CE
| sudo apt-get update sudo apt-get instaLL docker-ce
Bước 6: Kiểm tra cài đặt
Kiểm tra phién ban cua Docker dé dam bao cai đặt thành công
21
Trang 23
Bước 1: Tải xuống kind
Sử dụng curl dé tải xuống tệp thực thi kind từ trang web chính thức:
Bước 3: Di chuyền tệp thực thi vào PATH
Di chuyển tệp kind vào một thư mục nằm trong biến môi trường PATH của bạn:
Isudo mv /kind /usr/LocaL/bin/kind
Bước 4: Kiểm tra cài đặt
Kiểm tra phiên bản của kind để đảm bảo cài đặt thành công:
Bước I: Tạo file cấu hình
Đầu tiên, bạn cần tạo một file cấu hình YAML để định nghia cau tric cua cluster Tao một file mới tên kind-cluster-confie.yaml, với nội dung sau: