kubectl là gì? Cách cài đặt và các lệnh kubectl thông dụng

Ngày đăng:

Cập nhật mới:

09/11/2026

Tìm hiểu kubectl là gì, cách cài đặt trên Linux, Windows, macOS và các lệnh kubectl thông dụng để quản lý, triển khai và debug Kubernetes.

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-la-gi-1
Khái niệm vè Kubectl

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:

  1. Người dùng nhập lệnh kubectl trong terminal, chẳng hạn kubectl get pods.
  2. 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.
  3. Công cụ gửi yêu cầu đến Kubernetes API Server thông qua Kubernetes API.
  4. 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.
  5. 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/kubectl

Kiểm tra sau khi cài đặt:

kubectl version --client

Nế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 kubectl

Sau khi hoàn tất, kiểm tra phiên bản:

kubectl version --client

Nế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.

huong-dan-cai-dat-kubectl-tren-macos
Hướng dẫn cài đặt kubectl trên Macos

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.kubectl

Sau khi quá trình cài đặt hoàn tất, mở lại PowerShell và kiểm tra:

kubectl version --client

Ngoà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 version

Nế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-info

Tiếp theo, thử lấy danh sách Node:

kubectl get nodes

Nế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 wide

Trong 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ệnhChức năngVí dụ
-nChỉ định namespacekubectl get pods -n default
-o wideHiển thị thông tin mở rộngkubectl get pods -o wide
-o yamlXuất thông tin dưới định dạng YAMLkubectl get pod nginx -o yaml
-wTheo dõi thay đổi trạng thái liên tụckubectl get pods -w
-lLọc tài nguyên theo labelkubectl get pods -l app=nginx
–all-namespacesHiển thị tài nguyên thuộc tất cả namespacekubectl get pods –all-namespaces
-fChỉ định file manifestkubectl apply -f deployment.yaml
–contextChọ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ệnhTác dụngKhi nào dùng
kubectl getLiệt kê tài nguyênKiểm tra Pod, Deployment, Service
kubectl describeHiển thị thông tin chi tiếtTìm nguyên nhân Pod không hoạt động
kubectl explainTra cứu cấu trúc và trường cấu hình của tài nguyênTìm hiểu thuộc tính trong file YAML
kubectl api-resourcesLiệ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 pods

Muốn xem chi tiết một Pod cụ thể:

kubectl describe pod nginx

Nế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.containers

Lệ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ệnhTác dụngKhi nào dùng
kubectl createTạo tài nguyên mớiTạo nhanh Deployment, Namespace, Secret
kubectl applyTạo hoặc cập nhật tài nguyên theo manifestQuản lý ứng dụng bằng file YAML
kubectl editChỉ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 diffSo sánh cấu hình khai báo với trạng thái hiện tạiKiểm tra thay đổi trước khi apply
kubectl deleteXóa tài nguyênGỡ 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.yaml

Kiểm tra sự khác biệt giữa manifest và trạng thái hiện tại:

kubectl diff -f deployment.yaml

Xóa Deployment:

kubectl delete deployment nginx

Cầ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ệnhTác dụngKhi nào dùng
kubectl scaleĐiều chỉnh số lượng replicasTăng hoặc giảm số Pod
kubectl rollout statusTheo dõi trạng thái rolloutKiểm tra ứng dụng cập nhật thành công chưa
kubectl rollout historyXem lịch sử triển khaiKiểm tra các phiên bản Deployment
kubectl rollout undoHoàn tác về revision trướcKhắc phục một lần cập nhật gặp lỗi
kubectl set imageThay đổi image của containerCậ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=3

Theo dõi quá trình triển khai:

kubectl rollout status deployment/nginx

Cập nhật image:

kubectl set image deployment/nginx nginx=nginx:1.27

Nế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/nginx

Lệ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ệnhTác dụngKhi nào dùng
kubectl logsXem log containerKiểm tra lỗi ứng dụng
kubectl execThực thi lệnh bên trong containerKiểm tra môi trường chạy ứng dụng
kubectl port-forwardChuyển tiếp cổng từ máy local đến Pod hoặc ServiceTruy cập ứng dụng để kiểm thử
kubectl topXem mức sử dụng CPU và RAMTheo dõi tài nguyên Pod hoặc Node
kubectl cpSao chép file giữa máy local và containerLấy log hoặc đưa file vào container

Ví dụ, xem log của Pod:

kubectl logs nginx

Nế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 --previous

Truy cập shell bên trong container:

kubectl exec -it nginx -- /bin/sh

Chuyển tiếp cổng 8080 trên máy local đến cổng 80 của Pod:

kubectl port-forward pod/nginx 8080:80

Sau đó, 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 nodes

Cá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 createkubectl apply
Cách quản lýTheo mệnh lệnh (Imperative)Theo khai báo (Declarative)
Cách thực hiệnChỉ định trực tiếp tài nguyên hoặc tạo từ manifestKhai báo trạng thái mong muốn trong manifest
Tạo tài nguyên mớiCóCó
Cập nhật tài nguyênKhông phải cách cập nhật khai báo thông thườngCó
Quản lý thay đổiPhù 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ụngThử nghiệm, tạo nhanh tài nguyênTriể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=nginx

Lệ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.yaml

kubectl 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 default

Lệ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 default

Kế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 default

Nếu container đã khởi động lại, sử dụng:

kubectl logs <pod-name> --previous -n default

Log 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/sh

Sau 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ỗiNguyên nhân thường gặpLệnh kiểm tra đầu tiên
PendingThiếu CPU/RAM, node không phù hợp, PVC chưa được cấp phátkubectl describe pod <pod-name>
ImagePullBackOffSai tên image, tag không tồn tại, lỗi xác thực registrykubectl describe pod <pod-name>
CrashLoopBackOffỨng dụng liên tục thoát, cấu hình sai, thiếu dependencykubectl logs <pod-name> –previous
Không kết nối được clusterSai kubeconfig, context, endpoint hoặc lỗi xác thựckubectl 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.

kubeconfig-va-context
Kubeconfig và context hoạt động như thế nào

2. Chuyển đổi context và namespace

Để xem danh sách context đã được cấu hình:

kubectl config get-contexts

Kiểm tra context đang sử dụng:

kubectl config current-context

Chuyển sang context khác:

kubectl config use-context staging

Nếu muốn thay đổi namespace mặc định của context hiện tại:

kubectl config set-context --current --namespace=development

Sau 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-context

Tiếp theo, kiểm tra các Node để xác nhận cluster đích:

kubectl get nodes

Khi cần chỉ định rõ cluster cho một thao tác, có thể sử dụng –context:

kubectl get pods --context=production -n default

Ví 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=production

Vớ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=kubectl

Sau đó, lệnh:

kubectl get pods

có 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)' >> ~/.bashrc

Vớ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-context

Lệ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.

Đánh giá bài viết
Với nhiều năm kinh nghiệm trong lĩnh vực công nghệ thông tin, đặc biệt là hạ tầng máy chủ, hệ thống mạng và bảo mật, Nguyễn Đức Hòa hiện đã đảm nhận vai trò Trưởng phòng Kỹ thuật tại công ty LANIT – đơn vị cung cấp giải pháp công nghệ tiên tiến cho doanh nghiệp. Anh không chỉ là người trực tiếp xây dựng, phát triển và vận hành các hệ thống kỹ thuật phức tạp mà còn là người truyền lửa và định hướng chiến lược kỹ thuật cho toàn bộ đội ngũ của LANIT. Tư vấn duy duy hệ thống Chắc chắn, khả năng xử lý sự cố nhanh nhạy cảm cùng tầm nhìn phát triển thời hạn đã giúp anh trở thành một trong những nhân sự chủ yếu trong quá trình mở rộng hành động theo mô hình dịch vụ công nghệ của LANIT.
Chat với chúng tôi qua Zalo!
Chat với chúng tôi qua Zalo!