1. Trang chủ
  2. » Thể loại khác

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 12 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiê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
Trường học Trường Đại học CNTT - Đại học Quốc Gia Hà Nội
Chuyên ngành Công Nghệ Thông Tin
Thể loại tài liệu hướng dẫn
Định dạng
Số trang 30
Dung lượng 1 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

• VKS là nền tảng Kubernetes được triển khai trên hạ tầng Public Cloud mạnh mẽ của Viettel IDC, cung cấp một môi trường ảo hóa ở lớp OS Operation System hoàn chỉnh, cho phép người dùng p

Trang 1

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

Trang 2

MỤC LỤC

1 Mục đích: 1

2 Phạm vi áp dụng: 1

3 Giới thiệu dịch vụ: 1

3.1 Viettel Kubernetes Service (VKS) là gì? 1

3.2 Những khái niệm cơ bản: 2

3.2.1 Master node: 2

3.2.2 Worker node: 2

3.2.3 Kubectl: 2

3.2.4 Pod: 3

3.2.5 Image: 4

3.2.6 Deployment: 4

3.2.7 ReplicaSet: 4

3.2.8 Service: 4

3.2.9 Labels: 4

3.3 Ưu điểm dịch vụ: 5

3.4 Tính năng dịch vụ: 6

3.5 Kịch bản sử dụng dịch vụ: 8

3.5.1 Triển khai ứng dụng Web/Ứng dụng Mobile 8

3.5.2 Triển khai API và backend services 9

3.5.3 Triển khai CI/CD (Continuous Intergration / Continuous Delivery) 9

3.5.4 Triển khai kiến trúc Microservice 9

4 Hướng dẫn sử dụng dịch vụ VKS: 9

4.1 Quản trị dịch vụ VKS: 9

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 trên môi trường Windows 12

4.2.2 Cài đặt kubelet trên môi trường Centos Linux 13

4.2.3 Cài đặt kubelet trên môi trường MacOS 14

Trang 3

5.1 Giới thiệu NFS Node: 16

5.2 Các dạng kết nối lưu trữ trên 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ữ trên Kubernetes: 17

5.4.3 Cấu hình sub-directory trong 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 thì tạo mới/xóa worker node: 23

5.4.5 Kiểm tra trạng thái dịch vụ: 24

6 Sơ đồ hoạt động 24

7 FAQ 24

7.1 Sự khác nhau cơ bản giữa Docker và Kubernetes 24

7.2 Lợi ích khi đăng ký sử dụng dịch vụ VKS của ViettelIDC 25

7.3 Node Storage và Persistent Storage trong gói dịch vụ VKS là gì? 26

7.4 Dịch vụ VKS có hỗ trợ LoadBalancing cho các worker nodes không? 26

7.5 Dịch vụ VKS có chạy được trên nền tảng các nhà cung cấp khác không? 27

7.6 Khách hàng sẽ cần chi trả những chi phí gì khi đăng ký sử dụng dịch vụ VKS? 27

Trang 4

1 Mục đích:

Mục đích của tài liệu là hướng dẫn khách hàng sử dụng dịch vụ Viettel Kubernetes Service (sau đây gọi tắt là VKS) nhằm gia tăng hiệu suất vận hành ứng dụng, tối ưu hóa chi phí của khách hàng góp phần đem lại sự hài lòng của khách hàng khi sử dụng dịch

vụ của Viettel IDC

2 Phạm vi áp dụng:

Tài liệu này được áp dụng cho dịch vụ VKS và khách hàng sử dụng dịch vụ

3 Giới thiệu dịch vụ:

a Viettel Kubernetes Service (VKS) là gì?

• VKS là nền tảng Kubernetes được triển khai trên hạ tầng Public Cloud mạnh mẽ của Viettel IDC, cung cấp một môi trường ảo hóa ở lớp OS (Operation System) hoàn chỉnh, cho phép người dùng phát triển, kiểm thử, triển khai và phân phối các ứng dụng của mình trên nền tảng Kubernetes

• VKS định nghĩa ở lớp PaaS trong mô hình dịch vụ Public Cloud, sử dụng nền tảng Kubernetes tạo ra 1 lớp ảo hóa “trừu tượng”, cô lập riêng biệt các ứng dụng, bao

Trang 5

sử dụng chung hệ điều hành duy nhất (Host OS) thay vì ảo hóa phần cứng và tạo

ra nhiều máy chủ ảo chứa nhiều phiên bản OS khác nhau

• Triển khai dịch vụ VKS hoàn toàn tự động, nhanh chóng và thuận tiện Người dùng

sẽ tương tác với cụm Kubernetes (Kubernetes Cluster) là các máy chủ ảo đã cấu hình sẵn hệ điều hành, phần mềm Docker Engine và tùy chọn phiên bản Kubernetes cập nhật mới nhất, đạt đầy đủ các chuẩn An toàn thông tin ISO 27017:2015; ISO 9001:2015 về quản lý chất lượng dịch vụ

• Kube Scheduler: Thành phần này lập lịch triển khai cho các ứng dụng, ứng dụng được đặt vào Worker node nào để chạy

• Kube Controler Manager: Thành phần đảm nhiệm phần quản lý các worker

nodes, kiểm tra trạng thái các worker “sống hay chết”, đảm nhận việc nhân bản ứng dụng…

• Etcd: là cơ sở dữ liệu của Kubernetes, tất cả các thông tin của Kubernetes được lưu trữ cố định vào đây

ii Worker node:

Là server chạy các Pod chứa ứng dụng trên đó Bao gồm 3 thành phần chính:

• Container runtime: là thành phần giúp chạy các ứng dụng dưới dạng Container Kubernetes hỗ trợ nhiều loại Container runtime như Docker, containerd, CRI-O…

• Kubelet: đây là thành phần giao tiếp với Kubernetes API Server Nó cũng quản

lý các container

• Kubernetes Service Proxy: Thành phần này đảm nhận việc phân tải giữa các ứng dụng

iii Kubectl:

Trang 6

Là agent chạy trên từng worker node trong cụm Kubernetes cluster Kubelet hoạt động dưới dạng PodSpec Kubelet lấy một tập hợp các PodSpec được cung cấp thông qua các cơ chế khác nhau và đảm bảo rằng các container được mô tả trong các PodSpec đó đang chạy và khỏe mạnh Kubelet không quản lý các container không được tạo bởi Kubernetes

Trang 7

Cũng như container ứng dụng, Pod có thể chứa init container chạy trong quá trình khởi động Pod

v Image:

Đại diện cho dữ liệu nhị phân bao bọc một ứng dụng và tất cả các gói phần mềm phụ thuộc (dependencies) của nó Image có thể chạy độc lập và đưa ra các giả định được xác định rất rõ ràng về môi trường thời gian chạy của chúng Image này thông thường được lưu trữ ở một repository tập trung, chẳng hạn Docker Hub là nơi chứa Images chính thức của nhiều ứng dụng phổ biến như nginx, mysql, wordpress, redis, node v.v

vi Deployment:

Một Deployment cung cấp bản cập nhật khai báo cho Pods, Replica Set Bạn mô tả trạng thái mong muốn trong một Deployment và Deployment Controller thay đổi trạng thái thực tế thành trạng thái mong muốn với tốc độ được kiểm soát Bạn có thể xác định các Deployment để tạo các ReplicaSets mới hoặc xóa các Deployment hiện có và sử dụng tất cả các tài nguyên của chúng với Deployment mới

vii ReplicaSet:

ReplicaSet được tạo ra nhằm duy trì một tập hợp gồm các bản sao Pop ổn định đang chạy ở bất cứ thời điểm nào ReplicaSet thường được sử dụng để đảm bảo sự sẵn sàng của một nhóm các Pods, dễ dàng nhân bản thêm hay giảm số lượng Pod

Trang 8

môi trường dev, test, staging, production v.v Các labels có thể được gắn vào các đối tượng tại thời điểm tạo và sau đó được thêm vào và sửa đổi bất kỳ lúc nào Mỗi đối tượng có thể có một tập hợp các key/value labels được xác định Mỗi key phải là duy nhất cho một đối tượng nhất định

• Tính nhất quán của môi trường (Environment consistency)

Các ứng dụng chạy trên các nền tảng Kubernetes hoạt động nhất quán trong các môi trường khác nhau (dev, testing, stagging, và production) Điều này giúp loại bỏ các ảnh hưởng liên quan đến môi trường hệ thống khi chuyển đổi và chạy ứng dụng, tiết kiệm thời gian và công sức của người lập trình/vận hành

• Triển khai ứng dụng nhanh chóng (Fast Deployment)

Container/Pod rất nhẹ và khởi động chỉ mất rất ít thời gian do không bắt buộc phải khởi động máy và hệ điều hành như VM, giúp khách hàng triển khai ứng dụng nhanh hơn, scale ứng dụng nhanh và có tính sẵn sàng cao

• Tính cô lập (Isolation)

Ứng dụng trong Container/Pod được phân tách rõ ràng và chạy hoàn toàn độc lập với các Container/Pod khác trên cùng 1 cluster, đảm bảo tính an toàn và bảo mật Bất kì cuộc tấn công hay phần mềm độc hại nào xảy ra trên một Container/Pod

sẽ không lan truyền qua các Container/Pod khác

Trang 9

d Tính năng dịch vụ:

• Tự động triển khai dịch vụ Viettel Kubernetes Service

Đăng kí và khởi tạo tự động dịch vụ là các cụm Kubernetes Cluster được cấu hình sẵn chỉ với vài cú nhấp chuột, thuận tiện trong việc tăng giảm số lượng node, tài nguyên phần cứng trên hạ tầng điện toán đám mây cao cấp

• Cung cấp đầy đủ tính năng của nền tảng phân phối Kubernetes

Cung cấp 1 framework để quản lý các container chạy ứng dụng, đảm bảo duy trì trạng thái hoạt động dịch như mong muốn thông qua tính năng điều phối tài nguyên, ổ lưu trữ; Tự động rollout và rollback không có downtime; quản lý cấu hình và bảo mật; Tăng/ giảm số lượng node…

Trang 10

• Tích hợp sẵn giải pháp lưu trữ dữ liệu lâu dài Persistent Storage

Một ổ lưu trữ dữ liệu được kết nối với cụm Kubernetes Cluster bằng NFS server (Network File System), cho phép người dùng triển khai ứng dụng “Stateful” trên môi trường production

• Quản trị cụm Kubernetes Cluster bằng công cụ Kubectl

Người dùng dễ dàng tương tác và cấu hình thông qua công cụ dòng lệnh Kubectl đặc trưng của nền tảng Kubernetes

Trang 11

• Quản lý thông tin dịch vụ qua Self Service Portal

Hệ thống Automation dễ sử dụng, hiển thị đầy đủ thông tin, trạng thái hoạt động của node; tích hợp sẵn các tính năng như khởi tạo, thêm / xóa Node, gia hạn dịch vụ…

i Triển khai ứng dụng Web/Ứng dụng Mobile

Trang 12

Ứng dụng Website/Mobile có lưu lượng truy cập đồng thời ở mức cao, nhu cầu scale nhanh để đáp ứng dịch vụ sẽ đối mặt với thách thức về khả năng mở rộng và tính ổn định Chuyển đổi từ triển khai trên hạ tầng vật lý sang triển khai trên nền tảng Kubernetes sẽ giúp khách hàng mở rộng dễ dàng hơn, tính sẵn sàng cao hơn với chi phí thấp hơn

ii Triển khai API và backend services

Xây dựng và quản lý dịch vụ backend trên Kubernetes để gia tăng tốc độ triển khai

và nâng cao hiệu suất cho ứng dụng Đội ngũ phát triển xây dựng sản phẩm ứng dụng, kiểm thử và cập nhật phiên bản một cách độc lập, không làm ảnh hưởng đến toàn bộ ứng dụng, nâng cao tính khả dụng, và hiệu quả cho các dịch vụ của khách hàng

iii Triển khai CI/CD (Continuous Intergration / Continuous Delivery)

Triển khai tích hợp với các hệ thống CI/CD như Gitlab, Jenkin, Travis… trên Kubernetes để quản lý quy trình phát triển phần mềm của đội ngũ DevOps, dễ dàng cài đặt, cấu hình hay mở rộng quy mô xây dựng và tích hợp triển khai ứng dụng

iv Triển khai kiến trúc Microservice

Kubernetes và Container đóng vai trò quan trọng trong việc triển khai ứng dụng theo kiến trúc Microservices, chuẩn hóa cách thức phát triển phần mềm thành các

bộ service được tách biệt dữ liệu, hoạt động độc lập

4 Hướng dẫn sử dụng dịch vụ VKS:

a Quản trị dịch vụ VKS:

Đăng nhập trang quản trị tại: https://viettelidc.com.vn/Account/Login

Username/Password đăng nhập: Email đăng ký dịch vụ

Bước 1: Sau khi đăng nhập thành công, chọn Quản lý dịch vụ như hình bên dưới

Trang 13

Bước 2: Chọn dịch vụ VKS

Trong trang quản lý dịch vụ VKS, người dùng theo dõi được toàn bộ các gói dịch

vụ đã đăng kí bao gồm Trạng thái dịch vụ, chu kì, cước hàng tháng

Bước 3: Chọn kiểm tra thông tin chi tiết từng gói dịch vụ:

Trang 14

Bước 4: Thông tin chi tiết gói dịch vụ bao gồm:

Thông tin cluster:

Thông tin node: IP Master node và IP worker node

Bước 5: Download kube configuration file về máy tính

Trang 15

Lưu ý: sau khi download file về máy tính các nhân Phải thay đổi tên file đã download: từ download.config sang config

Đặt file config vào tương ứng môi trường cài đặt bên dưới theo đường dẫn

%userprofile%\.kube\config

b Cài đặt môi trường điều khiển phía người dùng:

Công cụ command-line trong Kubernetes - kubectl, cho phép bạn thực thi các câu lệnh điều khiển Kubernetes clusters Kubectl hỗ trợ thực hiện triển khai các ứng dụng, theo dõi và quản lý tài nguyên, xem log hệ thống

Để sử dụng, bạn có thể cài đặt trên các môi trường sử dụng khác nhau, chi tiết xem hướng dẫn cài đặt trên từng môi trường tương ứng bên dưới:

i.Cài đặt kubelet trên môi trường Windows Bước 1: Download kubectl từ link cài đặt:

release/release/v1.19.0/bin/windows/amd64/kubectl.exe

https://storage.googleapis.com/kubernetes-Để kiểm tra version kubectl mới nhất, truy cập vào link:

https://storage.googleapis.com/kubernetes-release/release/stable.txt Bước 2: Thêm đường dẫn file kubectl vào PATH:

Tạo folder kube trong thư mục User đang sử dụng

Lưu ý: User đăng nhập phải có quyền administrator local

Cách 1: đăng nhập tài khoản Windows với quyền administrator local

Nhấn tổ hợp phím Windows + R, gõ %userprofile%

Tạo folder kube tại đây

Cách 2: đăng nhập tài khoản Windows với quyền administrator local

Trang 16

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 bản kubectl đã cài:

kubectl version –client kubectl cluster-info Kết quả:

Bước 4 : Kết nối thành công Thực hiện các câu lệnh điều khiển kubectl ii.Cài đặt kubelet trên môi trường Centos Linux Bước 1 : Chạy lệnh sau :

cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes]

name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_

64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg

Trang 17

Kubernetes master is running at https://master_ip:6443

KubeDNS is running at dns:dns/proxy

https://master_ip/api/v1/namespaces/kube-system/services/kube-Bước 5: Kết nối thành công Bắt đầu thực hiện các lệnh điều khiển bằng kubectl iii.Cài đặt kubelet trên môi trường MacOS Bước 1: Tải phiên bản mới nhất bằng lệnh curl

curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl"

Để tải phiên bản bạn mong muốn, vui lòng thay thế biến $(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt) bằng phiên bản cụ thể

Ví dụ: tải về phiên bản v1.17.0 trên macOS curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.17.0/bin/darwin/amd64/kubectl

Bước 2: Gán quyền thực thi kubectl binary

Trang 18

5 Quản lý lưu trữ với NFS Node:

Hệ thống Kubermetes sẽ tạo ra Pods mới thay thế khi một Pods bị lỗi, chết hay crash Vậy

dữ liệu được lưu trong Pods cũ sẽ ra sao? Pods mới có lấy lại được dữ liệu của Pods cũ đã mất để tiếp tục sử dụng không? Volumes sẽ giúp giải quyết các vấn đề trên

Volumes là thành phần trực thuộc Pods Volumes được định nghĩa trong cấu hình file yaml khi khởi tạo các Pods Các container có thể thực hiện mount dữ liệu bên trong container đến đối tượng volumes thuộc cùng Pods

Hình – Các containers trong Pod mount đến 2 volumes để share data với nhau

Trang 19

• Cinder, cephfs, iscsi, flocker, glusterfs, quobyte, rbd, flexVolume, sphereVolume, photonPersistentDisk, scaleIO

• ConfigMap, secret, downwardAPI

• PersistentVolumeClaim

Như đã thấy, có rất nhiều loại volumes khác nhau Tuy nhiên, với dịch vụ VKS, Viettel

tập trung vào cung cấp giải pháp PersistentVolume (PV) – NFS node

a Giới thiệu NFS Node:

VKS có thể tự động thêm các node NFS vào cấu hình Kubernetes khi tạo một cụm mới Quản trị viên có thể sử dụng (các) NFS node để triển khai lưu trữ giữa nhiều container, cho phép triển khai các ứng dụng dạng stateful tốt hơn khi dữ liệu luôn được đảm bảo lưu trữ ở phân vùng cố định

Phần này mô tả quản lý NFS node và một ví dụ hướng dẫn thiết lập lưu trữ trên NFS Yêu cầu cần nắm được lý thuyết cơ bản về lưu trữ Kubernetes cũng như quản trị NFS

b Các dạng kết nối lưu trữ trên NFS node:

• Lưu trữ tĩnh được quản trị viên cluster cấp phát trước Chúng mang thông tin chi tiết về dung lượng lưu trữ thực tế có sẵn để người dùng sử dụng Chúng tồn tại trong Kubernetes API và sẵn sàng để sử dụng Người dùng có thể phân bổ dung lượng lưu trữ tĩnh bằng cách tạo một xác nhận dung lượng lưu trữ cho cùng một phân vùng lưu trữ hoặc tùy biến theo yêu cầu sử dụng trên các container VKS hỗ trợ dung lượng lưu trữ tĩnh cấp phát trước trên

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

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w