Professional Documents
Culture Documents
DistributedComputing Lab04
DistributedComputing Lab04
DistributedComputing Lab04
LAB 4
KUBERNETES K8S
NỘI DUNG 2
có những gì?
Mục tiêu bài Lab Hướng dẫn cài đặt K8S trên
hôm nay?
G I Ớ I T H I ỆU
C o n t ai n er O rc he str at io n: K u bern e te s
5
K8s LÀ GÌ ?
• Kubernetes là một mã nguồn mở được dùng để tự động triển khai hệ thống, scaling,
quản lý các container.
• Nó nhóm các container cấu thành lên một ứng dụng thành các đơn vị logic để dễ dàng
quản lý và vận hành. Được phát triển bởi Google.
6
K8s architecture
7
Các thành phần
- Một K8s cluster sẽ gồm tập các nodes chạy các ứng dung ảo hóa bang container. Trên mỗi node sẽ
cần chạy một "kubelet", đây là chương trình để chạy k8s. Cần một node để làm "chủ" cluster, trên
đó sẽ cài API server, scheduler ... Các máy còn lại sẽ chạy kubelet để sinh ra các container.
- Etcd: key-value stores chứa thông tin định danh, liên lạc giữa các nodes.
- API Server: server cung cấp Kubernetes API. Nó có nhiệm vụ đặt Pod vào Node, đồng bộ hoá
thông tin của Pod bằng REST API tiếp nhận cài đặt của pod/service/replicationController.
- Controller Manager Service: “kube-controller manager”, quản lý tất cả các bộ điều khiển xử lý các
tác vụ thông thường trong cluster. Chúng bao gồm Node Controller, Replication Controller,
Endpoints Controller, and Service Account and Token Controllers.
- Scheduler Service: định thời, phân bố tài nguyên còn khả dung đến các ứng dung container
- Dashboard (optional)
8
T H AM K H ẢO
Để h i ểu t h êm về c ác k há i n i ệm
9
Pods
• Pod là 1 nhóm (1 trở lên) các container thực hiện một mục đích nào đó, như là chạy ứng
dụng container nào đó. Các container trong pods này chia sẻ không gian lưu trữ, địa chỉ
IP với nhau. Pod thì được tạo ra hoặc xóa tùy thuộc vào yêu cầu/định nghĩa có đơn vị
dịch vụ cấp cao hơn
10
Services
• Pods có life-cycle ngắn, do vậy nó
không đảm bảo về địa chỉ ip luôn cố
định. Điều này khiến cho việc giao
tiếp giữa các microservice trở nên
khó khăn. Do đó, K8s giới thiệu về
một dịch vụ, nó là một lớp nằm trên
một số nhóm Pod. Nó được được
gắn địa chỉ IP tĩnh và có thể trỏ tên
miền vào dịch vụ này. Tại đây chúng
ta có thể thực hiện cân bằng tải. Mỗi
service sẽ được gán 1 domain do
người dùng lựa chọn, khi ứng dụng
cần kết nối đến service, ta chỉ cần
dùng domain để truy cập.
11
Persistent Volumes & Namespaces
- Persistent Volumes
- Do ứng dụng container chỉ là
runtime, khi restart, tắt thì mọi
data đều bị xóa cần một không
gian lưu trữ cứng
- PV: Khái niệm trừu tượng, giúp
người dùng định nghĩa không gian
lưu trữ cứng cho service.
Kubernetes hỗ trợ nhiều kiểu
volumes, như là: NFS, Ceph,
GlusterFS, local directory, …
- Namespaces:
- Nhóm các đối tượng, tài nguyên
trong K8s thành một vùng truy
cập riêng biệt tiện cho việc triển
khai, vận hành và quản lý ứng
dụng. Vd: DEV, staging, Prod
environment
12
Ingress rules, network policies, configMaps & secrets
• Network policies: Định nghĩa các quy tắc truy cập mạng giữa các Pod
bên trong Cluster.
• Network: Cho phép tùy biến Network control plane của toàn K8s
cluster (default: ectd, custom: flannel, weavenet, …)
• ConfigMaps and Secrets:
• ConfigMap là nơi định nghĩa các biến môi trường được sử dụng
trong các service.
• Secrets: cũng tương tự như ConfigMap, secrets sẽ lưu trữ các cấu
hình chứa thông tin nhạy cảm như password, API key, …
13
D EMO T RI ỂN K H AI K 8s sử dụ ng
Mi n i Ku be
14
Dù n g m in i ku be để t riể n
k ha i c lu ste r n h i ều n o de s
24 T ri ển kh ai lạ i vớ i
$ minikube start --nodes 2 -p multinode-demo c ấu h ì nh nh i ều
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
n o des
multinode-demo Ready master 5m35s v1.19.2
multinode-demo-m02 Ready <none> 4m51s v1.19.2 • Tạo lại cluster với nhiều hơn
Dùng lệnh sau để kiểm tra request được xử lý bởi podId nào:
$ curl http://192.168.64.3:31000
Dừng và xóa cluster
$ minikube stop -p multinode-demo
$ minikube delete -p multinode-demo
27
LAB 4: KUBERNETES
1. Triển khai K8S cluster trên máy tính cá nhân sử dung minikube (4đ)
2. Triển khai Dashboard (1đ)
3. Thực hiện việc build và đẩy container image lên K8s cluster với nội dung được mô tả trong
slide trước (2đ)
4. Triển khai dịch vụ k8s kiểu nodePort cho container image tạo ở Bước 3 với replica = 2 (2đ)
5. Triển khai dịch vụ k8s kiểu loadBalance cho container image tạo ở Bước 3(1đ)
Lưu ý: các dịch vụ triển khai phải truy cập được bằng IP của host (cách cấu hình tùy chọn)
Sinh viên nộp báo cáo dưới dạng file word hoặc pdf với tên file:
<MSSV>_NguyenVanA_LAB4.{docx/pdf}
Báo cáo cần thể hiện các bước cài đặt cấu hình step-by-step và các bước truy cập dịch vụ
minh chứng bằng hình chụp màn hình.
BÁO CÁO 30
cần gì?
Quy trình thực hiện