Viettel Kubernetes
Dịch vụ giúp tự động triển khai và vận hành các Kubernetes cluster, hỗ trợ người dùng tiết kiệm thời gian, nguồn lực khi loại bỏ các tác động thủ công trong quy trình phát triển phần mềm
Viettel Kubernetes (còn gọi là Container as a Service - CaaS) 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.
Viettel Kubernetes định nghĩa ở lớp PaaS trong mô hình dịch vụ Cloud, sử dụng nền tảng Kurbenetes 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 gồm mọi thứ cần thiết để chạy ứng dụng (mã nguồn, các thư viện runtime, …) đều 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ụ Viettel Kubernetes 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 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ụ
Sơ đồ hoạt động
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.
Đầ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;...
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.
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ụ…
Tính nhất quán của môi trường
Các ứng dụng chạy trên các container 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, tiết kiệm thời gian và công sức của người dùng
Triển khai nhanh
Container/Pod rất nhẹ và khởi động chỉ mất vài giây, vì 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 nhanh hơn và tính sẵn sàng cao
Tính cô lập
Ứ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 sẽ không lan truyền sang container khác
Tính linh động và tính mở rộng
Người dùng có thể tự tạo một Container/Pod từ các bản mẫu có sẵn, cài đặt môi trường, dịch vụ, sau đó lưu trạng thái Container lại như là một "image" và triển khai image này trên laptop, trên máy chủ đặt tại doanh nghiệp hay trên Cloud
Triển khai ứng dụng Web / Ứng dụng Mobile
Website/ứng dụng Mobile do lưu lượng truy cập đồng thời lớn, 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.
Phát triển 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à hiệu suất cho ứng dụng. Đội ngũ phát triển xây 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 bạn.
CI/CD (Continuous Intergration / Continuous Delivery)
Triển khai 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 mở rộng quy mô xây dựng và tích hợp.
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.
Container là một đơn vị phần mềm được tiêu chuẩn hóa dùng để chứa mã nguồn và các thành phần phụ thuộc cần thiết để chạy 1 ứng dụng hoặc service. Trong khi đó, Docker là nền tảng và công cụ để đóng gói 1 ứng dụng vào container, sau đó tự động hóa việc triển khai ứng dụng dưới dạng container ở quy mô nhỏ từ môi trường này sang môi trường khác 1 cách đáng tin cậy. Kubernetes không tự tạo ra các container mà nhiệm vụ quan trọng nhất của nó là nền tảng điều phối, lập lịch chạy, quản lý trạng thái các container khi mở rộng quy mô triển khai với yêu cầu phối hợp nhiều container hoạt động cùng nhau để phân phối các dịch vụ riêng lẻ trên 1 hạ tầng (host vật lý hoặc máy chủ ảo ).
ViettelIDC cung cấp 1 cụm tối thiểu 4 máy chủ ảo (Virtual Machine) được triển khai sẵn nền tảng Kubernetes. Trong đó,
- Master Node là 1 VM, chứa tất cả thành phần logic để điều phối hoạt động của các Worker Node và định nghĩa, triển khai, quản trị vòng đời các container chạy trên Worker Node
- Worker Node: Các ứng dụng được container hóa sẽ triển khai trên các Worker Node. Viettel IDC cung cấp tối thiếu 2 Worker Node trong 1 gói dịch vụ nhằm nâng cao khả năng chịu lỗi và tính sẵn sàng khi triển khai ứng dụng
- NFS Node là 1 NFS Server (Network File System) được sử dụng như 1 giao thức kết nối các container đang hoạt động trong Worker Node tới 1 vùng lưu trữ dữ liệu độc lập (Persistent Storage)
Node Storage được khởi tạo theo cấu hình của Node, có dung lượng Storage cố định là 20 GB (SSD), được sử dụng để lưu trữ dữ liệu (dạng cache) của container trong quá trình hoạt động. Dữ liệu này chỉ được lưu tạm thời và sẽ bị xóa khi người dùngrestart / reschedule các container.
Dữ liệu của container trong quá trình hoạt động được ghi lại trên vùng lưu trữ riêng (Persistent Storage) và được giữ lại khi container bị restart/reschedule và Dữ liệu này có thể được chuyển giao giữa các container.
Người dùng hoàn toàn có thể sử dụng tất cả plugin hoặc công cụ hiện có được phát triển từ cộng đồng Kubernetes. Các ứng dụng đang chạy trên bất kì môi trường Kubernetes tiêu chuẩn ở hạ tầng Cloud khác (AWS, Microsoft Azure..) hay trung tâm dữ liệu On-Premise đều tương thích và dễ dàng di chuyển sang dịch vụ VKS của Viettel IDC.
Các gói dịch vụ
Thông số vCPU, RAM, Storage và IP của node trong gói dịch vụ là tương đương nhau
Master Node
|
NFS Node
|
Worker Node
|
vCPU
|
RAM
|
Node Storage
|
IP
|
Persisten Storage (SSD)
|
Băng thông
|
IP
|
Phí duy trì (đ) |
||
---|---|---|---|---|---|---|---|---|---|---|---|---|
VKS2_2IP
|
1 Node
|
1 Node
|
2 Node
|
4 vCPU/Node
|
8 GB/Node
|
20 GB/Node
|
1 IP/Node
|
60 GB
|
300 Mbps
|
2 IP
|
6.150.000
|
|
VKS 1 (SSD)
|
1 Node
|
1 Node
|
2 Node
|
2 vCPU/Node
|
4 GB/Node
|
20 GB/Node
|
1 IP/Node
|
60 GB
|
300 Mbps
|
3.000.000
|
|
|
VKS 2 (SSD)
|
1 Node
|
1 Node
|
2 Node
|
4 vCPU/Node
|
8 GB/Node
|
20 GB/Node
|
1 IP/Node
|
60 GB
|
300 Mbps
|
1 IP
|
6.000.000
|
|
VKS 2 SSD
|
1 Node
|
1 Node
|
3 Node
|
4 vCPU/Node
|
8 GB/Node
|
20 GB/Node
|
1 IP/Node
|
60 GB
|
300 Mbps
|
1 IP
|
7.280.000
|
|
VKS 3 (SSD)
|
1 Node
|
1 Node
|
2 Node
|
8 vCPU/Node
|
16 GB/Node
|
20 GB/Node
|
1 IP/Node
|
80 GB
|
300 Mbps
|
11.000.000
|
|
|
VKS 4 (SSD)
|
1 Node
|
1 Node
|
2 Node
|
12 vCPU/Node
|
24 GB/Node
|
20 GB/Node
|
1 IP/Node
|
80 GB
|
300 Mbps
|
14.000.000
|
|
|
VKS 5 (SSD)
|
1 Node
|
1 Node
|
2 Node
|
16 vCPU/Node
|
32 GB/Node
|
20 GB/Node
|
1 IP/Node
|
120 GB
|
300 Mbps
|
18.000.000
|
|