Ý nghĩa các trường thông tin¶
Thành phần chính trong Managed Kubernetes của Sunteco Cloud:¶
Control Plane (Quản lý bởi Provider):
API Server: Xử lý tất cả các yêu cầu API từ người dùng, quản lý các đối tượng Kubernetes.
etcd: Lưu trữ dữ liệu cấu hình và trạng thái của cluster.
Controller Manager: Chạy các controller để giám sát trạng thái của cluster và thực hiện các hành động cần thiết để duy trì trạng thái mong muốn.
Scheduler: Chọn worker node phù hợp để chạy các pods dựa trên yêu cầu tài nguyên và các ràng buộc khác.
Worker Nodes (Quản lý bởi Người dùng):
kubelet: Giám sát và quản lý các pods trên node.
kube-proxy: Quản lý mạng và load balancing cho các pods.
Container Runtime: Chạy và quản lý các containers (ví dụ: Docker, containerd).
Sơ đồ mô tả mối quan hệ trong Managed Kubernetes:¶
Managed Kubernetes Cluster
├── Control Plane (Managed by Provider)
│ ├── API Server
│ ├── etcd
│ ├── Controller Manager
│ └── Scheduler
└── Worker Nodes (Managed by User)
├── Worker Node 1
│ ├── kubelet
│ ├── kube-proxy
│ └── Container Runtime (Docker, containerd, etc.)
├── Worker Node 2
│ ├── kubelet
│ ├── kube-proxy
│ └── Container Runtime (Docker, containerd, etc.)
└── Worker Node 3
├── kubelet
├── kube-proxy
└── Container Runtime (Docker, containerd, etc.)
Kubernetes sử dụng rất nhiều khái niệm chuyên ngành. Vậy K8S có những khái niệm cơ bản nào được sử dụng nhiều và cần phải nắm thì sau đây là câu trả lời.
GENERAL¶
Đây là các metadata cấu hình behavior của hệ thống đối với Kubernetes Cluster
Data Center:¶
Description
: Khu vực đặt Data Center, nó có tác động lớn về mặt truyền dẫn dữ liệu. DC nào càng gần khách hàng thì dữ liệu truyền dẫn càng nhanh và ổn định. Hiện nay, dịch vụ Sun Container Spinner có DC đặt tại Việt Nam nên hệ thống sẽ mặc định chọn ASIA.Options
: AsianDefault value
: Hiện dịch vụ Sun Kubernetes Spinner có Data đặt tại Việt Nam nên hệ thống sẽ default là ASIA.
Kubernetes name¶
Description
: Tên của Spinner do user đặt nhằm gợi nhớ nội dung và phân biệt Spinner này với Spinner khác. Tên của Spinner phải là duy nhất. Hệ thống sẽ sử dụng tên của Spinner để generate ra spinner IDDefault value
: “k8s-default-xxxx”. Trong đó xxxx là tập hợp 4 ký tự ngẫu nhiên đảm bảo tên là duy nhất trong VPC
Kubernetes Version¶
Suneco Cloud cung cấp dịch vụ Managed Kubernetes, trong đó các phiên bản Kubernetes (K8s) được quản lý và cập nhật định kỳ để đảm bảo tính ổn định và bảo mật cho người dùng. Thông tin về phiên bản Kubernetes (K8s) mà Sunteco Cloud hỗ trợ thường bao gồm các phiên bản chính thức từ CNCF (Cloud Native Computing Foundation), với các phiên bản phổ biến hiện tại như:
Các Phiên Bản Kubernetes (K8s) trên Sunteco Cloud:¶
Kubernetes 1.25
Kubernetes 1.26.3
Kubernetes 1.27.2
Kubernetes 1.28.1
Kubernetes 1.29.3 (nếu đã được phát hành vào thời điểm đó)
Cập Nhật và Nâng Cấp:
Tự động cập nhật bảo mật: Các bản vá bảo mật thường được cập nhật tự động bởi Sunteco để bảo vệ các cụm K8s khỏi các lỗ hổng bảo mật.
Nâng cấp phiên bản Kubernetes: Người dùng có thể chủ động lựa chọn thời điểm nâng cấp lên phiên bản mới nhất thông qua giao diện quản lý Sunteco hoặc yêu cầu Sunteco thực hiện nâng cấp.
Khả Năng Tương Thích: Các phiên bản Kubernetes mà Sunteco Cloud hỗ trợ sẽ tương thích với các add-ons, công cụ giám sát, và hệ thống lưu trữ, đảm bảo hoạt động ổn định và hiệu quả khi triển khai ứng dụng.
Cách kiểm tra phiên bản Kubernetes trong Sunteco Cloud:¶
Bảng điều khiển (Dashboard): Người dùng có thể truy cập bảng điều khiển Kubernetes trên Sunteco Cloud để kiểm tra phiên bản Kubernetes hiện đang chạy cho từng cụm (cluster).
CLI (kubectl): Khi truy cập vào cluster, bạn có thể sử dụng lệnh
kubectl version
để xem thông tin chi tiết về phiên bản Kubernetes của cụm. 0. Hướng dẫn cài đặt và cấu hình công cụ kubectl trong Kubernetes
Sunteco Cloud thường duy trì sự hỗ trợ các phiên bản mới nhất của Kubernetes để đảm bảo hiệu suất, bảo mật và tính năng mới nhất cho người dùng.
Access key¶
Access Key trong hệ thống của Sunteco là một cặp khóa bao gồm Access Key ID và Secret Access Key. Đây là các thông tin bảo mật cho phép hệ thống K8S có quyền truy cập vào các dịch vụ và tài nguyên trong hệ thống đám mây của Sunteco, bao gồm việc khởi tạo, quản lý cụm Kubernetes (K8s) và các hoạt động quản lý tài nguyên khác. Tạo điều kiện cho K8S có thể request thêm tài nguyên cho cụm một cách tự động (vd: Tạo thêm node, tạo thêm container volume)
Dưới đây là vai trò và cơ chế hoạt động của Access Key trong các thao tác quản lý tài nguyên:
Access Key ID và Secret Access Key:¶
Access Key ID: Đây là một chuỗi ký tự đại diện cho User hoặc hệ thống cụ thể.
Secret Access Key: Đây là khóa bảo mật tương ứng với Access Key ID, nó không được chia sẻ công khai và chỉ được sử dụng trong quá trình xác thực.
Quyền truy cập và thao tác:¶
Khi User có Access Key, họ có thể thực hiện các quyền truy cập tới hệ thống quản lý tài nguyên của Sunteco. Các quyền này có thể bao gồm:
Khởi tạo cụm Kubernetes (K8s): User có thể khởi tạo các cluster Kubernetes mới, bao gồm việc thiết lập các thông số liên quan đến cấu hình cluster, node pool, và các add-ons cần thiết.
Quản lý tài nguyên Kubernetes: Sau khi cụm Kubernetes được khởi tạo, User có thể quản lý tài nguyên như tạo, cập nhật, và xóa các workload, dịch vụ (service), hoặc cấu hình mạng lưới.
Quản lý Node và Pool: Thao tác thêm, bớt các node, chỉnh sửa cấu hình node pool.
Quản lý hệ thống lưu trữ (Storage): Kết nối, tạo volume hoặc storage để sử dụng trong cụm K8s.
Bảo mật Access Key:¶
Để đảm bảo an toàn:
Secret Access Key không bao giờ được tiết lộ công khai.
Người dùng nên luân phiên thay đổi Access Key định kỳ hoặc khi có rủi ro
Sử dụng trong các hoạt động tự động:¶
Access Key có thể được sử dụng trong các kịch bản tự động (automation), chẳng hạn như thông qua API hoặc các công cụ quản lý như Terraform hoặc Ansible, để thực hiện các hoạt động liên quan đến khởi tạo và quản lý tài nguyên K8s một cách tự động và liên tục.
Nhờ Access Key, User có thể thực hiện đầy đủ các thao tác quản lý tài nguyên trên hệ thống Sunteco, từ khởi tạo cụm K8s đến các hoạt động quản lý khác một cách an toàn và bảo mật.
Control Plane¶
Control Plane của Sunteco Cloud trong dịch vụ Managed Kubernetes (K8s) là thành phần chịu trách nhiệm quản lý và điều phối toàn bộ hoạt động của cụm Kubernetes. Nó bao gồm các dịch vụ và tiến trình quản lý như:
API Server: Thành phần chính cung cấp API cho người dùng và các thành phần khác của hệ thống. Nó là cổng chính để giao tiếp với Kubernetes và quản lý các tài nguyên trong cluster.
Scheduler: Chịu trách nhiệm phân phối các ứng dụng, pod vào các node dựa trên tài nguyên có sẵn và các yêu cầu khác của workload.
Controller Manager: Điều khiển và giám sát trạng thái của hệ thống bằng cách thực thi các hành động điều chỉnh (tự động thay đổi trạng thái tài nguyên để phù hợp với mục tiêu đã đề ra).
etcd: Kho lưu trữ dữ liệu phân tán của Kubernetes, lưu giữ toàn bộ trạng thái của cụm (cluster), từ đó đảm bảo tính nhất quán của hệ thống.
Cloud Controller Manager (nếu có): Cho phép tích hợp Kubernetes với các dịch vụ đám mây như load balancer, volume, và các tài nguyên mạng khác.
Trong trường hợp của Sun Kubernetes Spinner:
Control Plane được cung cấp dưới dạng dịch vụ quản lý hoàn toàn: Sunteco chịu trách nhiệm vận hành, bảo mật, cập nhật và giám sát Control Plane. Người dùng không cần phải lo lắng về các tác vụ bảo trì, cập nhật hay vận hành Control Plane, chỉ cần tập trung vào các hoạt động triển khai và quản lý ứng dụng.
Chi phí sử dụng Control Plane: Với Sunteco, chi phí của Control Plane thường được gói vào chi phí chung khi sử dụng Kubernetes.
CONFIG NODE POOL¶
Node Pool¶
Node Pool trong dịch vụ Sun Kubernetes Spinner (K8s) của Sunteco Cloud là một nhóm các node (máy ảo) có cùng cấu hình, được quản lý tập trung và sử dụng để chạy các workload của ứng dụng. Node Pool cung cấp sự linh hoạt và dễ dàng trong việc quản lý các node trong cụm Kubernetes, giúp tối ưu hóa tài nguyên, giảm chi phí và đảm bảo hiệu suất hoạt động. Dưới đây là chi tiết về Node Pool trong Sunteco Cloud:
Cấu Trúc Node Pool¶
Node: Là các máy ảo (VM) hoặc instance trong cloud, hoạt động như các worker node để chạy container trong Kubernetes.
Node Pool: Một nhóm các node với cùng loại tài nguyên như CPU, RAM, và các đặc tính phần cứng khác. Các node trong pool có thể mở rộng hoặc giảm xuống tùy theo nhu cầu của ứng dụng.
Tính Năng Chính của Node Pool trong SKS¶
Tự động mở rộng (Auto Scaling): Node Pool trong Sunteco có khả năng tự động mở rộng hoặc thu nhỏ tùy theo nhu cầu của ứng dụng. Khi có nhiều pod cần tài nguyên hơn, Kubernetes sẽ tự động tạo thêm node mới trong pool để xử lý.
Tùy chỉnh kích thước node: Người dùng có thể cấu hình kích thước node trong pool, chọn loại VM với số lượng CPU, RAM phù hợp với yêu cầu của workload.
Auto-healing (Tự động khôi phục): Nếu có một node gặp sự cố hoặc không hoạt động, hệ thống sẽ tự động khôi phục node mới để thay thế, đảm bảo ứng dụng luôn duy trì hoạt động ổn định.
Khả năng gắn kết với nhiều pool: Mỗi cụm Kubernetes có thể có nhiều Node Pool. Điều này cho phép người dùng linh hoạt trong việc phân bổ các node dựa trên yêu cầu của các ứng dụng khác nhau (ví dụ: workload cần hiệu năng cao chạy trên node mạnh hơn, trong khi workload ít tài nguyên có thể chạy trên các node nhỏ).
Quản Lý và Cấu Hình Node Pool¶
Tạo và xóa Node Pool: Người dùng có thể dễ dàng tạo một Node Pool mới hoặc xóa bỏ một Node Pool đã không còn cần thiết thông qua bảng điều khiển Sunteco Cloud.
Chỉnh sửa số lượng node: Sunteco Cloud cho phép điều chỉnh số lượng node trong Node Pool, người dùng có thể tăng hoặc giảm số node thủ công hoặc thiết lập tự động dựa trên nhu cầu.
Node Pool Labeling: Mỗi Node Pool có thể được gán nhãn (label) để dễ dàng quản lý và lọc theo nhu cầu. Điều này giúp phân biệt rõ ràng giữa các Node Pool phục vụ cho các ứng dụng khác nhau hoặc môi trường khác nhau (dev, test, prod).(coming soon)
Versioning: Node Pool có thể sử dụng các phiên bản Kubernetes khác nhau trong cùng một cluster. Điều này giúp người dùng có thể thử nghiệm các phiên bản mới mà không ảnh hưởng đến toàn bộ hệ thống. (coming soon)
Khả Năng Tương Thích và Tích Hợp¶
Tích hợp với các dịch vụ khác: Node Pool trong Sunteco Cloud có thể dễ dàng tích hợp với các dịch vụ lưu trữ, mạng, và bảo mật khác của Sunteco.
Hỗ trợ add-ons: Các Node Pool cũng hỗ trợ các add-ons quan trọng như hệ thống cân bằng tải (load balancing).
Lợi Ích của Node Pool trong Sunteco Cloud¶
Tối ưu hóa chi phí: Nhờ vào khả năng tự động mở rộng và tự động khôi phục, Node Pool giúp sử dụng tài nguyên hiệu quả, tránh lãng phí tài nguyên không cần thiết và tối ưu chi phí cho người dùng.
Quản lý dễ dàng: Người dùng có thể quản lý các node trong một pool dễ dàng thông qua giao diện của Sunteco Cloud hoặc công cụ dòng lệnh (CLI), giúp tăng cường hiệu quả trong quá trình vận hành.
Hiệu năng cao: Node Pool hỗ trợ nhiều loại máy ảo với hiệu năng khác nhau, từ đó giúp người dùng tối ưu hóa hiệu năng cho từng loại workload.
Một Số Tình Huống Sử Dụng¶
Ứng dụng với yêu cầu tài nguyên khác nhau: Bạn có thể tạo nhiều Node Pool với các cấu hình khác nhau cho từng loại ứng dụng (ví dụ: ứng dụng cần nhiều CPU sẽ sử dụng node với cấu hình cao, trong khi ứng dụng ít tài nguyên sử dụng node nhỏ hơn).
Môi trường phát triển và thử nghiệm: Có thể tạo các Node Pool riêng cho môi trường dev và test mà không ảnh hưởng đến sản xuất.
Select Node Type¶
Trong dịch vụ Managed Kubernetes (K8s) của Sunteco Cloud, việc lựa chọn Node Type rất quan trọng, vì nó xác định cấu hình phần cứng (CPU, RAM, ổ đĩa) mà các node trong Node Pool sẽ sử dụng. Khi select node type, bạn đang lựa chọn loại máy ảo (VM) để chạy workload của mình. Sunteco Cloud cung cấp nhiều loại node với các cấu hình khác nhau để phù hợp với các nhu cầu khác nhau của ứng dụng. Khi lựa chọn Pool Options trong dịch vụ Managed Kubernetes (K8s) của Sunteco Cloud, bạn cần xem xét các tùy chọn có sẵn để tối ưu hóa hiệu suất và chi phí cho ứng dụng của mình. Dưới đây là một số tùy chọn quan trọng liên quan đến Node Pool:
Dưới đây là các yếu tố và tùy chọn cần cân nhắc khi Select Node Type trong Sunteco Cloud:
Các Yếu Tố Cần Cân Nhắc Khi Chọn Node Type:¶
CPU: Số lượng vCPU (virtual CPU) mà node có. Các ứng dụng yêu cầu nhiều tính toán, như xử lý dữ liệu lớn hoặc AI, cần nhiều CPU hơn.
RAM: Bộ nhớ (RAM) của node. Ứng dụng có workload lớn hoặc nhiều yêu cầu bộ nhớ (như caching) cần node với dung lượng RAM cao hơn.
Storage (Lưu trữ): Dung lượng lưu trữ và loại ổ đĩa (SSD, HDD) có thể ảnh hưởng đến hiệu suất của node. Ứng dụng cần nhiều IOPS (Input/Output Operations Per Second) nên chọn ổ SSD.
Giá: Mức giá khác nhau tùy thuộc vào cấu hình. Node càng mạnh thì giá càng cao.
Workload đặc thù: Một số workload yêu cầu tài nguyên tính toán cao (CPU-bound), trong khi các workload khác có thể cần nhiều bộ nhớ (memory-bound).
Tích Hợp Với Node Pool:¶
Khi bạn Select Node Type, cấu hình này sẽ áp dụng cho tất cả các node trong Node Pool:
Bạn có thể tạo nhiều Node Pool trong cùng một cụm K8s với các loại node khác nhau, giúp tối ưu hóa tài nguyên cho các loại workload khác nhau. Ví dụ, có thể tạo một pool cho ứng dụng đòi hỏi tính toán cao với node Compute Optimized, và một pool khác cho bộ nhớ tối ưu cho database.
Tính Năng Mở Rộng và Khả Năng Tự Điều Chỉnh (Auto Scaling)¶
Sunteco Cloud hỗ trợ khả năng mở rộng (scale) các node trong Node Pool dựa trên nhu cầu của hệ thống. Dù chọn loại node nào, bạn có thể thiết lập tự động thêm hoặc giảm số lượng node trong pool khi cần thiết.
Image OS¶
Image OS là hệ điều hành mà các container trong Kubernetes sử dụng. Hệ điều hành ảnh hưởng đến hiệu suất, bảo mật và khả năng tương thích của ứng dụng. Sunteco Cloud thường hỗ trợ một số loại OS phổ biến, bao gồm:
Ubuntu: Phổ biến trong các môi trường phát triển và sản xuất, cung cấp sự ổn định và hỗ trợ rộng rãi cho các công cụ và thư viện.
Image OS Version
Image OS Version chỉ phiên bản cụ thể của hệ điều hành mà bạn đang sử dụng cho các container. Sunteco Cloud sẽ thường xuyên cập nhật các phiên bản này để cung cấp các bản vá bảo mật và cải tiến hiệu suất.
Runtime¶
Runtime là môi trường thực thi cho các container. Nó chịu trách nhiệm khởi động và quản lý vòng đời của container. Runtime phổ biến được hỗ trợ trong Kubernetes của Sunteco Cloud bao gồm: containerd: Một runtime nhẹ hơn, thường được sử dụng để thay thế Docker trong một số triển khai Kubernetes.
Node Type¶
Cấu hình Node: Chọn loại cấu hình node dựa trên yêu cầu tài nguyên (CPU, RAM) của ứng dụng.
Volume type¶
Cấu hình Lưu Trữ: Chọn loại lưu trữ cho node, bao gồm dung lượng và loại (SSD, HDD).
System Volume (GB)¶
System Volume (GB) trong dịch vụ Managed Kubernetes (K8s) của Sunteco Cloud đề cập đến dung lượng ổ đĩa lưu trữ mà mỗi node trong Node Pool sẽ sử dụng cho hệ điều hành và các ứng dụng. Đây là một yếu tố quan trọng cần cân nhắc khi cấu hình Node Pool, vì nó ảnh hưởng đến hiệu suất và khả năng lưu trữ của hệ điều hành.
Các Thông Tin Liên Quan đến System Volume
Kích Thước Dung Lượng:
Dung lượng ổ đĩa thường được cung cấp theo GB (Gigabyte).
Dung lượng yêu cầu tối thiểu là 20GB và có thể lên đến 1000GB
Kích thước này cần đủ lớn để lưu trữ hệ điều hành, các thư viện cần thiết, cũng như các file tạm thời và dữ liệu cần thiết cho ứng dụng.
Loại Lưu Trữ:
Hệ thống lưu trữ có thể là SSD (Solid State Drive) hoặc HDD (Hard Disk Drive). SSD thường nhanh hơn nhưng có giá cao hơn.
Việc chọn loại lưu trữ ảnh hưởng đến tốc độ đọc/ghi và hiệu suất tổng thể của ứng dụng.
Tính Toán Dung Lượng:
Khi cấu hình System Volume, bạn cần dự đoán dung lượng cần thiết cho:
Hệ điều hành (thường là một phần nhỏ, nhưng cần đủ cho bản cập nhật và các gói bổ sung).
Ứng dụng và các phụ thuộc (có thể yêu cầu nhiều dung lượng tùy thuộc vào kích thước và số lượng).
Dữ liệu tạm thời hoặc dữ liệu đầu vào/đầu ra (như log, cache).
Select Pool Option¶
Trong dịch vụ Managed Kubernetes (K8s) của Sunteco Cloud, việc cấu hình số lượng node là một phần quan trọng trong việc tối ưu hóa hiệu suất và chi phí. Dưới đây là thông tin về Base Node và Auto Scale Node:
The Number of Nodes¶
Số lượng node trong một Node Pool quyết định khả năng xử lý của cụm K8s. Bạn có thể chỉ định số lượng node khi tạo pool hoặc cấu hình chúng sau này. Chế độ Auto Scale Node về bản chất là việc provisioning thêm các node và join chúng vào cụm. Việc này sẽ tốn thời gian hơn đáng kể so với việc các node luôn sẵn sàng để deploy container, nhưng ngược lại sẽ có hiệu quả về mặt chi phí. Người dùng nên cân nhắc về số lượng Minimum node cho hệ thống K8S, thông thường tối thiểu là 3 cho hệ thống production
Base Node¶
Định nghĩa: Đây là số lượng node cố định mà bạn thiết lập khi tạo Node Pool. Base Node sẽ luôn hiện diện trong pool cho đến khi bạn thay đổi cấu hình.
Tính năng:
Cung cấp một nền tảng ổn định cho các ứng dụng.
Giúp đảm bảo rằng luôn có một số lượng tài nguyên sẵn sàng để xử lý các workload.
Ví dụ, nếu bạn đặt Base Node là 3, cụm sẽ luôn duy trì 3 node, bất kể tình trạng tải của ứng dụng.
Auto Scale Node¶
Định nghĩa: Đây là số lượng node có thể tăng hoặc giảm tự động dựa trên nhu cầu tài nguyên của ứng dụng. Auto Scaling cho phép bạn linh hoạt trong việc quản lý tài nguyên, tối ưu hóa chi phí và hiệu suất.
Tính năng:
Tự động mở rộng (Auto-Scaling): Nếu tải tăng cao (ví dụ, nhiều request đến ứng dụng), hệ thống sẽ tự động thêm node vào pool để đáp ứng nhu cầu.
Tự động thu nhỏ: Khi tải giảm xuống, hệ thống có thể tự động giảm số lượng node, giúp tiết kiệm chi phí.
Cấu hình Auto Scale Node thường bao gồm:
Số lượng tối thiểu và số lượng tối đa node mà hệ thống có thể mở rộng. Số lượng node tối đa sẽ tùy thuộc vào gói Control Plane mà đã chọn trước đó tại phần General
Ví dụ, nếu bạn cấu hình Auto Scale Node với tối thiểu là 2 và tối đa là 5, cụm có thể tự động điều chỉnh từ 2 đến 5 node tùy thuộc vào tải.
Số Node Recommend
Khi thiết lập một Node Pool trong dịch vụ Managed Kubernetes (K8s) của Sunteco Cloud, việc có ít nhất 3 node được khuyến nghị vì một số lý do quan trọng:
Tính Sẵn Sàng Cao (High Availability): Với 3 node, bạn có thể đảm bảo rằng ứng dụng vẫn hoạt động ngay cả khi một node gặp sự cố. Điều này giúp giảm thiểu thời gian downtime và đảm bảo dịch vụ liên tục.
Phân Tán Tải: Ba node cho phép phân tán tải giữa chúng, giúp cải thiện hiệu suất tổng thể. Nếu một node bị quá tải, các pod có thể được di chuyển hoặc phân phối lại sang các node khác.
Khả Năng Tự Khôi Phục (Self-healing): Kubernetes có khả năng tự động khôi phục pod nếu một node gặp sự cố. Với 3 node, bạn có nhiều khả năng khôi phục pod hơn, vì có các node khác sẵn sàng để chạy các workload.
Quản Lý Tình Trạng Node: Khi bạn có 3 node, bạn có thể dễ dàng theo dõi và quản lý tình trạng của các node. Nếu một node có vấn đề, bạn vẫn còn 2 node hoạt động để duy trì dịch vụ.
Autoheal the nodes in your pool¶
Tính năng Auto-heal cho các node trong Node Pool của dịch vụ Managed Kubernetes (K8s) của Sunteco Cloud cho phép tự động khôi phục các node gặp sự cố mà không cần can thiệp thủ công. Dưới đây là một số thông tin chi tiết về tính năng này:
Định Nghĩa Auto-heal¶
Auto-heal tự động phát hiện và khôi phục các node bị lỗi trong cụm K8s. Khi một node không còn hoạt động (do phần cứng, mạng hoặc các vấn đề khác), hệ thống sẽ tự động thay thế node đó bằng một node mới.
Lợi Ích của Auto-heal¶
Tăng Tính Sẵn Sàng: Giúp đảm bảo rằng luôn có đủ tài nguyên sẵn có cho ứng dụng, giảm thiểu thời gian downtime.
Quản Lý Dễ Dàng: Giảm bớt gánh nặng cho đội ngũ vận hành, vì không cần phải theo dõi và khôi phục các node gặp sự cố một cách thủ công.
Tối Ưu Hóa Hiệu Suất: Giúp duy trì hiệu suất cao cho các ứng dụng bằng cách đảm bảo rằng tất cả các node đều hoạt động trong tình trạng tốt.
Cách Hoạt Động¶
Giám Sát Node: Kubernetes sử dụng các cơ chế giám sát để kiểm tra trạng thái của từng node. Nếu một node không phản hồi hoặc không đạt yêu cầu, hệ thống sẽ đánh dấu node đó là không khả dụng.
Tạo Node Mới: Sau khi xác định node không khả dụng, hệ thống sẽ tự động tạo một node mới để thay thế. Node mới này sẽ tham gia vào pool và bắt đầu chạy các workload được phân phối.
Cấu Hình Auto-heal: Bạn có thể bật tính năng auto-heal khi tạo Node Pool hoặc cập nhật cấu hình của Node Pool hiện tại.
Theo Dõi và Quản Lý
Theo Dõi Trạng Thái Node: Sử dụng các lệnh K8s & truy cập vào cụm để theo dõi trạng thái của node, ví dụ:
kubectl get nodes
.Logs và Sự Kiện: Theo dõi logs và sự kiện liên quan đến việc khôi phục node để hiểu rõ hơn về tình trạng của cụm.
CONFIG NETWORK¶
10. Network type¶
Network Type trong Sun Kubernetes Spinner, cung cấp tính năng bảo mật và hiệu suất cao nhờ vào công nghệ eBPF. Sunteco cloud mặc định hỗ trợ loại Cilium. Việc sử dụng Cilium giúp bạn xây dựng một hệ thống mạng an toàn, hiệu quả và dễ quản lý cho các ứng dụng container.
11. Subnet¶
Subnet Cho Node: Chọn subnet cho các node trong cụm Kubernetes. Việc chọn subnet khi cấu hình mạng cho Kubernetes trong một VPC là rất quan trọng để đảm bảo rằng các pod và dịch vụ có đủ địa chỉ IP, tính bảo mật, và tính sẵn sàng.
Khi tạo một K8s cluster trong một VPC, mỗi node (máy chủ) trong cluster sẽ cần một địa chỉ IP để kết nối với mạng. Địa chỉ IP này được phân phối từ subnet đã chọn trong VPC. Việc chọn một subnet cụ thể đảm bảo rằng các node trong cluster sẽ có IP nằm trong phạm vi mà bạn kiểm soát và quản lý được.
Subnet được liệt kê là các subnet đang sẵn có của VPC chứa dịch vụ K8s đang khởi tạo. User có thể tùy ý chọn một trong các Subnet đang có để khởi tạo K8s hoặc chuyển sang tạo mới một subnet khác thuộc cùng VPC để sử dụng
12. Node’s CIDR¶
Node’s CIDR trong Kubernetes xác định dải địa chỉ IP mà các node trong cụm Kubernetes sẽ sử dụng. Điều này giúp quản lý và định tuyến lưu lượng giữa các node và pod một cách hiệu quả. Dưới đây là một số thông tin quan trọng về Node’s CIDR:
Thiết Lập CIDR cho Node: Khi bạn tạo một cụm Kubernetes, bạn cần chỉ định Node’s CIDR để xác định dải địa chỉ mà các node sẽ sử dụng. Điều này thường được thực hiện trong cấu hình mạng của cụm.
Giả sử bạn có một cụm Kubernetes với VPC CIDR là
192.168.0.0/16
, bạn có thể cấu hình Node’s CIDR như sau:Node’s CIDR:
192.168.1.0/24
Khi cấu hình Node CIDR cho một cụm Kubernetes, có một số lưu ý quan trọng mà bạn cần xem xét để đảm bảo rằng mạng hoạt động hiệu quả và không gặp vấn đề xung đột. Dưới đây là các lưu ý và ví dụ cụ thể:
1. Không Chồng Chéo Địa Chỉ IP
Đảm bảo rằng dải địa chỉ Node CIDR không chồng chéo với các dải địa chỉ IP khác trong mạng của bạn, chẳng hạn như dải của các subnet khác trong VPC hoặc dải địa chỉ IP mà bạn đã cấp cho các dịch vụ khác.
Ví dụ: Nếu bạn có VPC CIDR là
192.168.0.0/16
, hãy chọn Node CIDR như192.168.1.0/24
. Đảm bảo rằng các subnet khác như192.168.2.0/24
hoặc192.168.3.0/24
không bị xung đột.2. Kích Thước Dải Địa Chỉ
Xem xét số lượng node mà bạn dự kiến sẽ có trong cụm và chọn kích thước CIDR phù hợp. Bạn cần đảm bảo rằng dải địa chỉ đủ lớn để chứa tất cả các node.
Ví dụ: Nếu bạn dự kiến có tối đa 50 node, bạn có thể chọn
192.168.1.0/26
, cho phép tối đa 64 địa chỉ (62 địa chỉ khả dụng cho node).3. Tính Sẵn Sàng và Khả Năng Mở Rộng
Chọn CIDR có khả năng mở rộng trong tương lai. Nếu bạn có kế hoạch mở rộng cụm, hãy dự kiến đến việc mở rộng dải địa chỉ.
Ví dụ: Chọn
192.168.1.0/24
thay vì192.168.1.0/26
nếu bạn có kế hoạch mở rộng cụm đến 100 node hoặc hơn.4. Tính Bảo Mật
Đảm bảo rằng các chính sách bảo mật (Network Policies) được cấu hình đúng cho Node CIDR để ngăn chặn truy cập không mong muốn.
5. Khả Năng Tương Thích với Pod Network
Đảm bảo rằng Node CIDR không xung đột với dải địa chỉ mà bạn sử dụng cho Pod Network (các pod trong cụm). Nếu bạn sử dụng một giải pháp mạng như Calico hoặc Weave, hãy kiểm tra cấu hình CIDR của pod.
Ví dụ: Nếu bạn cấu hình Pod Network CIDR là
192.168.0.0/16
, hãy đảm bảo Node CIDR là192.168.1.0/24
để không có sự chồng chéo.
13. Pod’s CIDR & Service’s CIDR¶
Sunteco tự động tạo Service’s CIDR và Pod’s CIDR giúp giảm bớt gánh nặng cấu hình cho người dùng, đồng thời đảm bảo rằng các dải địa chỉ IP được tối ưu hóa và không xung đột. Điều này góp phần làm cho quá trình triển khai và quản lý cụm Kubernetes trở nên hiệu quả hơn.
Pod’s CIDR¶
Định Nghĩa: Là dải địa chỉ IP mà các pod trong cụm Kubernetes sẽ sử dụng. Mỗi pod được gán một địa chỉ IP riêng trong dải này.
Chức Năng: Cho phép các pod giao tiếp với nhau và với các dịch vụ khác trong cụm.
Ví Dụ: Nếu Pod’s CIDR được định nghĩa là
10.100.0.0/16
, thì các pod sẽ nhận địa chỉ từ10.168.0.1
đến10.100.15.254
.
Service’s CIDR¶
Định Nghĩa: Là dải địa chỉ IP mà các dịch vụ (services) trong Kubernetes sử dụng để định danh và cung cấp truy cập cho các pod.
Chức Năng: Cho phép các dịch vụ cung cấp một điểm truy cập ổn định cho các pod, bất kể địa chỉ IP của pod có thể thay đổi do khởi động lại hoặc mở rộng.
Ví Dụ: Nếu Service’s CIDR được định nghĩa là
10.100.16.0/20
, thì các pod sẽ nhận địa chỉ từ10.100.0.1
đến10.100.31.254
.
ADD CLUSTER PLUGIN ADD-ON¶
Việc chọn lựa và sử dụng các plugins phù hợp giúp tối ưu hóa và mở rộng các chức năng của cụm K8s theo nhu cầu cụ thể của doanh nghiệp. Các plugins mặc định thường đủ cho các nhu cầu cơ bản, trong khi các plugins tùy chọn mang lại nhiều tính năng mạnh mẽ và chuyên sâu hơn, đáp ứng các yêu cầu phức tạp và đặc thù của từng ứng dụng
User có thể tùy chọn enable hay không ở luồng tạo
Có thể Enable lại tại luồng vận hành
14. Kubernetes Dashboard¶
Kubernetes Dashboard là một công cụ hữu ích giúp người dùng tương tác với cụm Kubernetes thông qua giao diện người dùng web. Dưới đây là một số tính năng chính và lợi ích của Kubernetes Dashboard:
Tính Năng Chính¶
Giám Sát Tình Trạng Cụm:
Hiển thị trạng thái của các node, pod, và dịch vụ trong cụm.
Cung cấp thông tin chi tiết về hiệu suất và tài nguyên sử dụng.
Quản Lý Ứng Dụng:
Cho phép người dùng triển khai, cập nhật và xóa các ứng dụng chạy trong cụm Kubernetes.
Hỗ trợ tạo và quản lý các đối tượng Kubernetes như Deployments, ReplicaSets, và StatefulSets.
Gỡ Lỗi:
Cung cấp thông tin log cho các pod, giúp người dùng dễ dàng gỡ lỗi ứng dụng.
Hỗ trợ theo dõi trạng thái và sự kiện của các pod.
Quản Lý Tài Nguyên:
Hiển thị và cho phép điều chỉnh tài nguyên (CPU, RAM) mà các ứng dụng sử dụng.
Cho phép cấu hình và quản lý các secrets và config maps.
Xem Chi Tiết:
Người dùng có thể xem chi tiết các đối tượng Kubernetes và trạng thái của chúng, giúp hiểu rõ hơn về cách hoạt động của cụm.
Lợi Ích¶
Dễ Dàng Sử Dụng: Giao diện trực quan giúp người dùng dễ dàng thao tác mà không cần phải sử dụng lệnh dòng.
Tăng Cường Quản Lý: Giúp người dùng theo dõi và quản lý các tài nguyên trong cụm một cách hiệu quả hơn.
Hỗ Trợ Gỡ Lỗi Nhanh: Cung cấp thông tin chi tiết và log để nhanh chóng tìm ra vấn đề và sửa chữa.
Add-on này không được hệ thống mặc định khởi tạo cùng cụm K8s Cluster. Khi có nhu cầu User tùy ý lựa chọn khỏi tạo cùng Cluster. Khi enable Add-on này lên, Khách hàng sẽ phải trả phí theo giờ để sử dụng Add-on.
15. NGINX Ingress¶
NGINX Ingress là một thành phần quan trọng trong hệ sinh thái Kubernetes, giúp điều phối và quản lý các yêu cầu HTTP và HTTPS đến các dịch vụ chạy bên trong cụm Kubernetes. NGINX Ingress hoạt động như một reverse proxy và cung cấp khả năng điều hướng lưu lượng mạng từ bên ngoài vào các dịch vụ nội bộ của Kubernetes.
Khi enable Add-on này lên, Khách hàng sẽ phải trả phí theo giờ để sử dụng Add-on.
Note
Khi cần xuất bản ứng dụng từ container ra ngoài internet, người dùng cần enable tính năng này.
16. BlockStore Persistent CSI Drive¶
BlockStore Persistent CSI Drive là một khái niệm quan trọng trong hệ sinh thái Kubernetes, cho phép người dùng sử dụng các ổ lưu trữ bền vững (persistent storage) cho các ứng dụng chạy trong cụm. CSI (Container Storage Interface) là một tiêu chuẩn chung để tích hợp các giải pháp lưu trữ với Kubernetes, và BlockStore Persistent CSI Drive đề cập đến việc sử dụng các ổ lưu trữ khối (block storage) với giao diện CSI.
Add-on này được hệ thống mặc định khởi tạo cùng cụm K8s Cluster.
17. Load balancer Integration¶
Load Balancer Integration trong Kubernetes (K8s) đề cập đến việc tích hợp với các dịch vụ cân bằng tải (load balancer) để phân phối lưu lượng truy cập mạng đến các ứng dụng hoặc dịch vụ chạy trong cụm Kubernetes. Khi tích hợp với Load Balancer, hệ thống có thể tự động phân phối lưu lượng đến nhiều node hoặc pod, giúp tăng cường khả năng mở rộng, tính sẵn sàng và độ tin cậy của các ứng dụng.
Add-on này được hệ thống mặc định khởi tạo cùng cụm K8s Cluster.