Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 25

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

TÌM HIỂU VỀ ĐIỆN TOÁN BIÊN

TRÊN NỀN TẢNG KUBERNETES

Giảng viên: TS Lê Trung Quân

Học viên thực hiện:

Lớp: CH K17-2. ĐH CNTT – Khóa 17.2

Mã số sinh viên: CH220202015

TP HỒ CHÍ MINH
Tháng 4 năm 2023

LỜI CẢM ƠN

Lời đầu tiên trước khi đi vào nội dung bài báo cáo, em xin cảm ơn thầy Lê Trung
Quân trong suốt quá trình học tâp đã hướng dẫn để em hoàn thành tốt môn học của
mình. Xin được chúc thầy thật nhiều sức khỏe để có thể truyền đạt những kiến
thức của mình đến những học viên sau.
LỜI MỞ ĐẦU

Khi các thiết bị ngày càng thông minh hơn, nhỏ hơn và kết nối không dây trở nên
nhanh hơn, thì điện toán biên có thể ngày càng trở nên quan trọng hơn. Đây là công nghệ
tiềm năng trong thời đại IoT bùng nổ, đem tới sức mạnh tính toán nhanh hơn, tiết kiệm
băng thông và giảm độ trễ. Từ đó, em đã chọn đề tài này để nghiên cứu. Do thời gian,
kiến thức, kinh nghiệm thực tế còn quá hạn hẹp nên khó tránh khỏi những sai sót trong
quá trình trình bày. Rất mong nhận được sự thông cảm và góp ý từ quý Thầy cô, anh chị,
bạn học.
Chương 1. Tổng quan về Edge Computing

1.1. Internet vạn vật (Internet of Things)

Theo Amazon Web Services, “Thuật ngữ IoT hay Internet vạn vật đề cập đến mạng lưới
tập hợp các thiết bị thông minh và công nghệ tạo điều kiện thuận lợi cho hoạt động giao
tiếp giữa thiết bị và đám mây cũng như giữa các thiết bị với nhau. Nhờ sự ra đời của chip
máy tính giá rẻ và công nghệ viễn thông băng thông cao, ngày nay, chúng ta có hàng tỷ
thiết bị được kết nối với internet.”

Không khó để thấy các thiết bị thông minh đang dần xuất hiện và giúp ích chúng ta trong
đời sống hàng ngày. Chúng xuất hiện khắp mọi ngóc ngách căn nhà, doanh nghiệp và văn
phòng của chúng ta. Những vật dụng thông minh này có thể tự động truyền và nhận dữ
liệu qua Internet. Tất cả những “thiết bị điện toán vô hình” này và công nghệ liên quan
được gọi chung là Internet vạn vật.
Internet vạn vật tác động sâu rộng tới cuộc sống cũng như công việc của con người. IoT
cho phép máy móc xử lý phần việc nặng nhọc, đảm nhiệm những nhiệm vụ nhàm chán và
giúp cuộc sống trở nên lành mạnh, năng suất và thoải mái hơn.

Ví dụ: các thiết bị thông minh có thể thay đổi hoàn toàn thói quen buổi sáng của bạn. Khi
bạn nhấn nút tạm hoãn, chiếc đồng hồ báo thức của bạn sẽ tự động bật máy pha cà phê và
kéo mở rèm cửa sổ. Tủ lạnh của bạn sẽ tự động phát hiện những thực phẩm sắp hết và đặt
mua giao tận nhà. Lò nướng thông minh sẽ cho bạn biết thực đơn trong ngày và thậm chí
còn nấu những nguyên liệu đã được chuẩn bị sẵn để đảm bảo rằng bữa trưa của bạn đã
sẵn sàng. Chiếc đồng hồ thông minh sẽ lên lịch họp cho bạn, trong khi đó, chiếc ô tô
thông minh của bạn tự động đặt vị trí GPS dừng xe để nạp nhiên liệu. Tiềm năng là vô
hạn trong thế giới IoT!

1.2. Điện toán biên (Edge computing)

Kiến trúc điện toán biên là một giải pháp thay thế cho kiến trúc điện toán đám mây. Điện
toán biên bao gồm một hệ sinh thái gồm các thành phần cơ sở hạ tầng đã được phân tán
từ vị trí trung tâm của trung tâm dữ liệu của doanh nghiệp ra bên ngoài—trên tất cả các vị
trí biên—như một phần của quá trình triển khai toàn diện của tổ chức.
Điều này bao gồm khả năng tính toán và lưu trữ, ứng dụng, thiết bị và cảm biến—cũng
như khả năng kết nối mạng trở lại trung tâm dữ liệu trung tâm hoặc đám mây hoạt động
cùng với các thiết bị Internet of Things (IoT).
Các thiết bị và cảm biến là nơi thu thập thông tin. Chúng chỉ có đủ băng thông, bộ nhớ,
khả năng xử lý và chức năng cũng như tài nguyên máy tính để thu thập, xử lý và thực thi
dữ liệu trong thời gian thực mà không cần hoặc có rất ít sự trợ giúp từ các phần khác của
mạng. Tuy nhiên, có một số loại kết nối với mạng cho phép giao tiếp giữa thiết bị và cơ
sở dữ liệu tại một địa điểm tập trung.
Ví dụ: nếu bạn là công ty vận chuyển, "lợi thế" của bạn có thể nằm ở bến cảng nơi các lô
hàng được chất và dỡ, để quá trình xử lý và phân tích nguồn cung cấp của bạn có thể
được thực hiện gần thời gian thực, dẫn đến dữ liệu được điều khiển tốt hơn quyết định.
Trụ sở chính của công ty bạn có thể nằm cách xa hàng dặm, nơi đặt trung tâm dữ liệu
chính, nhưng ranh giới là nơi bạn thu thập dữ liệu, kiểm tra hàng hóa trước khi hàng rời
khỏi bến tàu và mặt khác là quản lý, thu thập và gửi thông tin–tất cả mà không phải lo
lắng về độ trễ.
Tương tự, lợi thế của bạn có thể bao gồm các thiết bị IoT như thiết bị đầu cuối tại điểm
bán hàng trong cửa hàng. Những "thiết bị biên" này xử lý dữ liệu tại điểm sử dụng và chỉ
gửi những gì cần thiết tới đám mây lai.
Do dữ liệu được thu thập và xử lý gần như theo thời gian thực nên các thiết bị biên hoạt
động không có độ trễ — vì thiết bị không dựa vào trang web trung tâm hoặc đám mây để
xử lý. Trong đám mây, các ứng dụng sử dụng trí tuệ nhân tạo để học hỏi từ dữ liệu được
thu thập ở biên mạng và điều chỉnh các đề xuất, chức năng và hoạt động.
Hãy tưởng tượng một dự án thành phố thông minh để cung cấp điện. Các thiết bị cạnh
gần đường, tòa nhà thành phố và trung tâm giao thông xử lý dữ liệu tại điểm thu thập. Trí
tuệ nhân tạo và máy học trong nền tảng ứng dụng và dữ liệu học hỏi từ dữ liệu và đào tạo
các thiết bị thông qua triển khai biên.
Điện toán biên lý tưởng cho các ứng dụng IoT yêu cầu độ trễ mạng tối thiểu, hoạt động tự
chủ cũng như các biện pháp xử lý quyền riêng tư và bảo mật cục bộ.
1.3. So sánh với Cloud Computing và Fog Computing

a) Lợi ích của Fog Computing (Điện toán sương mù)


Độ trễ thấp. Mạng sương mù có thể xử lý khối lượng dữ liệu lớn mà không có độ trễ. Vì
rất nhiều dữ liệu được lưu trữ cục bộ nên việc tính toán được thực hiện nhanh hơn.
Kiểm soát dữ liệu tốt hơn. Trong điện toán đám mây, các máy chủ của bên thứ ba hoàn
toàn bị ngắt kết nối khỏi mạng cục bộ, khiến dữ liệu bị kiểm soát rất ít hoặc không có.
Trong điện toán sương mù, người dùng có thể quản lý cục bộ nhiều thông tin và dựa vào
các biện pháp bảo mật của họ.
Hệ thống lưu trữ linh hoạt. Điện toán sương mù không yêu cầu truy cập trực tuyến liên
tục. Dữ liệu có thể được lưu trữ cục bộ hoặc lấy từ các ổ đĩa cục bộ — việc lưu trữ như
vậy kết hợp truy cập trực tuyến và ngoại tuyến.
Kết nối lưu trữ tập trung và phi tập trung. Điện toán sương mù xây dựng cầu nối giữa ổ
đĩa cục bộ và dịch vụ đám mây của bên thứ ba, cho phép chuyển đổi suôn sẻ sang lưu trữ
dữ liệu phi tập trung hoàn toàn.
Nhiều công ty tập trung vào điện toán ranh giới trên con đường phi tập trung hóa, trong
khi những công ty khác sử dụng điện toán sương mù làm hệ thống lưu trữ dữ liệu chính
do tốc độ cao và tính sẵn sàng cao hơn.
b) Lợi ích của Edge Computing
Không có sự chậm trễ trong xử lý dữ liệu. Dữ liệu nằm trên “các cạnh” của mạng IoT và
có thể được xử lý ngay lập tức.
Phân tích dữ liệu thời gian thực. Hoạt động tốt khi dữ liệu phải được xử lý và ngay lập
tức.
Lưu lượng mạng thấp. Dữ liệu đầu tiên được xử lý cục bộ và chỉ sau đó mới được gửi đến
bộ lưu trữ chính.
Giảm chi phí vận hành. Việc quản lý dữ liệu tốn ít thời gian và sức mạnh tính toán hơn vì
hoạt động có một đích duy nhất, thay vì đi vòng từ trung tâm đến các ổ đĩa cục bộ.
Điện toán biên IoT là một giải pháp tối ưu cho các hoạt động tức thời nhỏ phải được xử
lý ở tốc độ mili giây. Khi nhiều hoạt động nhỏ đang diễn ra đồng thời, việc thực hiện
chúng cục bộ sẽ nhanh hơn và rẻ hơn.
c) Lợi ích của điện toán đám mây
Tài nguyên phong phú. Khi so sánh điện toán đám mây với điện toán biên và điện toán
sương mù, bạn có thể thấy rằng đám mây luôn là cách tiếp cận hiệu quả nhất để xử lý
khối lượng dữ liệu khổng lồ. Ngoài khả năng tính toán và lưu trữ lớn, đám mây hiện đại
còn cung cấp các dịch vụ đầu cuối để quản lý dữ liệu IoT, bao gồm các dịch vụ bảo mật,
phân tích dữ liệu hiện đại và trực quan hóa, v.v. tải các ứng dụng.
Khả năng mở rộng. Đám mây cho phép mở rộng quy mô dễ dàng hơn, nhanh hơn và tiết
kiệm chi phí hơn so với cạnh và sương mù.
Bảo trì dễ dàng. Nền tảng đám mây cung cấp các công cụ và dịch vụ để bảo trì dễ dàng,
tiết kiệm chi phí.
Chương 2. Tổng quan về giao thức MQTT

Thời đại IoT yêu cầu một giao thức kết nối mới để đảm bảo hỗ trợ đầy đủ cho các thiết bị
vật lý thực tế. Để giải quyết vấn đề này, Message Queuing Telemetry Transport (MQTT)
đang dần trở nên phổ biến.

2.1. Giới thiệu về MQTT

MQTT (Message Queuing Telemetry Transport) là giao thức truyền thông điệp (message)
theo mô hình publish/subscribe (cung cấp / thuê bao), được sử dụng cho các thiết bị IoT
với băng thông thấp, độ tin cậy cao và khả năng được sử dụng trong mạng lưới không ổn
định. Nó dựa trên một Broker (tạm dịch là “Máy chủ môi giới”) “nhẹ” (khá ít xử lý) và
được thiết kế có tính mở (tức là không đặc trưng cho ứng dụng cụ thể nào), đơn giản và
dễ cài đặt.

MQTT là lựa chọn lý tưởng trong các môi trường như:


- Những nơi mà giá mạng viễn thông đắt đỏ hoặc băng thông thấp hay thiếu tin cậy.
- Khi chạy trên thiết bị nhúng bị giới hạn về tài nguyên tốc độ và bộ nhớ.
- Bởi vì giao thức này sử dụng băng thông thấp trong môi trường có độ trễ cao nên
nó là một giao thức lý tưởng cho các ứng dụng M2M (Machine to Machine).

MQTT được sử dụng để tạo kết nối giữa các thiết bị nhúng, mạng với các dịch vụ cũng
như phần mềm trung gian. Hoạt động kết nối dựa trên cơ chế định tuyến và làm cho
MQTT trở thành giao thức kết nối tốt nhất có thể cho cả IoT và M2M.

2.2. Đặc điểm

- Dạng truyền thông điệp theo mô hình Pub/Sub cung cấp việc truyền tin phân tán
một chiều, tách biệt với phần ứng dụng.
- Việc truyền thông điệp là ngay lập tức, không quan tâm đến nội dung được truyền.
- Sử dụng TCP/IP là giao thức nền.
- Tồn tại ba mức độ tin cậy cho việc truyền dữ liệu (QoS: Quality of service)
- QoS 0: Broker/client sẽ gửi dữ liệu đúng một lần, quá trình gửi được xác
nhận bởi chỉ giao thức TCP/IP.
- QoS 1: Broker/client sẽ gửi dữ liệu với ít nhất một lần xác nhận từ đầu kia,
nghĩa là có thể có nhiều hơn 1 lần xác nhận đã nhận được dữ liệu.
- QoS 2: Broker/client đảm bảo khi gửi dữ liệu thì phía nhận chỉ nhận được
đúng một lần, quá trình này phải trải qua 4 bước bắt tay.
- Phần bao bọc dữ liệu truyền nhỏ và được giảm đến mức tối thiểu để giảm tải cho
đường truyền.
2.3. Mô hình Pub-Sub

Mô hình Pub/Sub

a) Thành phần
- Publisher: Nơi gửi thông điệp
- Subscriber: Nơi nhận thông điệp
- Broker: Máy chủ môi giới
Broker được coi như trung tâm, nó là điểm giao của tất cả các kết nối đến từ Client
(Publisher/Subscriber).
- Nhiệm vụ chính của Broker là nhận thông điệp (message) từ Publisher, xếp vào
hàng đợi rồi chuyển đến một địa điểm cụ thể.
- Nhiệm vụ phụ của Broker là nó có thể đảm nhận thêm một vài tính năng liên quan
tới quá trình truyền thông như: bảo mật message, lưu trữ message, logs, ....
Client thì được chia thành hai nhóm là Publisher và Subscriber. Client chỉ làm ít nhất một
trong 2 việc:
- Publish các thông điệp (message) lên một/nhiều topic cụ thể.
- Subscribe một/nhiều topic nào đó để nhận message từ topic này.
Ưu điểm Nhược điểm

Kết nối riêng rẽ, độc lập. Máy chủ môi giới (Broker) không cần
thông báo về trạng thái gửi thông điệp. Do
đó không có cách nào để phát hiện xem
thông điệp đã gửi đúng hay chưa.

Thời gian tách biệt (Time decoupling). Publisher không hề biết gì về trạng thái
của subscribe và ngược lại. Vậy làm sao
chúng ta có thể đảm bảo mọi thứ đều ổn.

Đồng bộ riêng rẽ (Synchronization Những kẻ xấu (Malicious Publisher) có


decoupling). thể gửi những thông điệp xấu, và các
Subscriber sẽ truy cập vào những thứ mà
họ không nên nhận.

Khả năng mở rộng.

2.4. Cơ chế hoạt động


MQTT hoạt động theo cơ chế client/server, nơi mà mỗi cảm biến là một khách hàng
(client) và kết nối đến một máy chủ, có thể hiểu như một Máy chủ môi giới (broker),
thông qua giao thức TCP (Transmission Control Protocol). Broker chịu trách nhiệm điều
phối tất cả các thông điệp giữa phía gửi đến đúng phía nhận.
MQTT là giao thức định hướng bản tin. Mỗi bản tin là một đoạn rời rạc của tín hiệu và
broker không thể nhìn thấy. Mỗi bản tin được publish một địa chỉ, có thể hiểu như một
kênh (Topic). Client đăng kí vào một vài kênh để nhận/gửi dữ liệu, gọi là subscribe.
Client có thể subscribe vào nhiều kênh. Mỗi client sẽ nhận được dữ liệu khi bất kỳ trạm
nào khác gửi dữ liệu vào kênh đã đăng ký. Khi một client gửi một bản tin đến một kênh
nào đó gọi là publish.

2.5. Kiến trúc thành phần

- Thành phần chính của MQTT là Client (Publisher/Subscriber), Server (Broker),


Sessions (tạm dịch là Phiên làm việc), Subscriptions và Topics.
- MQTT Client (Publisher/Subscriber): Clients sẽ subscribe một hoặc nhiều topics
để gửi và nhận thông điệp từ những topic tương ứng.
- MQTT Server (Broker): Broker nhận những thông tin subscribe (Subscriptions) từ
client, nhận thông điệp, chuyển những thông điệp đến các Subscriber tương ứng
dựa trên Subscriptions từ client.
- Topic: Có thể coi Topic là một hàng đợi các thông điệp, và có sẵn khuôn mẫu
dành cho Subscriber hoặc Publisher. Một cách logic thì các topic cho phép Client
trao đổi thông tin với những ngữ nghĩa đã được định nghĩa sẵn. Ví dụ: Dữ liệu
cảm biến nhiệt độ của một tòa nhà.
- Session: Một session được định nghĩa là kết nối từ client đến server. Tất cả các
giao tiếp giữa client và server đều là 1 phần của session.
- Subscription: Không giống như session, subscription về mặt logic là kết nối từ
client đến topic. Khi đã subscribe một topic, Client có thể nhận/gửi thông điệp
(message) với topic đó.

Chương 3. Tổng quan về KubeEdge

3.1. Giới thiệu về Kubernetes

Kubernetes được công nhận rộng rãi là nền tảng nguồn mở ưu việt cho việc điều phối
vùng chứa. Kubernetes là một hệ thống mã nguồn mở được thiết kế để tự động hóa việc
triển khai, mở rộng quy mô và quản lý các ứng dụng được đóng gói. Nó cung cấp một
loạt các khả năng như quản lý cấu hình, tự phục hồi, triển khai và khôi phục tự động cũng
như cân bằng tải cùng nhau làm cho nó trở thành công cụ điều phối phổ biến nhất hiện
nay.
Kubernetes cho phép tạo một cụm máy tính bao gồm một nhóm các máy hoạt động được
gọi là các node (nút), chịu trách nhiệm thực thi các ứng dụng được đóng gói. Các worker
node (node công nhân) đóng vai trò là máy chủ để thực thi các thành phần ứng dụng mà
theo thuật ngữ Kubernetes được gọi là cluster (cụm). Control-plane, có thể được triển
khai trên một nút hoặc trên nhiều nút, giám sát các công nhân và nhóm trong cụm. Các
trách nhiệm chính của nó bao gồm đưa ra các quyết định cấp cao về cụm và phản hồi các
sự kiện được phát hiện xảy ra trong cụm.
Control-plane bao gồm một số thành phần: kube-apiserver, etcd, kube-scheduler, kube-
controller-manager và cloud-controller-manager. Các thành phần này có thể chạy trên bất
kỳ máy nào trong cụm và cùng nhau, chúng cho phép quản lý cụm hiệu quả. Các nút
công nhân của cụm chạy các thành phần nút sau: kubelet, kube-proxy và thời gian chạy
vùng chứa. Chúng được sử dụng để chạy các nhóm và do đó cung cấp môi trường thời
gian chạy Kubernetes.
Vì Kubernetes ban đầu không nhằm mục đích triển khai trên các vị trí phân tán, nên
nó không thể áp dụng cho việc điều phối dịch vụ trong môi trường điện toán biên ở dạng
hiện tại. Tuy nhiên, với một số điều chỉnh nhất định, nó có thể được điều chỉnh để hỗ trợ
các nút công nhân từ xa và cung cấp khả năng triển khai lớp biên được phối hợp chức
năng.
Trở ngại chính đối với việc bao gồm các nút worker từ xa trong cụm Kubernetes là điều
kiện tiên quyết để liên lạc liên tục giữa control plane và các nút worker. Giao tiếp từ các
nút công nhân tới mặt phẳng điều khiển kết thúc tại giao diện tiếp xúc của thành phần
máy chủ API. Các nút công nhân từ xa có thể giao tiếp với mặt phẳng điều khiển hiển thị
các địa chỉ IP công cộng vì trong môi trường điện toán biên, mặt phẳng điều khiển dự
kiến sẽ chạy trên cơ sở hạ tầng đám mây có sẵn công khai do các thành phần sử dụng
nhiều tài nguyên của nó.
Tuy nhiên, mặt phẳng điều khiển phải có hai đường dẫn giao tiếp chính tới các nút
worker đi kèm: một đường dẫn tới kubelet được kết thúc tại điểm cuối HTTPS của
kubelet (để tìm nạp nhật ký nhóm, đính kèm với các nhóm đang chạy và cung cấp chức
năng chuyển tiếp cổng của kubelet), và thứ hai hướng tới các nút, nhóm và dịch vụ.
Trong môi trường cụm, giao tiếp như vậy được kích hoạt do các nút công nhân nằm trong
cùng một môi trường mạng hoặc ít nhất chúng có địa chỉ IP khả dụng. Tuy nhiên, trong
mô hình điện toán biên mong muốn, nơi các thiết bị worker có thể được đặt trong các
mạng riêng từ xa mà không có địa chỉ IP công cộng tĩnh, điều này trở thành một thách
thức cần phải giải quyết.
Các nhược điểm khác của việc sử dụng Kubernetes cho điều phối biên là do nó phụ thuộc
nhiều vào hiệu suất xử lý và mạng cao có sẵn trong môi trường đám mây, trong khi biên
thường ngụ ý giảm khả năng tài nguyên. Đây là lý do tại sao ngày nay có nhiều công cụ
điều phối được xây dựng dựa trên Kubernetes hoặc sử dụng cách tiếp cận tương tự nhưng
cung cấp điều phối dịch vụ phù hợp hơn với môi trường điện toán biên.

3.2. Giới thiệu về KubeEdge

KubeEdge là một nền tảng nguồn mở được thiết kế để tăng cường khả năng điều phối bộ
chứa và quản lý cụm ở biên mạng. Nó tận dụng khung Kubernetes đã được thiết lập tốt để
cung cấp hỗ trợ cơ sở hạ tầng cho mạng, triển khai ứng dụng và đồng bộ hóa siêu dữ liệu
giữa đám mây và tài nguyên ở biên của mạng. Ngoài ra, nền tảng này còn hỗ trợ giao
thức MQTT và trao quyền triển khai logic tùy chỉnh để cung cấp cơ chế tạo điều kiện
giao tiếp với các thiết bị ở rìa mạng.

3.3. Kiến trúc của KubeEdge


Kiến trúc của KubeEdge bao gồm hai phần riêng biệt: đám mây và biên Mỗi phần chứa
nhiều thành phần cùng nhau cung cấp hỗ trợ để mở rộng đám mây bằng tài nguyên biên.
Phần đám mây thường nằm trong môi trường đám mây bao gồm ba mô-đun:
EdgeController và DeviceController, là phần mở rộng của bộ điều khiển Kubernetes cho
phép quản lý và đồng bộ hóa dữ liệu giữa đám mây và thiết bị biên, và Cloud Hub, là
máy chủ WebSocket cho phép giao tiếp giữa bộ điều khiển và phần cạnh. Phần biên nên
được triển khai trên các thiết bị biên bao gồm các thành phần sau: Edge Hub, là ứng dụng
khách WebSocket được kết nối với Cloud Hub được đề cập ở trên, cung cấp giao diện để
đồng bộ hóa các cập nhật tài nguyên phía đám mây và thay đổi trạng thái ở biên giữa hai
phần chính của KubeEdge, tác nhân Edged để quản lý nhóm, MetaManager là bộ xử lý
thông báo giữa Edged và Edge Hub, ứng dụng khách EventBus MQTT cho phép tương
tác với máy chủ MQTT, DeviceTwin lưu trữ và đồng bộ hóa trạng thái thiết bị với đám
mây và ServiceBus cung cấp giao diện để tương tác với các máy chủ HTTP.

Tính năng chính cho phép đưa các nút biên vào đám mây từ xa bằng nền tảng KubeEdge
là kết nối WebSocket hai chiều giữa trang biên và phần đám mây, là phần mở rộng của
nền tảng Kubernetes hiện có. Do đó, thành phần máy chủ Kubernetes trong đám mây
không phải giao tiếp trực tiếp với các thiết bị worker mà thay vào đó, giao tiếp được thực
hiện thông qua kết nối WebSocket giữa thiết bị biên (Edge Hub) và phần đám mây
(Cloud Hub). Do thiết bị biên khởi tạo kết nối WebSocket này giữa phần biên và phần
đám mây, nên KubeEdge cho phép hỗ trợ đưa các thiết bị vào mạng riêng..

Vì KubeEdge dựa trên Kubernetes nên chính sách lập lịch của nó được triển khai giống
hệt nhau do phần lập lịch không được mở rộng. Do đó, việc điều chỉnh thuật toán lập lịch
trong KubeEdge hàm ý việc tùy chỉnh thành phần kube-scheduler, vì nó có thể đạt được
theo cách tương tự với nền tảng Kubernetes.
Chương 4. Hiện thực sử dụng KubeEdge

4.1. Cài đặt KubeEdge

Cài KubeEdge Installer:


Lưu ý: Chỉ mới hỗ trợ cho cho UbuntuOS

a) Cloud side (Master)


Yêu cầu: Đã cài Golang, Docker, Kubeadm/ kubectl
Kiểm tra trạng thái Master của Kubernetes:
Cài đặt KubeEdge sử dụng KubeEdge:

Kết quả trả về sẽ là:

b) Edge side (Worker)


Yêu cầu: Đã cài Golang, Docker, Mosquitto.
Không được cài kubelet và kube-proxy ở Edge side !

4.2. Demo bộ đếm sử dụng KubeEdge

Ở demo này ta, Bộ đếm sẽ chạy ở Edge device và người dùng có thể điều khiển nó trong
web từ phía Cloud.
4.2.1. Khởi tạo device model và device instance cho bộ đếm

4.2.2. Chạy KubeEdge Web App (Trên cloud)

Lưu ý: instance phải được tạo sau model và xóa trước model.

4.2.3. Chạy KubeEdge Pi Counter App

Ứng dụng sẽ đăng ký đến topic $hw/events/device/counter/twin/update/document và khi


nhận được lệnh điều khiển dự kiến về chủ đề này, nó sẽ bật/tắt bộ đếm, đồng thời nó sẽ
làm mới giá trị bộ đếm và xuất bản giá trị lên chủ đề
$hw/events/device/counter/twin/update, thì trạng thái bộ đếm mới nhất sẽ được đồng bộ
hóa giữa cạnh và đám mây.

Cuối cùng, người dùng có thể nhận được trạng thái bộ đếm ở phía đám mây.
4.2.3. Điều khiển counter bằng cách vào Web App Page

- Chọn tùy chọn ON và nhấp vào Execute, sau đó người dùng có thể thấy bộ đếm
bắt đầu được đếm theo nhật ký docker -f counter-container-id ở edge.

- Chọn tùy chọn STATUS, sau đó bấm Execute để nhận trạng thái bộ đếm, cuối cùng
trạng thái bộ đếm và giá trị bộ đếm hiện tại sẽ hiển thị trên web.

Ngoài ra, bạn có thể xem trạng thái bộ đếm bằng kubectl get device counter -o yaml -w ở
phía đám mây.

- Chọn tùy chọn OFF và nhấp vào Execute, bộ đếm dừng hoạt động ở edge.

Chương 5. Khả năng mở rộng của KubeEdge

5.1. EdgeMark

Edgemark là một công cụ kiểm tra hiệu suất lấy cảm hứng từ Kubemark, cho phép người
dùng chạy thử nghiệm trên các cụm mô phỏng. Trường hợp sử dụng chính là thử nghiệm
khả năng mở rộng, vì các cụm mô phỏng có thể lớn hơn nhiều so với cụm thực. Mục tiêu
là phơi bày các sự cố với các thành phần đám mây KubeEdge CloudCore chỉ xuất hiện
trên các cụm lớn hơn.
Ở cấp độ rất cao, cụm Edgemark bao gồm ba phần: một kubernetes master thực sự, thành
phần KubeEdge CloudCore và một tập hợp các Nút cạnh “Rỗng”. Nút Hollow Edge được
đăng ký với HollowEdgeCore, giả vờ là một EdgeCore thông thường, nhưng không tạo ra
bất kỳ vùng chứa thực nào. HollowEdgeCore mô phỏng trình quản lý thời gian chạy bằng
Kubernetes k8s.io/kubernetes/pkg/kubelet/cri/remote/fake/fake_runtime.go, nơi chứa hầu
hết logic. Ngoại trừ việc mô phỏng trình quản lý thời gian chạy, các hành vi khác giống
như edgecore.
Hiện tại, các thành phần chính của Kubernetes chạy trên một máy chuyên dụng dưới dạng
các nhóm được tạo/quản lý bởi kubelet, chính các thành phần này chạy dưới dạng
systemd hoặc dịch vụ giám sát trên máy ảo chính tùy thuộc vào bản phân phối VM. Việc
có một máy chuyên dụng cho máy chủ có một chút lợi thế so với việc chạy các thành
phần chính trên một cụm bên ngoài, có thể cách ly hoàn toàn tài nguyên chính khỏi mọi
thứ khác. CloudCore có nhiều phiên bản và yêu cầu nhiều nút chuyên dụng để duy trì độ
tin cậy cao. Thông thường, trong các cấu hình có tính sẵn sàng cao, bộ cân bằng tải phải
đặt trước CloudCore để định tuyến chính xác các yêu cầu đến các máy chủ CloudCore
khỏe mạnh. Và The HollowEdgeNodes, mặt khác, được chạy trên cụm Kubernetes 'bên
ngoài' dưới dạng các nhóm trong một không gian tên riêng biệt (được đặt tên là
edgemark). Ý tưởng sử dụng các nhóm trên một cụm thực hoạt động (hoặc hoạt động)
như các nút trên cụm dấu cạnh nằm ở trung tâm thiết kế của dấu cạnh.
Guideline sử dụng Edgemark:
https://github.com/kubernetes/perf-tests/blob/master/clusterloader2/docs/
GETTING_STARTED.md

5.2. ClusterLoader2

Scability report: https://kubeedge.io/en/blog/scalability-test-report/


Trong thử nghiệm này, KubeEdge đã sử dụng configuration policy như sau:

Kết quả thử nghiệm:

Từ các kết quả thử nghiệm trước đó, độ trễ lệnh gọi API và độ trễ khởi động nhóm đáp
ứng các SLI/SLO do cộng đồng Kubernetes xác định. Do đó, các cụm Kubernetes do
KubeEdge hỗ trợ có thể hỗ trợ ổn định 100.000 nút cạnh đồng thời và hơn một triệu
nhóm. Trong sản xuất, mạng giữa các nút biên và đám mây được kết nối theo yêu cầu
O&M vì các lý do như bảo mật mạng và quản lý phân vùng. Do đó, số lượng nút biên có
thể được quản lý bởi một cụm duy nhất có thể tăng theo tỷ lệ dựa trên tỷ lệ các nút biên
ngoại tuyến so với các nút trực tuyến. Ngoài ra, phân mảnh dữ liệu được sử dụng trên mặt
phẳng điều khiển Kubernetes để lưu trữ các tài nguyên khác nhau vào không gian etcd
tương ứng, cho phép quy mô triển khai dịch vụ lớn hơn.

You might also like