TÀI LIỆU HƯỚNG DẪN SỬ DỤNG DỊCH VỤ VIETTEL KUBERNETES SERVICE (VKS) DÀNH CHO KHÁCH HÀNG

30 8 0
TÀI LIỆU HƯỚNG DẪN SỬ DỤNG DỊCH VỤ VIETTEL KUBERNETES SERVICE (VKS) DÀNH CHO KHÁCH HÀNG

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG DỊCH VỤ VIETTEL KUBERNETES SERVICE (VKS) DÀNH CHO KHÁCH HÀNG MỤC LỤC Mục đích: Phạm vi áp dụng: Giới thiệu dịch vụ: 3.1 Viettel Kubernetes Service (VKS) gì? 3.2 Những khái niệm bản: 3.2.1 Master node: 3.2.2 Worker node: 3.2.3 Kubectl: 3.2.4 Pod: 3.2.5 Image: 3.2.6 Deployment: 3.2.7 ReplicaSet: 3.2.8 Service: 3.2.9 Labels: 3.3 Ưu điểm dịch vụ: 3.4 Tính dịch vụ: 3.5 Kịch sử dụng dịch vụ: 3.5.1 Triển khai ứng dụng Web/Ứng dụng Mobile 3.5.2 Triển khai API backend services 3.5.3 Triển khai CI/CD (Continuous Intergration / Continuous Delivery) 3.5.4 Triển khai kiến trúc Microservice Hướng dẫn sử dụng dịch vụ VKS: 4.1 Quản trị dịch vụ VKS: 4.2 Cài đặt môi trường điều khiển phía người dùng: 12 4.2.1 Cài đặt kubelet môi trường Windows 12 4.2.2 Cài đặt kubelet môi trường Centos Linux 13 4.2.3 Cài đặt kubelet môi trường MacOS 14 Quản lý lưu trữ với NFS Node: 15 5.1 Giới thiệu NFS Node: 16 5.2 Các dạng kết nối lưu trữ NFS node: 16 5.3 Kiến trúc NFS Node: 17 5.4 Hướng dẫn cấu hình sử dụng NFS Node: 17 5.4.1 Tạo NFS Node: 17 5.4.2 Cấu hình sử dụng phân vùng lưu trữ Kubernetes: 17 5.4.3 Cấu hình sub-directory phân vùng lưu trữ (trong thư mục /nfs-share-data) 22 5.4.4 Chỉnh sửa file cấu hình chia sẻ thư mục tạo mới/xóa worker node: 23 5.4.5 Kiểm tra trạng thái dịch vụ: 24 Sơ đồ hoạt động 24 FAQ 24 7.1 Sự khác Docker Kubernetes 24 7.2 Lợi ích đăng ký sử dụng dịch vụ VKS ViettelIDC 25 7.3 Node Storage Persistent Storage gói dịch vụ VKS gì? 26 7.4 Dịch vụ VKS có hỗ trợ LoadBalancing cho worker nodes khơng? 26 7.5 Dịch vụ VKS có chạy tảng nhà cung cấp khác không? 27 7.6 Khách hàng cần chi trả chi phí đăng ký sử dụng dịch vụ VKS? 27 Mục đích: Mục đích tài liệu hướng dẫn khách hàng sử dụng dịch vụ Viettel Kubernetes Service (sau gọi tắt VKS) nhằm gia tăng hiệu suất vận hành ứng dụng, tối ưu hóa chi phí khách hàng góp phần đem lại hài lòng khách hàng sử dụng dịch vụ Viettel IDC Phạm vi áp dụng: Tài liệu áp dụng cho dịch vụ VKS khách hàng sử dụng dịch vụ Giới thiệu dịch vụ: a Viettel Kubernetes Service (VKS) gì? • VKS tảng Kubernetes triển khai hạ tầng Public Cloud mạnh mẽ Viettel IDC, cung cấp môi trường ảo hóa lớp OS (Operation System) hồn chỉnh, cho phép người dùng phát triển, kiểm thử, triển khai phân phối ứng dụng tảng Kubernetes • VKS định nghĩa lớp PaaS mơ hình dịch vụ Public Cloud, sử dụng tảng Kubernetes tạo lớp ảo hóa “trừu tượng”, lập riêng biệt ứng dụng, bao gồm thứ cần thiết để chạy ứng dụng (mã nguồn, thư viện runtime, …) sử dụng chung hệ điều hành (Host OS) thay ảo hóa phần cứng tạo nhiều máy chủ ảo chứa nhiều phiên OS khác • Triển khai dịch vụ VKS hồn tồn tự động, nhanh chóng thuận tiện Người dùng tương tác với cụm Kubernetes (Kubernetes Cluster) máy chủ ảo cấu hình sẵn hệ điều hành, phần mềm Docker Engine tùy chọn phiên Kubernetes cập nhật nhất, đạt đầy đủ chuẩn An tồn thơng tin ISO 27017:2015; ISO 9001:2015 quản lý chất lượng dịch vụ b Những khái niệm bản: i Master node: Là server điều khiển worker node chạy Pod chứa ứng dụng Master node bao gồm thành phần • Kube API Server: thành phần giúp thành phần khác liên lạc nói chuyện với Lập trình viên triển khai ứng dụng gọi API Kubernetes API Server • Kube Scheduler: Thành phần lập lịch triển khai cho ứng dụng, ứng dụng đặt vào Worker node để chạy • Kube Controler Manager: Thành phần đảm nhiệm phần quản lý worker nodes, kiểm tra trạng thái worker “sống hay chết”, đảm nhận việc nhân ứng dụng… • Etcd: sở liệu Kubernetes, tất thông tin Kubernetes lưu trữ cố định vào ii Worker node: Là server chạy Pod chứa ứng dụng Bao gồm thành phần chính: • Container runtime: thành phần giúp chạy ứng dụng dạng Container Kubernetes hỗ trợ nhiều loại Container runtime Docker, containerd, CRI-O… • Kubelet: thành phần giao tiếp với Kubernetes API Server Nó quản lý container • Kubernetes Service Proxy: Thành phần đảm nhận việc phân tải ứng dụng iii Kubectl: Là agent chạy worker node cụm Kubernetes cluster Kubelet hoạt động dạng PodSpec Kubelet lấy tập hợp PodSpec cung cấp thông qua chế khác đảm bảo container mô tả PodSpec chạy khỏe mạnh Kubelet không quản lý container không tạo Kubernetes iv Pod: Pod đơn vị tính tốn nhỏ triển khai mà khách hàng tạo quản lý Kubernetes Một Pod bao gồm nhiều containers, với tài nguyên mạng / vùng lưu trữ (storage) chia sẻ đặc điểm kỹ thuật cách chạy containers Nội dung Pod định vị đồng thời lên lịch, chạy bối cảnh chung Pod mơ hình hóa "máy chủ logic" dành riêng cho ứng dụng: chứa nhiều containers ứng dụng kết hợp tương đối chặt chẽ Trong bối cảnh đám mây, ứng dụng thực thi máy vật lý máy ảo tương tự ứng dụng đám mây thực thi máy chủ logic Cũng container ứng dụng, Pod chứa init container chạy q trình khởi động Pod v Image: Đại diện cho liệu nhị phân bao bọc ứng dụng tất gói phần mềm phụ thuộc (dependencies) Image chạy độc lập đưa giả định xác định rõ ràng môi trường thời gian chạy chúng Image thông thường lưu trữ repository tập trung, chẳng hạn Docker Hub nơi chứa Images thức nhiều ứng dụng phổ biến nginx, mysql, wordpress, redis, node v.v vi Deployment: Một Deployment cung cấp cập nhật khai báo cho Pods, Replica Set Bạn mô tả trạng thái mong muốn Deployment Deployment Controller thay đổi trạng thái thực tế thành trạng thái mong muốn với tốc độ kiểm sốt Bạn xác định Deployment để tạo ReplicaSets xóa Deployment có sử dụng tất tài nguyên chúng với Deployment vii ReplicaSet: ReplicaSet tạo nhằm trì tập hợp gồm Pop ổn định chạy thời điểm ReplicaSet thường sử dụng để đảm bảo sẵn sàng nhóm Pods, dễ dàng nhân thêm hay giảm số lượng Pod viii Service: Một cách trừu tượng để expose ứng dụng chạy tập hợp Pod dịch vụ mạng Với Kubernetes, bạn không cần phải sửa đổi ứng dụng để sử dụng chế khám phá dịch vụ không quen thuộc Kubernetes cung cấp cho Pods địa IP riêng chúng tên DNS cho nhóm Pod cân tải nhóm ix Labels: Là cặp key/value gắn vào đối tượng, chẳng hạn Pod Các label nhằm mục đích sử dụng để xác định thuộc tính nhận dạng đối tượng có ý nghĩa phù hợp với người dùng Labels sử dụng để tổ chức chọn tập hợp đối tượng Ví dụ, gán labels theo chức frontend, backend, chạy môi trường dev, test, staging, production v.v Các labels gắn vào đối tượng thời điểm tạo sau thêm vào sửa đổi lúc Mỗi đối tượng có tập hợp key/value labels xác định Mỗi key phải cho đối tượng định c Ưu điểm dịch vụ: • Tính qn mơi trường (Environment consistency) Các ứng dụng chạy tảng Kubernetes hoạt động quán môi trường khác (dev, testing, stagging, production) Điều giúp loại bỏ ảnh hưởng liên quan đến môi trường hệ thống chuyển đổi chạy ứng dụng, tiết kiệm thời gian cơng sức người lập trình/vận hành • Triển khai ứng dụng nhanh chóng (Fast Deployment) Container/Pod nhẹ khởi động thời gian không bắt buộc phải khởi động máy hệ điều hành VM, giúp khách hàng triển khai ứng dụng nhanh hơn, scale ứng dụng nhanh có tính sẵn sàng cao • Tính lập (Isolation) Ứng dụng Container/Pod phân tách rõ ràng chạy hoàn toàn độc lập với Container/Pod khác cluster, đảm bảo tính an tồn bảo mật Bất kì cơng hay phần mềm độc hại xảy Container/Pod không lan truyền qua Container/Pod khác • Tính di động (Portability) tính mở rộng (Expandability) Người dùng tự tạo Container/Pod từ image có sẵn, cài đặt mơi trường, dịch vụ, sau lưu trạng thái Container lại "custom image" triển khai image laptop, máy chủ đặt doanh nghiệp hay Cloud • Module hóa ứng dụng: Container/Pod hỗ trợ hiệu triển khai ứng dụng lớn theo kiến trúc Microservice, phân tách service thành module nhỏ giúp người dùng tập trung quản lý thay đổi mở rộng, kiểm soát lỗi tốt vận hành, dễ dàng thực CI/CD hay sửa đổi, cập nhật tính d Tính dịch vụ: • Tự động triển khai dịch vụ Viettel Kubernetes Service Đăng kí khởi tạo tự động dịch vụ cụm Kubernetes Cluster cấu hình sẵn với vài cú nhấp chuột, thuận tiện việc tăng giảm số lượng node, tài nguyên phần cứng hạ tầng điện tốn đám mây cao cấp • Cung cấp đầy đủ tính tảng phân phối Kubernetes Cung cấp framework để quản lý container chạy ứng dụng, đảm bảo trì trạng thái hoạt động dịch mong muốn thơng qua tính điều phối tài nguyên, ổ lưu trữ; Tự động rollout rollback khơng có downtime; quản lý cấu hình bảo mật; Tăng/ giảm số lượng node… • Tích hợp sẵn giải pháp lưu trữ liệu lâu dài Persistent Storage Một ổ lưu trữ liệu kết nối với cụm Kubernetes Cluster NFS server (Network File System), cho phép người dùng triển khai ứng dụng “Stateful” môi trường production • Quản trị cụm Kubernetes Cluster cơng cụ Kubectl Người dùng dễ dàng tương tác cấu hình thơng qua cơng cụ dịng lệnh Kubectl đặc trưng tảng Kubernetes Mở Command Prompt, gõ câu lệnh: mkdir kube Đặt file kubectl.exe vào đường dẫn %userprofile%/.kube Bước 3: Kiểm tra phiên kubectl cài: kubectl version –client kubectl cluster-info Kết quả: Bước : Kết nối thành công Thực câu lệnh điều khiển kubectl ii.Cài đặt kubelet môi trường Centos Linux Bước : Chạy lệnh sau : cat > /etc/exports echo ‘/nfs-share-data/web dia_chi_IP_của_worker_node_2 (rw,sync,all_sq uash,no_subtree_check) ‘ >> /etc/exports Bước 4: Export kiểm tra cấu hình chia sẻ exportfs –rav exportfs –e 22 showmount -e Bước 5: Khởi động lại kiểm tra dịch vụ systemctl restart nfs-server systemctl status nfs-server Bước 6: Tạo Persistent Volume Persistent Volume Claim….như phần 5.4.2 với đường dẫn path thay đổi tương ứng iv.Chỉnh sửa file cấu hình chia sẻ thư mục tạo mới/xóa worker node: Khi khách hàng tạo hay xóa worker node, file cấu hình chai sẻ thư mục NFS node cần cập nhật địa IP thư mực chia sẻ (nếu có) Bước 1: Truy cập vào NFS node, mở file /etc/exports: nano /etc/exports Bước 2: Thực kịch sau (hoặc hai, có): Thêm worker node: thêm dòng tương ứng với sub_directory sau: /nfs-share-data/ten_sub_directory_1 dia_chi_IP_của_worker_node_moi_tao (rw,sync,all_squash,no_subtree_check) /nfs-share-data/ten_sub_directory_thu_n dia_chi_IP_của_worker_node_moi_tao (rw,sync,all_squash,no_subtree_check) Xóa worker node: xóa dịng tương ứng có IP worker node vừa xóa /nfs-share-data/ten_sub_directory_1 dia_chi_IP_của_worker_node_vua_xoa (rw,sync,all_squash,no_subtree_check) /nfs-share-data/ten_sub_directory_thu_n dia_chi_IP_của_worker_node_vua_xoa (rw,sync,all_squash,no_subtree_check) Bước 3: Export lại kiểm tra cấu hình chia sẻ exportfs –rav 23 exportfs –e showmount -e v.Kiểm tra trạng thái dịch vụ: Kiểm tra đảm bảo tất tài nguyên trạng thái tốt kubectl get deploy,pod,svc,pv,pvc –o wide Sơ đồ hoạt động FAQ a Sự khác Docker Kubernetes • Docker cơng nghệ mã nguồn mở, tự động hóa việc triển khai ứng dụng dạng container di động, tự cung cấp mà chạy mơi trường cloud hay on-premise Mặc dù ý tưởng cách ly môi trường có nhiều loại phần mềm container hóa khác, Docker trở thành định dạng container mặc định năm gần Docker có tính Docker Engine, runtime environment Nó cho phép bạn xây dựng chạy container máy phát 24 triển nào; sau lưu trữ chia sẻ image container thông qua repository Docker Hub v.v… Khi ứng dụng phát triển để mở rộng nhiều container triển khai nhiều máy chủ, việc vận hành chúng trở nên phức tạp Mặc dù Docker cung cấp tiêu chuẩn mở để đóng gói phân phối ứng dụng đóng gói, phức tạp tiềm ẩn tăng lên nhanh chóng Làm để bạn điều phối lên lịch cho nhiều container? Làm cách để tất container khác ứng dụng bạn nói chuyện với nhau? Làm để bạn scale nhiều container? Đây nơi Kubernetes giúp • Kubernetes phần mềm điều phối mã nguồn mở cung cấp API để kiểm sốt cách thức vị trí container chạy Nó cho phép bạn chạy container/workload giúp bạn giải số phức tạp hoạt động chuyển sang mở rộng nhiều container, triển khai nhiều máy chủ Kubernetes cho phép bạn xếp cụm máy ảo lên lịch cho container chạy máy ảo dựa tài ngun máy tính có sẵn chúng yêu cầu tài nguyên container Các container nhóm lại thành nhóm, đơn vị hoạt động Kubernetes Các container nhóm điều chỉnh tỷ lệ đến trạng thái mong muốn bạn bạn quản lý vòng đời chúng để giữ cho ứng dụng bạn ln hoạt động • Một khác biệt Kubernetes Docker Kubernetes chạy cluster Docker chạy node Kubernetes mở rộng Docker Swarm phối hợp cụm nút (cluster) quy mô production cách hiệu Các Kubernetes pods — đơn vị lập lịch chứa nhiều container hệ sinh thái Kubernetes — phân phối node để cung cấp tính khả dụng cao b Lợi ích đăng ký sử dụng dịch vụ VKS ViettelIDC ViettelIDC cung cấp cluster bao gồm tối thiểu máy chủ ảo (Virtual Machine) triển khai sẵn tảng Kubernetes Trong đó: 25 • Master Node VM, chứa tất thành phần logic để điều phối hoạt động worker node định nghĩa, triển khai, quản trị vòng đời container chạy worker node • Worker Node: Các ứng dụng container hóa triển khai worker node Viettel IDC cung cấp tối thiếu worker node gói dịch vụ nhằm nâng cao khả chịu lỗi tính sẵn sàng triển khai ứng dụng • NFS Node NFS Server (Network File System) sử dụng giao thức kết nối container hoạt động worker node tới vùng lưu trữ liệu độc lập (Persistent Storage) c Node Storage Persistent Storage gói dịch vụ VKS gì? • Node Storage khởi tạo theo cấu hình Node, có dung lượng Storage cố định 20 GB (SSD), sử dụng để lưu trữ liệu (dạng cache) container trình hoạt động Dữ liệu lưu tạm thời bị xóa người dùng restart / reschedule container • Dữ liệu container trình hoạt động ghi lại vùng lưu trữ riêng (Persistent Storage) giữ lại container bị restart/reschedule liệu chuyển giao container d Dịch vụ VKS có hỗ trợ LoadBalancing cho worker nodes khơng? • Hiện tại, dịch vụ VKS hỗ trợ Load Balancing mức Pod (native Kubernetes platform) Dự kiến quý năm 2021, VKS hỗ trợ native LoadBalancing mức worker node • Khách hàng dựng nginx server để làm Load Balancer (phù hợp với môi trường production có lượng truy cập lớn) Vui lịng tham khảo link sau: http://nginx.org/en/docs/http/load_balancing.html • Khách hàng sử dụng giải pháp Load Balancing dùng DNS Round Robin cho worker nodes sau: Bước 1: Truy cập vào hình quản trị tên miền 26 Bước 2: Tạo ghi A „lồng nhau“ (nested A record) với địa IP tương ứng worker nodes Khi người dùng truy cập web với tên domain, yêu cầu (requests) chuyển tới địa IP tương ứng nested A record Khi host không truy cập được, web-browser thử địa IP host lại mà trả từ DNS server Khuyến nghị: Giải pháp đạt hiệu suất tối đa kết hợp sử dụng chung với load balancer/reverse proxy (trong trường hợp có nhiều vùng khác nhau, vùng có cụm web server riêng) Nghĩa là, nested A records thay trỏ đến địa IP web server trỏ đến địa IP Load balancer/reverse proxy e Dịch vụ VKS có chạy tảng nhà cung cấp khác khơng? • Người dùng hồn tồn sử dụng tất plugin công cụ có phát triển từ cộng đồng Kubernetes Các ứng dụng chạy mơi trường Kubernetes tiêu chuẩn hạ tầng Cloud khác (AWS, Microsoft Azure ) hay trung tâm liệu On-Premise tương thích dễ dàng di chuyển sang dịch vụ VKS Viettel IDC f Khách hàng cần chi trả chi phí đăng ký sử dụng dịch vụ VKS? • Khách hàng đăng ký dịch vụ cần trả cước hàng tháng cho tổng số tài nguyên cần dùng Khơng phát sinh bất kù chi phí liên quan đến phần quản trị vận hành Kubernetes Cluster 27

Ngày đăng: 05/01/2023, 10:02

Tài liệu cùng người dùng

Tài liệu liên quan