Skip to content

Lệnh kubectl được giải thích

Các lệnh kubectl dùng hàng ngày, nhóm theo công việc: đọc cluster, kiểm tra workload, áp dụng và rollback thay đổi, expose service, quản lý node và tạo object cấu hình. Mỗi hàng ghép lệnh với một lời gọi thực tế.

kubectl là tay cầm của bạn trên một Kubernetes cluster. Mô hình là khai báo: bạn thường apply một manifest (apply -f) thay vì tạo thứ gì đó theo kiểu mệnh lệnh, rồi đọc lại kết quả (get, describe, logs). Các lệnh dưới đây bao phủ vận hành hằng ngày; kết hợp chúng với flag namespace (-n name) khi bạn không ở namespace mặc định.

Bảng tham chiếu · 59 mục
59 of 59 rows
Cluster và context
Hiển thị nơi control plane và các service cốt lõi đang chạy.kubectl cluster-info
Liệt kê các cluster và namespace mà bạn có thể chuyển đổi giữa chúng.kubectl config get-contexts
Chuyển sang context của cluster hoặc namespace khác.kubectl config use-context my-prod
Đặt namespace mặc định cho context hiện tại.kubectl config set-context --current --namespace=staging
Đổi tên một context đã lưu trong kubeconfig.kubectl config rename-context old-name prod
Liệt kê mọi loại tài nguyên mà cluster biết.kubectl api-resources
In phiên bản Kubernetes của client và server.kubectl version
Hiện các trường mà một tài nguyên hỗ trợ, đọc từ API schema.kubectl explain pod.spec.containers
Kiểm tra người dùng hiện tại có được phép thực hiện một hành động hay không.kubectl auth can-i delete pods
Kiểm tra workload
Liệt kê pod và trạng thái của chúng; thêm -o wide để xem node và IP.kubectl get pods -A
Liệt kê các tài nguyên phổ biến của một namespace trong một lần gọi.kubectl get all
Thêm cột node và IP vào bất kỳ lệnh get nào.kubectl get pods -o wide
In một tài nguyên dưới dạng manifest YAML đầy đủ phía sau nó.kubectl get deploy/web -o yaml
Liệt kê deployment và bao nhiêu replica đã sẵn sàng.kubectl get deployments
Liệt kê statefulset và các replica sẵn sàng của chúng.kubectl get statefulsets
Liệt kê job chạy theo lô và cronjob định kỳ.kubectl get jobs,cronjobs
Hiện sự kiện, nhãn và trạng thái của một pod.kubectl describe pod web-abc
Hiện dung lượng, điều kiện và các pod đang chạy của một node.kubectl describe node node-1
In stdout của pod; -f để theo dõi, --previous cho lần crash trước.kubectl logs -f web-abc
Chạy một lệnh bên trong pod đang chạy.kubectl exec -it web-abc -- sh
CPU và bộ nhớ trực tiếp của pod hoặc node (cần metrics-server).kubectl top pods
Liệt kê sự kiện gần đây như pull thất bại và backoff.kubectl get events -A --sort-by=.lastTimestamp
Liệt kê các rule ingress và địa chỉ load balancer của chúng.kubectl get ingress
Sao chép tệp giữa máy của bạn và một pod đang chạy.kubectl cp web-abc:/var/log/app.log ./app.log
Chặn cho đến khi tài nguyên đạt một điều kiện.kubectl wait --for=condition=ready pod -l app=web
Khởi động một pod dùng một lần từ image, không cần manifest.kubectl run debug --rm -it --image=busybox -- sh
Apply, scale và rollout
Hiện apply sẽ thay đổi gì, mà không thật sự thay đổi.kubectl diff -f deploy.yaml
Tạo hoặc cập nhật tài nguyên từ một tệp manifest.kubectl apply -f deploy.yaml
Áp dụng manifest và xóa các object không còn nằm trong chúng.kubectl apply -f dir/ --prune -l app=web
Mở một tài nguyên đang chạy trong trình soạn thảo và áp dụng khi lưu.kubectl edit deploy/web
Thay đổi một vài trường trên một tài nguyên đang chạy.kubectl patch deploy/web --patch-file fix.json
Trỏ container của deployment sang image mới.kubectl set image deploy/web web=nginx:1.27
Thay thế một object, xóa rồi tạo lại khi cần.kubectl replace --force -f deploy.yaml
Xóa các tài nguyên được khai báo trong một tệp manifest.kubectl delete -f deploy.yaml
Thay đổi số replica của một deployment.kubectl scale deploy/web --replicas=4
Theo dõi một rollout đến khi hoàn tất hoặc thất bại.kubectl rollout status deploy/web
Liệt kê các phiên bản mà một rollout đã đi qua.kubectl rollout history deploy/web
Khởi động lại từng pod của một deployment, lần lượt từng cái.kubectl rollout restart deploy/web
Rollback một deployment về phiên bản trước.kubectl rollout undo deploy/web
Service và mạng
Liệt kê service cùng loại và cluster IP của chúng.kubectl get svc
Hiện những pod IP nào đang đứng sau mỗi service.kubectl get endpoints web
Tạo một service đứng trước một nhóm pod; --type=NodePort hoặc LoadBalancer để truy cập từ ngoài cluster.kubectl expose deploy/web --port=80
Hiện địa chỉ load balancer phía sau mỗi ingress (alpha).kubectl ingress status -A
Liệt kê các chính sách hạn chế lưu lượng của pod.kubectl get networkpolicies
Tunnel một cổng cục bộ đến pod hoặc service.kubectl port-forward svc/web 8080:80
Node và bảo trì
Liệt kê các node của cluster và trạng thái của chúng.kubectl get nodes -o wide
Đánh dấu node không thể lên lịch (không nhận pod mới).kubectl cordon node-1
Đánh dấu node có thể lên lịch trở lại.kubectl uncordon node-1
Trục xuất pod khỏi một node và đánh dấu nó không thể lên lịch.kubectl drain node-1 --ignore-daemonsets
Thêm hoặc xóa một taint khiến pod tránh xa node.kubectl taint node node-1 key=value:NoSchedule
Xóa ngay một pod bị kẹt, bỏ qua việc tắt máy graceful.kubectl delete pod web-abc --grace-period=0 --force
Object và cấu hình
Tạo một namespace mới để giới hạn phạm vi tài nguyên.kubectl create namespace staging
Liệt kê namespace và trạng thái của chúng.kubectl get namespaces
Lưu các khóa hoặc tệp cấu hình thành một object trong cluster.kubectl create configmap app --from-file=config.yaml
Liệt kê configmap trong namespace.kubectl get configmaps
Lưu mật khẩu hoặc chứng chỉ thành một secret.kubectl create secret generic db --from-literal=password=s3cret
Liệt kê secret trong namespace.kubectl get secrets
Gắn hoặc gỡ nhãn trên một tài nguyên.kubectl label pod web-abc tier=backend
Gắn metadata mà selector không thể khớp.kubectl annotate deploy/web release=july