kubectl là công cụ dòng lệnh giúp người dùng tương tác, triển khai ứng dụng và quản lý tài nguyên trong Kubernetes thông qua Kubernetes API. Thông qua kubectl, bạn có thể kiểm tra trạng thái Pod, xem log, cập nhật Deployment, quản lý namespace hoặc xử lý sự cố mà không cần thao tác trực tiếp trên giao diện đồ họa. Bài viết dưới đây sẽ giúp bạn hiểu cách kubectl hoạt động, hướng dẫn cài đặt trên Linux, macOS, Windows và tổng hợp những lệnh thường dùng trong quá trình vận hành Kubernetes.
kubectl là gì?
kubectl là công cụ dòng lệnh (CLI) chính thức của Kubernetes, cho phép người dùng gửi yêu cầu đến Kubernetes API Server để tạo, xem, cập nhật và xóa các tài nguyên trong cluster. Đây là công cụ được sử dụng phổ biến bởi Developer, DevOps Engineer và System Administrator khi triển khai hoặc vận hành ứng dụng trên Kubernetes.
Tên kubectl thường được đọc là “kube control” hoặc “kube C-T-L”. Công cụ này không trực tiếp chạy ứng dụng hay điều khiển container mà đóng vai trò giao tiếp giữa người dùng và Kubernetes Control Plane.
Thông qua kubectl, bạn có thể thực hiện nhiều công việc như:
- Triển khai ứng dụng bằng các file cấu hình YAML.
- Kiểm tra trạng thái Pod, Deployment, Service và Node.
- Xem log, truy cập vào container để kiểm tra sự cố.
- Điều chỉnh số lượng bản sao của ứng dụng (replicas).
- Cập nhật phiên bản ứng dụng và theo dõi quá trình rollout.
- Quản lý namespace, context và các tài nguyên trong cluster.

kubectl hoạt động như thế nào?
kubectl hoạt động bằng cách chuyển đổi lệnh người dùng nhập trong terminal thành các yêu cầu HTTP gửi đến Kubernetes API Server. Công cụ này sử dụng thông tin cấu hình và xác thực để xác định cluster cần kết nối, sau đó gửi yêu cầu đến API Server để xử lý.
Quy trình cơ bản diễn ra như sau:
- Người dùng nhập lệnh kubectl trong terminal, chẳng hạn kubectl get pods.
- kubectl đọc cấu hình kết nối từ kubeconfig để xác định API Server, thông tin người dùng và context đang sử dụng.
- Công cụ gửi yêu cầu đến Kubernetes API Server thông qua Kubernetes API.
- API Server xác thực, kiểm tra quyền truy cập và xử lý yêu cầu theo cơ chế của Kubernetes.
- Trạng thái tài nguyên được truy xuất hoặc cập nhật trong cluster. API Server trả kết quả về cho kubectl để hiển thị trên terminal.
Ví dụ, khi chạy kubectl get pods, kubectl gửi yêu cầu lấy danh sách Pod đến API Server. Sau khi nhận kết quả, công cụ hiển thị tên Pod, trạng thái, số lần khởi động lại và thời gian hoạt động.
Thông thường, kubeconfig được lưu tại thư mục ~/.kube/config trên Linux và macOS hoặc %USERPROFILE%\.kube\config trên Windows. Người dùng cũng có thể chỉ định một file cấu hình khác thông qua biến môi trường KUBECONFIG hoặc tùy chọn –kubeconfig.
Cách cài đặt kubectl và kiểm tra kết nối
kubectl có thể cài đặt trên Linux, macOS và Windows. Bạn có thể tải trực tiếp binary từ Kubernetes hoặc sử dụng trình quản lý gói phù hợp với hệ điều hành.
Trước khi cài đặt, cần lưu ý rằng kubectl chỉ là công cụ quản lý, không tự tạo ra Kubernetes cluster. Để thực hành các lệnh, bạn cần có một cluster đang hoạt động và tài khoản được cấp quyền truy cập.
1. Cài đặt kubectl trên Linux, macOS và Windows
Trên Linux
Với Ubuntu hoặc các bản phân phối Linux tương thích, bạn có thể tải binary kubectl từ máy chủ phân phối chính thức của Kubernetes.
Ví dụ, tải phiên bản ổn định mới nhất dành cho kiến trúc AMD64:
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"Cấp quyền thực thi và cài đặt vào thư mục hệ thống:
chmod +x kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectlKiểm tra sau khi cài đặt:
kubectl version --clientNếu sử dụng máy chủ ARM64, cần tải binary tương ứng với kiến trúc linux/arm64 thay vì linux/amd64.
Trên macOS
Người dùng macOS có thể cài đặt kubectl bằng Homebrew:
brew install kubectlSau khi hoàn tất, kiểm tra phiên bản:
kubectl version --clientNếu không sử dụng Homebrew, bạn cũng có thể tải binary dành cho kiến trúc CPU tương ứng từ trang cài đặt chính thức của Kubernetes.

Trên Windows
Với Windows, một cách cài đặt đơn giản là sử dụng Winget trong PowerShell:
winget install -e --id Kubernetes.kubectlSau khi quá trình cài đặt hoàn tất, mở lại PowerShell và kiểm tra:
kubectl version --clientNgoài ra, bạn có thể tải file kubectl.exe từ trang phân phối chính thức của Kubernetes và thêm thư mục chứa file vào biến môi trường PATH.
2. Kiểm tra phiên bản và kết nối cluster
Sau khi cài đặt, bạn cần kiểm tra phiên bản kubectl và khả năng kết nối đến Kubernetes cluster.
Sử dụng lệnh:
kubectl version --clientĐể xem thêm thông tin phiên bản của cả client và server, chạy:
kubectl versionNếu đã có kubeconfig hợp lệ và cluster đang hoạt động, kiểm tra thông tin kết nối bằng:
kubectl cluster-infoTiếp theo, thử lấy danh sách Node:
kubectl get nodesNếu terminal hiển thị danh sách Node cùng trạng thái hoạt động, kubectl đã có thể truy cập cluster và thực hiện yêu cầu tương ứng.
Một lưu ý quan trọng là phiên bản kubectl cần nằm trong phạm vi lệch tối đa một phiên bản minor so với Kubernetes API Server, có thể cũ hơn hoặc mới hơn một phiên bản. Ví dụ, kubectl 1.32 tương thích với control plane 1.31, 1.32 và 1.33. Bạn nên kiểm tra phiên bản trước khi sử dụng để hạn chế lỗi không tương thích.
Nếu chưa có cluster để thực hành, bạn có thể tìm hiểu và tham khảo dịch vụ Kubernetes của LANIT để lựa chọn môi trường triển khai phù hợp với nhu cầu vận hành.
Cú pháp kubectl và các cờ lệnh thường dùng
Để sử dụng kubectl hiệu quả, trước tiên cần nắm được cấu trúc của một câu lệnh. Hầu hết thao tác đều tuân theo cú pháp chung:
kubectl [command] [TYPE] [NAME] [flags]Trong đó:
- command: Xác định thao tác cần thực hiện, chẳng hạn get, create, apply, delete hoặc describe.
- TYPE: Loại tài nguyên Kubernetes cần thao tác, chẳng hạn pods, deployments, services hoặc nodes.
- NAME: Tên cụ thể của tài nguyên. Nếu bỏ qua, kubectl có thể trả về danh sách các tài nguyên cùng loại.
- flags: Các tùy chọn bổ sung để điều chỉnh phạm vi hoặc định dạng kết quả.
Ví dụ:
kubectl get pods -n default -o wideTrong câu lệnh này, get yêu cầu lấy thông tin, pods xác định loại tài nguyên, -n default giới hạn phạm vi trong namespace default và -o wide hiển thị thêm thông tin chi tiết.
Ngoài ra, kubectl hỗ trợ nhiều cờ lệnh giúp thao tác nhanh và chính xác hơn:
| Cờ lệnh | Chức năng | Ví dụ |
| -n | Chỉ định namespace | kubectl get pods -n default |
| -o wide | Hiển thị thông tin mở rộng | kubectl get pods -o wide |
| -o yaml | Xuất thông tin dưới định dạng YAML | kubectl get pod nginx -o yaml |
| -w | Theo dõi thay đổi trạng thái liên tục | kubectl get pods -w |
| -l | Lọc tài nguyên theo label | kubectl get pods -l app=nginx |
| –all-namespaces | Hiển thị tài nguyên thuộc tất cả namespace | kubectl get pods –all-namespaces |
| -f | Chỉ định file manifest | kubectl apply -f deployment.yaml |
| –context | Chọn context cụ thể | kubectl get pods –context=production |
Bạn có thể sử dụng kubectl help hoặc kubectl help [command] để xem hướng dẫn chi tiết của từng nhóm lệnh.
Các lệnh kubectl thông dụng theo từng nhóm
kubectl cung cấp nhiều lệnh phục vụ quá trình quản lý Kubernetes. Thay vì ghi nhớ toàn bộ câu lệnh, bạn nên làm quen với những nhóm thao tác thường xuyên sử dụng trong quá trình triển khai và vận hành ứng dụng.
1. Lệnh xem và tra cứu tài nguyên
Đây là nhóm lệnh giúp kiểm tra trạng thái tài nguyên và tìm hiểu cấu hình trong cluster.
| Lệnh | Tác dụng | Khi nào dùng |
| kubectl get | Liệt kê tài nguyên | Kiểm tra Pod, Deployment, Service |
| kubectl describe | Hiển thị thông tin chi tiết | Tìm nguyên nhân Pod không hoạt động |
| kubectl explain | Tra cứu cấu trúc và trường cấu hình của tài nguyên | Tìm hiểu thuộc tính trong file YAML |
| kubectl api-resources | Liệt kê các loại tài nguyên API hỗ trợ | Kiểm tra tài nguyên có thể quản lý |
Ví dụ, để xem danh sách Pod trong namespace hiện tại:
kubectl get podsMuốn xem chi tiết một Pod cụ thể:
kubectl describe pod nginxNếu chưa biết một trường cấu hình trong manifest có ý nghĩa gì, bạn có thể tra cứu bằng:
kubectl explain pod.spec.containersLệnh này giúp xem mô tả các trường thuộc cấu hình container trong Pod mà không cần tìm kiếm tài liệu bên ngoài.
2. Lệnh tạo, cập nhật và xóa tài nguyên
Nhóm lệnh này phục vụ việc quản lý vòng đời các đối tượng Kubernetes.
| Lệnh | Tác dụng | Khi nào dùng |
| kubectl create | Tạo tài nguyên mới | Tạo nhanh Deployment, Namespace, Secret |
| kubectl apply | Tạo hoặc cập nhật tài nguyên theo manifest | Quản lý ứng dụng bằng file YAML |
| kubectl edit | Chỉnh sửa cấu hình tài nguyên trực tiếp | Điều chỉnh nhanh một tài nguyên đang tồn tại |
| kubectl diff | So sánh cấu hình khai báo với trạng thái hiện tại | Kiểm tra thay đổi trước khi apply |
| kubectl delete | Xóa tài nguyên | Gỡ bỏ Pod, Deployment hoặc Service |
Ví dụ, tạo một Deployment chạy Nginx:
kubectl create deployment nginx --image=nginxÁp dụng cấu hình từ file YAML:
kubectl apply -f deployment.yamlKiểm tra sự khác biệt giữa manifest và trạng thái hiện tại:
kubectl diff -f deployment.yamlXóa Deployment:
kubectl delete deployment nginxCần lưu ý rằng kubectl delete có thể làm mất tài nguyên hoặc dữ liệu liên quan. Trước khi thực hiện, nên kiểm tra đúng tên đối tượng, namespace và cluster đang kết nối.
3. Lệnh quản lý Deployment và rollout
Deployment giúp quản lý các bản sao Pod và hỗ trợ cập nhật ứng dụng. kubectl cung cấp các lệnh để điều chỉnh số lượng bản sao, theo dõi quá trình triển khai và quay lại phiên bản trước.
| Lệnh | Tác dụng | Khi nào dùng |
| kubectl scale | Điều chỉnh số lượng replicas | Tăng hoặc giảm số Pod |
| kubectl rollout status | Theo dõi trạng thái rollout | Kiểm tra ứng dụng cập nhật thành công chưa |
| kubectl rollout history | Xem lịch sử triển khai | Kiểm tra các phiên bản Deployment |
| kubectl rollout undo | Hoàn tác về revision trước | Khắc phục một lần cập nhật gặp lỗi |
| kubectl set image | Thay đổi image của container | Cập nhật phiên bản ứng dụng |
Ví dụ, tăng số Pod của Deployment nginx lên 3:
kubectl scale deployment nginx --replicas=3Theo dõi quá trình triển khai:
kubectl rollout status deployment/nginxCập nhật image:
kubectl set image deployment/nginx nginx=nginx:1.27Nếu phiên bản mới gặp sự cố, có thể yêu cầu Kubernetes quay lại revision trước:
kubectl rollout undo deployment/nginxLệnh undo chỉ khôi phục cấu hình triển khai theo revision trước đó, không đảm bảo khôi phục dữ liệu ứng dụng đã thay đổi hoặc bị mất.
4. Lệnh làm việc với Pod và container
Đây là nhóm lệnh được sử dụng thường xuyên khi kiểm tra ứng dụng đang chạy trong Kubernetes.
| Lệnh | Tác dụng | Khi nào dùng |
| kubectl logs | Xem log container | Kiểm tra lỗi ứng dụng |
| kubectl exec | Thực thi lệnh bên trong container | Kiểm tra môi trường chạy ứng dụng |
| kubectl port-forward | Chuyển tiếp cổng từ máy local đến Pod hoặc Service | Truy cập ứng dụng để kiểm thử |
| kubectl top | Xem mức sử dụng CPU và RAM | Theo dõi tài nguyên Pod hoặc Node |
| kubectl cp | Sao chép file giữa máy local và container | Lấy log hoặc đưa file vào container |
Ví dụ, xem log của Pod:
kubectl logs nginxNếu Pod chứa nhiều container, cần chỉ định container bằng tùy chọn -c:
kubectl logs nginx -c appĐể xem log của lần chạy trước sau khi container khởi động lại:
kubectl logs nginx --previousTruy cập shell bên trong container:
kubectl exec -it nginx -- /bin/shChuyển tiếp cổng 8080 trên máy local đến cổng 80 của Pod:
kubectl port-forward pod/nginx 8080:80Sau đó, bạn có thể truy cập ứng dụng tại http://localhost:8080. Port-forward chủ yếu phục vụ kiểm thử và truy cập tạm thời, không thay thế Service hoặc Ingress để công khai ứng dụng ra Internet.
Để xem mức sử dụng tài nguyên:
kubectl top pods
kubectl top nodesCác lệnh top cần cluster có Metrics Server hoặc nguồn cung cấp Metrics tương thích. Nếu chưa có nguồn Metrics, kubectl có thể trả về lỗi không lấy được dữ liệu sử dụng tài nguyên.
Khi nào nên dùng kubectl create và kubectl apply?
kubectl create và kubectl apply đều có thể được sử dụng để tạo tài nguyên Kubernetes nhưng khác nhau về cách quản lý cấu hình. Hiểu rõ sự khác biệt giúp bạn lựa chọn phương pháp phù hợp, đặc biệt khi triển khai ứng dụng trong môi trường có nhiều người cùng vận hành.
| Tiêu chí | kubectl create | kubectl apply |
| Cách quản lý | Theo mệnh lệnh (Imperative) | Theo khai báo (Declarative) |
| Cách thực hiện | Chỉ định trực tiếp tài nguyên hoặc tạo từ manifest | Khai báo trạng thái mong muốn trong manifest |
| Tạo tài nguyên mới | Có | Có |
| Cập nhật tài nguyên | Không phải cách cập nhật khai báo thông thường | Có |
| Quản lý thay đổi | Phù hợp thao tác nhanh, đơn lẻ | Thuận tiện theo dõi và quản lý cấu hình |
| Tình huống sử dụng | Thử nghiệm, tạo nhanh tài nguyên | Triển khai và duy trì ứng dụng |
kubectl create phù hợp khi cần tạo nhanh một tài nguyên cụ thể. Ví dụ:
kubectl create deployment nginx --image=nginxLệnh trên tạo một Deployment sử dụng image Nginx mà không cần chuẩn bị file YAML trước.
Trong khi đó, kubectl apply phù hợp khi muốn quản lý tài nguyên dựa trên cấu hình khai báo. Ví dụ:
kubectl apply -f deployment.yamlkubectl sẽ đọc manifest và tạo tài nguyên nếu chưa tồn tại hoặc cập nhật tài nguyên theo cấu hình được khai báo.
Một ưu điểm của apply là file YAML có thể được lưu trong Git để theo dõi lịch sử thay đổi, hỗ trợ làm việc nhóm và tích hợp vào quy trình CI/CD hoặc GitOps.
Với môi trường production, nên ưu tiên cách quản lý khai báo bằng kubectl apply kết hợp manifest được kiểm soát phiên bản. Tuy nhiên, create vẫn hữu ích trong những tình huống cần thao tác nhanh hoặc khởi tạo tài nguyên đơn giản. Việc lựa chọn phụ thuộc vào quy trình quản lý và kiểm soát thay đổi của hệ thống.
Cách kiểm tra và xử lý lỗi Kubernetes bằng kubectl
Khi ứng dụng không hoạt động như mong đợi, kubectl giúp người vận hành kiểm tra trạng thái tài nguyên, đọc sự kiện và xem log để xác định nguyên nhân. Thay vì chạy nhiều lệnh ngẫu nhiên, bạn nên thực hiện theo trình tự từ tổng quan đến chi tiết.
Bước 1: Kiểm tra trạng thái Pod bằng get
kubectl get pods -n defaultLệnh này hiển thị trạng thái Pod, số lần khởi động lại và thời gian hoạt động. Nếu Pod không ở trạng thái Running hoặc liên tục khởi động lại, bạn cần kiểm tra sâu hơn.
Bước 2: Xem thông tin chi tiết bằng describe
kubectl describe pod <pod-name> -n defaultKết quả cung cấp thông tin về trạng thái container, điều kiện hoạt động, lịch sử sự kiện và các lỗi xảy ra trong quá trình lập lịch hoặc khởi chạy Pod.
Đặc biệt, phần Events thường giúp phát hiện lỗi không tải được image, thiếu tài nguyên hoặc không đáp ứng điều kiện scheduling.
Bước 3: Kiểm tra log bằng logs
kubectl logs <pod-name> -n defaultNếu container đã khởi động lại, sử dụng:
kubectl logs <pod-name> --previous -n defaultLog giúp xác định lỗi phát sinh từ ứng dụng, chẳng hạn kết nối cơ sở dữ liệu thất bại, thiếu biến môi trường hoặc cấu hình không hợp lệ.
Bước 4: Truy cập container bằng exec
kubectl exec -it <pod-name> -n default -- /bin/shSau khi truy cập, bạn có thể kiểm tra file cấu hình, biến môi trường, tiến trình hoặc kết nối mạng bên trong container. Cần lưu ý không phải image nào cũng có sẵn shell như /bin/sh hoặc /bin/bash.
Các lỗi Kubernetes thường gặp và cách kiểm tra
Một số trạng thái lỗi phổ biến có thể được phát hiện thông qua kubectl:
| Trạng thái lỗi | Nguyên nhân thường gặp | Lệnh kiểm tra đầu tiên |
| Pending | Thiếu CPU/RAM, node không phù hợp, PVC chưa được cấp phát | kubectl describe pod <pod-name> |
| ImagePullBackOff | Sai tên image, tag không tồn tại, lỗi xác thực registry | kubectl describe pod <pod-name> |
| CrashLoopBackOff | Ứng dụng liên tục thoát, cấu hình sai, thiếu dependency | kubectl logs <pod-name> –previous |
| Không kết nối được cluster | Sai kubeconfig, context, endpoint hoặc lỗi xác thực | kubectl config current-context |
Với lỗi Pending, cần kiểm tra phần Events để biết Pod có bị từ chối lập lịch do thiếu tài nguyên hoặc điều kiện node hay không.
Với ImagePullBackOff, hãy kiểm tra tên image, tag, quyền truy cập registry và cấu hình imagePullSecrets nếu sử dụng registry riêng.
Với CrashLoopBackOff, nên xem log của lần chạy trước, kiểm tra lệnh khởi động, biến môi trường và các dependency mà ứng dụng cần.
Nếu kubectl không thể kết nối cluster, hãy kiểm tra kubeconfig, context hiện tại, địa chỉ API Server và quyền truy cập. Không nên vội kết luận cluster đã ngừng hoạt động chỉ dựa trên một thông báo lỗi kết nối.
Quản lý nhiều cluster và namespace bằng context
Khi làm việc với nhiều Kubernetes cluster, chẳng hạn môi trường Development, Staging và Production, việc chuyển đổi kết nối chính xác rất quan trọng. kubectl sử dụng context để xác định cluster, user và namespace mặc định cho các lệnh được thực hiện.
1. Kubeconfig và context hoạt động như thế nào?
Kubeconfig là file cấu hình chứa thông tin cần thiết để kubectl kết nối và xác thực với Kubernetes cluster. Một file có thể lưu nhiều cấu hình cluster và người dùng khác nhau.
Context là một cấu hình kết hợp ba thành phần:
- Cluster: Kubernetes cluster mà người dùng muốn kết nối.
- User: Thông tin xác thực được sử dụng khi gửi yêu cầu.
- Namespace: Namespace mặc định cho các thao tác nếu lệnh không chỉ định namespace khác.
Nhờ context, bạn có thể chuyển đổi giữa nhiều cluster mà không cần thay đổi toàn bộ cấu hình kết nối mỗi lần.

2. Chuyển đổi context và namespace
Để xem danh sách context đã được cấu hình:
kubectl config get-contextsKiểm tra context đang sử dụng:
kubectl config current-contextChuyển sang context khác:
kubectl config use-context stagingNếu muốn thay đổi namespace mặc định của context hiện tại:
kubectl config set-context --current --namespace=developmentSau thao tác này, các lệnh không chỉ định namespace sẽ mặc định sử dụng namespace development. Bạn vẫn có thể chỉ định namespace khác bằng tùy chọn -n.
3. Cách tránh thao tác nhầm cluster khi sử dụng kubectl
Một trong những rủi ro khi quản lý nhiều cluster là thực hiện nhầm lệnh trên môi trường Production thay vì Development hoặc Staging. Điều này có thể dẫn đến việc xóa nhầm tài nguyên, cập nhật sai phiên bản ứng dụng hoặc làm gián đoạn dịch vụ.
Trước khi thực hiện thao tác có tính phá hủy, hãy kiểm tra context hiện tại:
kubectl config current-contextTiếp theo, kiểm tra các Node để xác nhận cluster đích:
kubectl get nodesKhi cần chỉ định rõ cluster cho một thao tác, có thể sử dụng –context:
kubectl get pods --context=production -n defaultVí dụ, nếu muốn xóa một Pod trên cluster Production, hãy xác nhận lại context và namespace trước khi thực hiện:
kubectl config current-context
kubectl get pods -n default --context=production
kubectl delete pod <pod-name> -n default --context=productionVới các hệ thống quan trọng, nên kết hợp kiểm tra context với cơ chế phân quyền RBAC, quy trình phê duyệt và kiểm soát thay đổi. Không nên chỉ dựa vào trí nhớ của người vận hành để xác định môi trường đang kết nối.
Mẹo và công cụ giúp quản lý Kubernetes hiệu quả hơn
Ngoài các lệnh cơ bản, bạn có thể sử dụng alias, autocomplete và một số công cụ mở rộng để giảm thao tác thủ công khi làm việc với Kubernetes.
1. Alias và autocomplete cho kubectl
Alias giúp rút ngắn câu lệnh thường dùng. Ví dụ, thay vì nhập kubectl nhiều lần, bạn có thể đặt bí danh k:
alias k=kubectlSau đó, lệnh:
kubectl get podscó thể viết ngắn thành:
k get podsĐể thiết lập autocomplete trên Bash:
source <(kubectl completion bash)Nếu muốn tự động kích hoạt mỗi lần mở terminal, thêm dòng sau vào file ~/.bashrc:
echo 'source <(kubectl completion bash)' >> ~/.bashrcVới Zsh, sử dụng:
source <(kubectl completion zsh)Autocomplete giúp gợi ý lệnh, loại tài nguyên và các tùy chọn khi nhập, hạn chế lỗi cú pháp và tăng tốc độ thao tác.
2. Mở rộng kubectl bằng Krew, kubectx và kubens
kubectl hỗ trợ plugin để bổ sung các lệnh và chức năng không có sẵn trong công cụ mặc định.
Một số công cụ đáng chú ý:
- Krew: Trình quản lý plugin cho kubectl, giúp tìm kiếm, cài đặt và quản lý các plugin mở rộng.
- kubectx: Hỗ trợ chuyển đổi nhanh giữa các Kubernetes context.
- kubens: Giúp chuyển đổi namespace thuận tiện mà không cần nhập lại tùy chọn -n trong từng lệnh.
Các công cụ này đặc biệt hữu ích với người thường xuyên làm việc trên nhiều cluster hoặc namespace khác nhau.
3. Các công cụ hỗ trợ quản lý Kubernetes
Bên cạnh kubectl, một số công cụ khác có thể hỗ trợ quá trình triển khai và vận hành Kubernetes:
- K9s: Cung cấp giao diện terminal tương tác để xem và quản lý tài nguyên Kubernetes trực quan hơn.
- Helm: Công cụ quản lý package cho Kubernetes, sử dụng Helm Chart để đóng gói, cấu hình và triển khai ứng dụng.
- K8sGPT: Hỗ trợ phân tích và giải thích các vấn đề trong Kubernetes bằng AI, giúp người vận hành tìm hiểu nguyên nhân sự cố.
- Botkube: Cung cấp khả năng tương tác và tự động hóa thao tác Kubernetes thông qua ChatOps.
- Cast AI: Hỗ trợ tối ưu tài nguyên, chi phí và hoạt động vận hành hạ tầng Kubernetes.
Mỗi công cụ giải quyết một nhóm nhu cầu riêng. kubectl vẫn là giao diện dòng lệnh nền tảng để tương tác với Kubernetes API, trong khi các công cụ trên bổ sung khả năng quản lý, tự động hóa hoặc phân tích chuyên sâu.
Câu hỏi thường gặp về kubectl
kubectl đọc là gì?
kubectl thường được đọc là “kube control” hoặc “kube C-T-L”. Đây là công cụ dòng lệnh chính được sử dụng để tương tác với Kubernetes cluster thông qua Kubernetes API.
kubectl và kubeadm khác nhau như thế nào?
kubectl là công cụ dòng lệnh dùng để quản lý tài nguyên và tương tác với Kubernetes cluster. Trong khi đó, kubeadm là công cụ hỗ trợ khởi tạo và thiết lập một Kubernetes cluster theo các cấu hình tiêu chuẩn. Nói cách khác, kubectl phục vụ công việc quản lý và vận hành, còn kubeadm chủ yếu hỗ trợ quá trình bootstrap cluster.
kubectl create và kubectl apply khác nhau thế nào?
kubectl create sử dụng cách quản lý theo mệnh lệnh, cho phép tạo tài nguyên bằng câu lệnh hoặc manifest. kubectl apply sử dụng cách quản lý khai báo, đọc file YAML hoặc JSON để tạo mới và cập nhật tài nguyên theo cấu hình mong muốn. Apply thường phù hợp hơn khi quản lý ứng dụng lâu dài bằng manifest được kiểm soát phiên bản.
Làm sao biết kubectl đang kết nối với cluster nào?
Bạn có thể sử dụng lệnh:
kubectl config current-contextLệnh này hiển thị context đang được kích hoạt. Để xem toàn bộ context đã cấu hình, sử dụng kubectl config get-contexts. Trước khi thực hiện thao tác quan trọng, nên xác nhận lại context và namespace để tránh tác động nhầm môi trường.
kubectl có dùng được với Minikube và Kubernetes được quản lý không?
Có. kubectl có thể tương tác với Minikube, Kubernetes tự triển khai hoặc các dịch vụ Kubernetes được quản lý, miễn là bạn có kubeconfig hợp lệ, phiên bản tương thích và đủ quyền truy cập API Server. Với Minikube, bạn có thể chuyển context bằng kubectl config use-context minikube.
Xóa nhầm tài nguyên bằng kubectl delete có khôi phục được không?
Khả năng khôi phục phụ thuộc vào loại tài nguyên và cơ chế quản lý của Kubernetes. Ví dụ, nếu xóa một Pod thuộc Deployment, Kubernetes thường tạo Pod thay thế để duy trì số lượng replicas mong muốn. Tuy nhiên, nếu xóa Deployment, PersistentVolume hoặc dữ liệu lưu trữ, việc khôi phục sẽ phụ thuộc vào cấu hình, reclaim policy và bản sao lưu hiện có. Kubernetes không cung cấp cơ chế undo chung cho mọi lệnh delete.
kubectl là công cụ không thể thiếu khi làm việc với Kubernetes, từ triển khai ứng dụng, kiểm tra tài nguyên đến xử lý sự cố và quản lý nhiều cluster. Để sử dụng hiệu quả, bạn nên nắm vững cú pháp, ghi nhớ các nhóm lệnh thường dùng và hiểu cách kubeconfig, context xác định môi trường kết nối.
Đặc biệt, hãy luôn kiểm tra cluster và namespace trước khi thực hiện các thao tác thay đổi hoặc xóa tài nguyên. Nếu doanh nghiệp cần một môi trường Kubernetes ổn định để triển khai và vận hành ứng dụng, có thể tham khảo dịch vụ Managed Kubernetes của LANIT để được tư vấn giải pháp phù hợp.











