7 Công cụ Kubernetes giúp công việc của bạn dễ dàng hơn gấp 10 lần
Làm việc với Kubernetes và quản lý các cụm Kubernetes có thể là một cơn ác mộng (vâng, tôi đã từng trải qua điều đó).
Nhưng với những công cụ phù hợp, bạn có thể quản lý nó một cách dễ dàng!
Trong bài viết này, tôi sẽ chia sẻ 7 công cụ tuyệt vời giúp bạn tiết kiệm thời gian, giảm căng thẳng và làm cho việc quản lý cụm Kubernetes trở nên đơn giản hơn bao giờ hết.
Hãy bắt đầu nào!
1. KitOps - Vũ khí bí mật cho AI/ML
KitOps giúp triển khai các mô hình AI/ML trên Kubernetes trở nên cực kỳ dễ dàng. Nếu bạn từng cố gắng đưa một mô hình máy học từ Jupyter Notebook trên máy cá nhân vào một cụm Kubernetes trong môi trường sản xuất, bạn sẽ hiểu nó có thể gây đau đầu đến mức nào.
KitOps giải quyết vấn đề này bằng cách đóng gói tất cả mọi thứ — mô hình, mã nguồn, tập dữ liệu và tệp cấu hình — thành một thứ gọi là ModelKit.
Hãy tưởng tượng ModelKit giống như container trong ngành vận tải. Cũng như container đã cách mạng hóa thương mại thế giới bằng cách tiêu chuẩn hóa cách vận chuyển hàng hóa, ModelKit giúp tiêu chuẩn hóa việc di chuyển các dự án AI/ML giữa các môi trường khác nhau.
Vì ModelKit được xây dựng dựa trên tiêu chuẩn OCI của Docker, nó có thể tích hợp mượt mà với cơ sở hạ tầng Kubernetes và các registry container mà bạn đang sử dụng.
Đây chỉ là một tệp YAML cơ bản hướng dẫn KitOps về những gì cần đóng gói:
manifestVersion: v1.0.0
package:
authors:
- Jozu
description: Updated model to analyze flight trait and passenger satisfaction data
license: Apache-2.0
name: FlightSatML
code:
- description: Jupyter notebook containing Python code with training for the model
path:./notebooks
model:
description: Flight Satisfaction and traits analyzer using Scikit-learn
framework: Scikit-learn
license: Apache-2.0
name: joblib Model
path:./models/scikit_class_model_v2.joblib
version: 1.0.0
datasets:
- description: Flight traits and traveller satisfaction training data (tabular)
name: training data
path:./data/train.csv
- description: validation data (tabular)
name: validation data
path:./data/test.csv
Kitfile là tệp cấu hình của ModelKit. Bạn có thể xem nó như một công thức hoặc Dockerfile dành cho container. Kitfile được viết bằng YAML, vì vậy nó rất dễ đọc.
Kitfile được thiết kế để đơn giản hóa việc tổ chức dự án của bạn với 4 phần chính:
- Thông tin dự án (package section)
- Đường dẫn mã nguồn (notebooks và source code)
- Định nghĩa mô hình (mỗi ModelKit chỉ chứa một mô hình duy nhất)
- Đường dẫn dữ liệu (có thể hỗ trợ nhiều tập dữ liệu)
Mỗi ModelKit đều chống giả mạo nhờ vào SHA digest và versioning. Vì vậy, dù bạn chạy mô hình trên máy cá nhân hay một cụm Kubernetes lớn trong môi trường sản xuất, KitOps đảm bảo tính tái lập (reproducibility) một cách hoàn hảo.
Khi bạn đã sẵn sàng triển khai lên Kubernetes, KitOps sẽ lo toàn bộ quá trình tạo container và cấu hình cho bạn. Mô hình của bạn được triển khai giống như bất kỳ ứng dụng container nào khác, có nghĩa là nó có thể dễ dàng mở rộng, giám sát và quản lý bằng các công cụ Kubernetes quen thuộc. Bạn không cần học thêm một bộ công cụ mới hay làm gián đoạn quy trình DevOps hiện có.
Do mọi thứ được đóng gói theo một cách tiêu chuẩn hóa, bạn sẽ không còn gặp phải vấn đề "Nó chạy tốt trên máy tôi, nhưng không chạy trên môi trường production". ModelKit đảm bảo mô hình, dependencies và dữ liệu chạy giống hệt nhau trên bất kỳ môi trường nào, từ máy cá nhân đến cụm Kubernetes sản xuất.
Sau đây là cách bạn bắt đầu làm việc với KitOps:
- Cài đặt Kit CLI từ đây: https://kitops.org/docs/cli/installation/
- Tạo tệp Kitfile cho dự án của bạn
- Thêm mô hình, tập dữ liệu và mã nguồn vào Kitfile
- Đóng gói và đẩy ModelKit lên container registry
- Kéo ModelKit về máy cục bộ hoặc sử dụng trong pipeline CI/CD
2. Lens - IDE Kubernetes thay đổi cuộc chơi
Lens là IDE Kubernetes được sử dụng rộng rãi nhất trên thế giới, nó đã thay đổi hoàn toàn cách các nhóm làm việc và tương tác với cụm Kubernetes của họ. Hãy tưởng tượng bạn có thể quan sát tất cả các thay đổi trong thời gian thực và quản lý cụm Kubernetes một cách hiệu quả, đó chính là những gì Lens mang lại.
Lens biến những thứ phức tạp trở nên đơn giản: Dù bạn quản lý một cụm Kubernetes cục bộ hay hàng chục môi trường production, mọi thứ chỉ cách bạn một cú nhấp chuột.
- Giao diện trực quan, dễ sử dụng
- Tích hợp nhật ký (logs) và số liệu (metrics) theo thời gian thực
- Quản lý cụm Kubernetes tập trung trong một UI duy nhất
Các nhóm sử dụng Lens ví nó như một công cụ “X-ray” cho Kubernetes — giúp họ nhìn xuyên qua đống rối rắm của pods, nodes, logs để dành ít thời gian hơn cho việc xử lý sự cố và tập trung nhiều hơn vào việc triển khai ứng dụng.
Lens có gì đặc biệt?
🔍 Gỡ lỗi theo thời gian thực
- Xem logs theo thời gian thực
- Theo dõi cách các pods giao tiếp với nhau
- Phát hiện sự cố ngay trên một màn hình duy nhất
⚡ Tăng năng suất
- Hỗ trợ phím tắt giúp thao tác nhanh hơn
- Tích hợp sẵn các công cụ giúp phát hiện lỗi trước khi chúng trở thành vấn đề nghiêm trọng
🌍 Khả năng truy cập đa nền tảng
- Hỗ trợ trên tất cả các hệ điều hành chính (Windows, macOS, Linux)
- Giao diện và trải nghiệm sử dụng nhất quán trên mọi nền tảng
Bạn có thể tìm hiểu cách bắt đầu với Lens tại đây: https://docs.k8slens.dev/getting-started/
3. Rancher - Trung tâm điều khiển đa cụm Kubernetes
Hãy tưởng tượng Rancher như một phòng điều khiển trung tâm, nơi bạn có thể quan sát và quản lý tất cả các cụm Kubernetes — dù chúng chạy trên máy tính cá nhân, đám mây, hay trên nhiều nhà cung cấp khác nhau.
Rancher làm gì cho bạn?
🔥 Quản lý phân quyền và xác thực tập trung
- Tích hợp RBAC (Role-Based Access Control) cho tất cả các cụm
- Admin có thể kiểm soát quyền truy cập toàn cầu từ một nơi duy nhất
📊 Giám sát và cảnh báo nâng cao
- Theo dõi tình trạng cụm Kubernetes theo thời gian thực
- Tích hợp với các hệ thống log và giám sát bên ngoài
- Hỗ trợ Helm qua Application Catalog
🚀 Tích hợp CI/CD mạnh mẽ
- Có thể kết nối với hệ thống CI/CD bên ngoài
- Nếu chưa có, Rancher cung cấp Fleet để tự động triển khai và nâng cấp workloads
Cách cài đặt nhanh trên AWS
Bạn cần chuẩn bị:
- Tài khoản AWS
- AWS Access Key & Secret Key
- Terraform được cài đặt trên máy
Tạo chính sách AWS cơ bản cho các quyền:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:*",
"Resource": "*"
}
]
}
Nhận mã và thiết lập:
# Get the quickstart code
git clone https://github.com/rancher/quickstart
cd quickstart/rancher/aws
# Set up your configcp terraform.tfvars.example terraform.tfvars
Chỉnh sửa thông tin terraform.tfvars
của bạn:
aws_access_key = "your-access-key"
aws_secret_key = "your-secret-key"
rancher_server_admin_password = "your-secure-password"
# Optional: Change these if needed
aws_region = "us-east-1" # Pick your closest region
instance_type = "t3a.large" # Bigger if you need more power
Chạy nó:
terraform init
terraform apply --auto-approve
Chỉ sau vài phút, bạn sẽ nhận được một URL như: https://rancher.xx.xx.xx.xx.sslip.io
Mở trình duyệt và đăng nhập với:
- Username: admin
- Password: (mật khẩu bạn đã đặt trong terraform.tfvars)
Những gì bạn nhận được khi dùng Rancher:
- Máy chủ Rancher chạy trên một cụm Kubernetes riêng
- Một cụm Kubernetes riêng để triển khai workloads
- SSH keys trong thư mục quickstart/rancher/aws để truy cập máy chủ
Điểm mạnh của Rancher khi quản lý nhiều cụm Kubernetes:
- Bạn có thể quản lý hàng chục cụm Kubernetes trên nhiều môi trường mà không cần nhảy giữa các công cụ khác nhau
- Cập nhật cụm? Chỉ một cú nhấp chuột
- Ai đã thay đổi cấu hình tuần trước? Một cú nhấp chuột là có ngay
Điều làm Rancher khác biệt? Đó chính là tự động hóa các tác vụ nhàm chán:
- Các bản cập nhật mất hàng giờ? Giờ đây chạy nền tự động
- Các kiểm tra bảo mật? Diễn ra tự động
- Khi có sự cố xảy ra? Bạn biết ngay chỗ cần kiểm tra
Bạn có thể tìm hiểu thêm về cách bắt đầu với Rancher tại đây: https://rancher.com/docs/
4. Argo CD - GitOps đơn giản
Argo CD là một công cụ liên tục giám sát kho lưu trữ Git của bạn và giữ cho các cụm Kubernetes của bạn đồng bộ với những gì có trong mã của bạn. Bạn không phải kiểm tra và lo lắng về những gì có trên github và những gì đang được triển khai. Argo CD sẽ làm điều đó thay bạn.
Cách thức hoạt động của nó là khi bạn thực hiện thay đổi đối với các tệp của mình trong Git, Argo CD sẽ tự động nhận thấy những thay đổi này. Sau đó, nó sẽ cho bạn biết chính xác những gì sẽ thay đổi trong cụm của bạn trước khi thực hiện bất kỳ hành động nào. Và nếu có sự cố xảy ra, nó có thể quay lại phiên bản hoạt động cuối cùng.
Các tính năng chính:
- Đồng bộ liên tục: Argo CD liên tục kiểm tra kho lưu trữ Git của bạn và đảm bảo cụm của bạn khớp với những gì có trong mã của bạn - nếu có gì khác biệt, nó sẽ tự động sửa.
- Dễ dàng khôi phục: Nếu quá trình triển khai gặp sự cố, bạn có thể nhanh chóng quay lại phiên bản hoạt động trước đó một cách dễ dàng.
- Tích hợp đơn giản: Hoạt động với các công cụ như Helm và Kustomize và bạn có thể thấy chính xác những thay đổi giữa các phiên bản.
Sau đây là cách bắt đầu làm việc với Argo CD:
Cài đặt Argo CD vào cụm của bạn :
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
Truy cập Máy chủ API Argo CD (sử dụng chuyển tiếp cổng):
kubectl port-forward svc/argocd-server -n argocd 8080:443
Nhận mật khẩu quản trị ban đầu của bạn :
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
Bạn có thể tìm hiểu thêm về cách thiết lập và sử dụng Argo CD bằng cách làm theo hướng dẫn bắt đầu chính thức tại đây: https://argo-cd.readthedocs.io/en/stable/getting_started/
5. K9s - Công cụ hoàn hảo cho những người yêu thích Terminal
Nếu bạn giống tôi và không thích phải gõ hàng đống lệnh kubectl, thì K9s là công cụ bạn nên thử ngay!
Đây là một giao diện UI chạy trên terminal, giúp bạn quản lý các cụm Kubernetes nhanh hơn, trực quan hơn mà vẫn giữ được tốc độ của các công cụ dòng lệnh.
Nó giống như một trung tâm điều khiển cho các cụm của bạn trực tiếp trong thiết bị đầu cuối. Nó sẽ theo dõi các thay đổi theo thời gian thực và cho bạn biết chính xác những gì bạn cần biết tại bất kỳ thời điểm nào.
Nhưng quan trọng nhất, hầu như mọi thứ bạn làm với kubectl, bạn đều có thể làm với cái này, chỉ là nhanh hơn nhiều. Bạn muốn xem một số nhật ký? Nhấn một phím. Bạn muốn biết điều gì đang chiếm hết tài nguyên của bạn? Nó ở ngay đó. Cảm giác rất tự nhiên.
Hướng dẫn cài đặt:
K9s có sẵn cho tất cả các nền tảng chính. Sau đây là cách cài đặt:
Đối với người dùng MacOS:
# Using Homebrew (recommended)
brew install derailed/k9s/k9s
# Or using MacPorts
sudo port install k9s
Đối với người dùng Linux:
# Using LinuxBrew
brew install derailed/k9s/k9s
# Using PacMan (Arch Linux)
pacman -S k9s
Đối với người dùng Windows:
# Using Scoop
scoop install k9s
# Using Chocolatey
choco install k9s
Lưu ý thiết lập quan trọng:
K9s yêu cầu thiết bị đầu cuối 256 màu. Trên các hệ thống dựa trên Unix, hãy thiết lập môi trường TERM của bạn:
export TERM=xterm-256color
Để chỉnh sửa tài nguyên, hãy thiết lập trình soạn thảo ưa thích của bạn:
export KUBE_EDITOR=vim# or your preferred editor
Sau khi cài đặt k9s, bạn chỉ cần nhập lệnh terminal để khởi chạy giao diện.
Đọc thêm về cách bắt đầu với K9 tại đây: https://k9scli.io/
6. Octant - Giao diện Kubernetes dành cho lập trình viên
Octant là một công cụ được tạo ra để nâng cao trải nghiệm của nhà phát triển trên Kubernetes và cho phép một cách tiếp cận mới để hiểu các hệ thống phân tán phức tạp. Octant cung cấp một cái nhìn rõ ràng về trạng thái của các cụm Kubernetes của bạn thông qua một giao diện web trực quan.
Nó rất hữu ích khi hiểu mối quan hệ phức tạp giữa các tài nguyên và khi khắc phục sự cố triển khai ứng dụng.
Khả năng cốt lõi:
- Chế độ xem tài nguyên: Octant cho bạn biết chính xác cách các tài nguyên của bạn được kết nối và những gì đang diễn ra bên trong cụm của bạn, giúp bạn dễ dàng phát hiện sự cố và hiểu được mối quan hệ.
- Hỗ trợ Plugin: Bạn có thể thêm chế độ xem và công cụ tùy chỉnh của riêng mình thông qua plugin, điều này rất hữu ích khi bạn cần xem thông tin cụ thể về ứng dụng của mình.
- Công cụ dành cho nhà phát triển: Đi kèm với các tính năng thiết thực như xem nhật ký, chỉnh sửa cấu hình và số liệu cơ bản, để bạn có thể xử lý hầu hết các tác vụ hàng ngày mà không cần chuyển đổi giữa các công cụ khác nhau.
Có lẽ tính năng đặc trưng nhất của Octant là trình xem tài nguyên hiển thị mối quan hệ phân cấp giữa các đối tượng Kubernetes.
Khi mở bất kỳ Pod nào, ConfigMaps, Secrets hoặc Services liên quan sẽ hiển thị trong UI dưới dạng phần tử con thụt lề của các mối quan hệ:.
Công cụ này rất hữu ích khi cần hiểu trạng thái ứng dụng của bạn trong cụm. Nó có thể cắm được, do đó các nhóm có thể thêm hình ảnh trực quan và chức năng riêng theo nhu cầu của họ, cho dù đó là hiển thị số liệu từ hệ thống giám sát hay trạng thái tài nguyên tùy chỉnh.
Để bắt đầu sử dụng Octant, bạn chỉ cần:
- Tải xuống bản phát hành mới nhất từ kho lưu trữ chính thức: https://octant.dev/
- Khởi động Octant và trỏ nó đến kubeconfig của bạn
- Mở
localhost:7777
trong trình duyệt web của bạn
7. Kubevious - Phát hiện vấn đề trước khi chúng bùng nổ
Kubevious là bảng điều khiển Kubernetes chuyên dụng để phân tích và xác thực cấu hình. Nó giúp các nhóm xác định các vấn đề tiềm ẩn trong cấu hình cụm trước khi các vấn đề thực tế xuất hiện ở cấp độ sản xuất.
Nhưng điều thực sự làm cho Kubevious nổi bật là khả năng phân tích mối quan hệ giữa các tài nguyên và khả năng tự động phát hiện các vấn đề về cấu hình.
Ví dụ, khi bạn đang ở chế độ xem Pod, bạn sẽ có thể hình dung ConfigMaps, Secrets và các chính sách mạng liên quan đến pod này theo bố cục phân cấp đẹp mắt, cho bạn thấy nội dung nào phụ thuộc vào nội dung nào.
Giao diện người dùng Kubevious có tính đồ họa cao. Kubevous hiển thị các đối tượng Kubernetes theo cấu trúc cây. Mỗi nút đi kèm với một tập hợp các thuộc tính duy nhất.
Một ví dụ khác, một nút Namespace hiển thị các ứng dụng tiêu thụ nhiều tài nguyên nhất, nhưng nút ServiceAccount - một ma trận các quy tắc RBAC. Cảnh báo lỗi và cảnh báo có thể nhìn thấy ở mỗi cấp nút cây cho toàn bộ cây con.
Nó khác nhau thế nào?
- Mối quan hệ trực quan: Kubevious hiển thị cách các đối tượng Kubernetes của bạn được kết nối với nhau trong chế độ xem cây đơn giản, giúp bạn dễ dàng hiểu cách mọi thứ kết hợp với nhau.
- Kiểm tra cấu hình: Tự động quét thiết lập của bạn để tìm các lỗi thường gặp và sự cố bảo mật, sau đó thông báo cho bạn về các sự cố trước khi chúng gây ra lỗi thực sự.
- Phân tích tài nguyên: Bạn có thể xem chính xác lượng CPU và bộ nhớ mà ứng dụng của bạn đang sử dụng và nhanh chóng phát hiện xem có phần nào trong hệ thống đang sử dụng nhiều tài nguyên hơn mức cần thiết hay không.
Để bắt đầu sử dụng Kubevious, hãy truy cập liên kết tại đây: https://kubevious.io/docs/
Kết luận
Quản lý Kubernetes không hề dễ dàng - tất cả chúng ta đều từng ở đó, nhìn chằm chằm vào một thiết bị đầu cuối, cố gắng tìm ra lý do tại sao các pod của chúng ta không khởi động được. Những công cụ này sẽ giúp cuộc sống của bạn bớt khó khăn hơn nếu bạn sử dụng chúng đúng cách.
Mỗi công cụ này đều cần thời gian để làm quen và theo thời gian, bạn sẽ cảm thấy thoải mái hơn với từng công cụ. Nhưng những công cụ này chắc chắn sẽ giúp hành trình của bạn với Kubernetes dễ dàng hơn nhiều.
Cảm ơn các bạn đã theo dõi!
All rights reserved