Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 65 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
65
Dung lượng
2,7 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO ĐỒ ÁN Đề tài: Tìm hiểu Kubernetes xây dựng ứng dụng GVHD: Thầy Trịnh Công Hoan Sinh viên thực GVHD: Công Hoan Trần ĐứcThầy TâmTrịnh - 19522166 Tài liệu báo cáo SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng Contents I Giới thiệu A Các ứng dụng Monolithic B Nguồn gốc Kuberetes C Tổng quan Kubernetes D Kiến trúc Kubernetes cluster The control plane - master node Worker node E Chạy ứng dụng Kubernetes Kubernetes giữ cho container vận hành 10 Scaling 11 F Lợi ích việc sử dụng Kubernetes 11 Đơn giản hóa q trình deploy 11 Tối ưu phần cứng 12 Kiểm tra tự hồi phục 12 II Lịch sử phát triển Kubernetes 13 III Cộng đồng sử dụng công cụ hỗ trợ 25 A Các công cụ hỗ trợ 25 B Cộng đồng 26 Cộng đồng đóng góp xây dựng hệ thống 29 IV Các thành phần 30 A Pod 30 Giới thiệu 30 Tạo pod từ mô tả YAML 31 Xem pod hệ thống 32 Tài liệu báo cáo SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng B ReplicaSet 32 Giới thiệu 32 Tạo ReplicaSet từ mô tả YAML 34 Xem ReplicaSet hệ thống 35 Xem Pod ReplicaSet 35 C Services 36 Giới thiệu 36 Tạo Service từ mô tả YAML 39 Các loại Services 40 D Secrets 43 Giới thiệu 43 Opaque secrets 45 E V Tạm dừng xóa pod 32 Deployment 46 Giới thiệu 46 Tạo Deployment 47 Cập nhật Deployment 47 Hướng dẫn chạy ứng dụng Kubernetes 48 A Yêu cầu 48 B Tạo chạy container image 49 Tạo ứng dụng Node.js 49 Tạo file Dockerfile cho image 49 Build Docker image 50 Push image lên DockerHub 51 Setup cluster Kubernetes 51 Tài liệu báo cáo SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng Chạy ứng dụng Kubernetes 54 VI Xây dựng ứng dụng minh hoạ 55 A Kiến trúc ứng dụng 55 Chi tiết vài services 57 Các message giao tiếp services 58 B Routing 58 C Các hình ứng dụng 59 D Đường dẫn đến ứng dụng 65 Tài liệu báo cáo SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng I Giới thiệu A Các ứng dụng Monolithic Các ứng dụng monolithic bao gồm components kết nối chặt chẽ với nhau, chúng phát triển, vận hành quản lý khối thống Điều dẫn đến vấn đề sau: ▪ Cần sử chữa ứng dụng, cần redeploy lại hệ thống ▪ Yêu cầu server ứng dụng mạnh mẽ ▪ Khó có khả mở rộng Vì lẽ đó, đến giải pháp tách ứng dụng monolithic thành components hoạt động độc lập gọi microservices Mỗi microservices chạy tiến trình độc lập, chúng giao tiếp với thống qua interface Đồng thời, microservice phát triển, deploy vận hành cách độc lập Tài liệu báo cáo SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng B Nguồn gốc Kuberetes Dù cho lợi ích đáng kể việc xây dựng theo kiến trúc Microservices, dễ dàng thấy thấy khó khăn việc quản lý component( deployable application components) việc mở rộng hệ thống Google nhận thấy công ty cần cách tốt để quản lý depoy components tốt Qua nhiều năm, Google phát triển hệ thống gọi Borg (sau Omega) giúp cho nhà phát triển (dev) admin hệ thống quản lý hàng ngàn ứng dụng service Ngoài việc đơn giản hóa q trình deploy phát triển, cịn giúp tối ưu hạ tầng sở(infrastructure) Năm 2014, Google giới thiệu Kubernetes dựa kinh nghiệm phát triển Borg, Omega Tài liệu báo cáo SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng C Tổng quan Kubernetes Kubernetes hệ thống phần mềm giúp dễ dàng deploy quản lý ứng dụng chạy container (containerized application) Kubernetes chạy ứng dụng container mà khơng cần phải biết thơng tin chúng, đồng thời ta deploy thủ công ứng dụng vào host Bởi ứng dụng chạy container khác nhau, chúng hoạt độc lập nên ta chạy nhiều ứng dụng khác phần cứng Kubernetes cho phép bạn chạy ứng dụng hàng ngàn máy tính máy tính Nó abstract hệ thống sở hạ tầng bên dưới(infrastructure) giúp đơn giản hóa q trình phát triển, deploy maintain Deploy ứng dụng Kubernetes giống cho dù cluster có 1-2 node 1000 node Tài liệu báo cáo SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng Đây góc nhìn đơn giản Kubernetes Hệ thống bao gồm master node nhiều work node Khi dev deploy hệ thống, Kubernete deploy chúng vào cluster gồm worker node Node chạy components (và admin hệ thống) không cần phải quan tâm D Kiến trúc Kubernetes cluster Ở mức độ phần cứng, Kubernetes cluster cấu thành từ nhiều **node**, phân loại thành loại node: • master node, có Kubernetes Control Plane để quản lý hệ thống Kubernetes • worker node, để chạy ứng deploy Figure Các thành phần The control plane - master node Giữ nhiệm vụ quản lý cluster mà giữ cho cluster hoạt động Nó bao gồm component: Tài liệu báo cáo SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng - Kubernetes API Server: giúp ta giao tiếp với component control plane khác - Scheduler: lập lịch cho ứng dụng (giao component cho cho worker node) - Controller Manager: Xử lí chức mức cluster (cluster-level function) quản lý worker node, tái tạo component, xử lý node lỗi, - etdc: liệu cài đặt cluster trạng thái (state) cluster The control plane nắm giữ quản lý trạng thái cluster, chúng khơng chạy ứng dụng Điều thực worker node Worker node Worker node cỗ máy (machine) chạy ứng dụng container Các tác vụ vận hành, quản lý cung cấp dịch vụ cho ứng dụng thực thi component sau: - Docker, rkt container runtime khác - kubelet, giao tiếp với cluster quản lý container node - Kubernetes Service Proxy (kube-proxy), cân tải components E Chạy ứng dụng Kubernetes Muốn chạy ứng dụng Kubernetes, ta phải đóng gói lại thành image container, push image lên image registry, đăng miêu tả (description) image lên Kubernetes API server Tài liệu báo cáo SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng Khi API server xử lí miêu tả ứng dụng bạn, Scheduler lập lịch tạo container work node dựa nguồn tài nguyên có bạn **Kubelet** node giao tiếp với với Kubernetes API Server để tải image chạy image Kubernetes giữ cho container ln vận hành Khi ứng dụng đưa vào hoạt động (deployed), Kubernetes liên tục đảm bảo trạng thái ứng dụng với miêu tả mà bạn cung cấp Ví dụ 10 Tài liệu báo cáo SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng Push image lên DockerHub Sau push image lên registry, bạn sử dụng thiết bị khác Setup cluster Kubernetes Google Cluster Engine 51 Tài liệu báo cáo SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng Chọn phần Cluster, đến Create sau chọn cấu hình mong muốn Connect với Google Cluster Engine 52 Tài liệu báo cáo SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng Copy lệnh chạy terminal Cách Google Cluster hoạt động 53 Tài liệu báo cáo SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng Chạy ứng dụng Kubernetes Cách đơn giản sử dụng lệnh kubectl run tạo tất components cần thiết mà viết file mô tả 54 Tài liệu báo cáo SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng VI Xây dựng ứng dụng minh hoạ A Kiến trúc ứng dụng Ứng dụng xây dựng theo kiến trúc Vi dịch vụ ( Microservices) bao gồm thành phần sau: ▪ Client service: service cho UI ứng dụng, đảm nhận vai trò fontend, gọi đến service khác để thực nhiệm vụ ▪ Auth service: service quản lý xác thực người dùng, đảm nhận chức đăng nhập, đăng xuất, xác thực người dùng ▪ Ticket service: service quản lý tickets Cho phép người dùng thực thao tác mua bán tickets hệ thống ▪ Order service: service quản lý order (đơn đặt hàng ) ticket 55 Tài liệu báo cáo SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng ▪ Expiration service: service quản lý việc hết hạn order ( cho phép ticket trở lại thị trường sau khoản thời gian định) ▪ Payment service: service quản lý việc toán order ▪ NAT Streaming Server: server quản lý việc truyền thông điệp service đồng thời giúp hệ thống khôi phục thông điệp gặp cố ▪ Common library: thư viện chia sẻ services 56 Tài liệu báo cáo SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng Chi tiết vài services 57 Tài liệu báo cáo SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng Các message giao tiếp services B Routing Các đường dẫn điều hướng cho frontend 58 Tài liệu báo cáo SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng C Các hình ứng dụng Màn hình trước đăng nhập 59 Tài liệu báo cáo SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng Màn hình mặc định sau đăng nhập 60 Tài liệu báo cáo SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng Màn hình tạo ticket để bán 61 Tài liệu báo cáo SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng Màn hình chi tiết ticket 62 Tài liệu báo cáo SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng Màn hình tốn 63 Tài liệu báo cáo SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng 64 Tài liệu báo cáo SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng Màn hình lịch sử mua ticket D Đường dẫn đến ứng dụng Link github: https://github.com/DucTam2411/KubernetesDemo.git 65 ... Setup cluster Kubernetes 51 Tài liệu báo cáo SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng Chạy ứng dụng Kubernetes 54 VI Xây dựng ứng dụng minh... VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng Figure : Số lượng doanh nghiệp sử dụng marketshare 27 Tài liệu báo cáo SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date:... SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng kết nối ổn định Pod 38 Tài liệu báo cáo SE121.M11.PMCL - VN(ĐA) Tìm hiểu Kubernetes xây dựng ứng Date: 12/12/2021 dụng Tạo Service