kubectl 速查手册
概述
kubectl 是 Kubernetes 的命令行工具,用于管理 Kubernetes 集群和资源。
常用命令
集群管理
-
kubectl cluster-info: 显示集群信息 -
kubectl get nodes: 显示节点列表 -
kubectl get pods: 显示 pod 列表 -
kubectl get svc: 显示服务列表 -
kubectl get deployments: 显示 deployment 列表
资源管理
-
kubectl create: 创建资源(pod、deployment、svc 等) -
kubectl delete: 删除资源 -
kubectl get: 显示资源列表 -
kubectl describe: 显示资源详细信息 -
kubectl edit: 编辑资源
pod 管理
-
kubectl run: 运行 pod -
kubectl exec: 进入 pod 容器 -
kubectl logs: 显示 pod 日志 -
kubectl port-forward: 转发 pod 端口
deployment 管理
-
kubectl create deployment: 创建 deployment -
kubectl rollout: 滚动更新 deployment -
kubectl scale: 缩放 deployment
服务管理
-
kubectl expose: 创建暴露服务 -
kubectl get svc: 显示服务列表
namespace 管理
-
kubectl create namespace: 创建 namespace -
kubectl delete namespace: 删除 namespace -
kubectl get namespace: 显示 namespace 列表
快捷键
-
-n或--namespace: 指定 namespace -
-f或--filename: 指定文件名 -
-o或--output: 指定输出格式 -
--watch: 监视资源变化
帮助
-
kubectl help: 显示帮助信息 -
kubectl explain: 解释 Kubernetes 资源
版本
-
kubectl version: 显示 kubectl 版本
常用别名
一键设置 bash 别名(复制直接执行):
echo "alias k='kubectl'; alias kg='kubectl get'; alias kd='kubectl describe'; alias ke='kubectl edit'; alias kr='kubectl run'; alias kex='kubectl exec'; alias klo='kubectl logs'; alias kpf='kubectl port-forward'; alias ksc='kubectl scale'; alias kdel='kubectl delete'; alias kcr='kubectl create';" >> ~/.bashrc && source ~/.bashrc
-
k=kubectl -
kg=kubectl get -
kd=kubectl describe -
ke=kubectl edit -
kr=kubectl run -
kex=kubectl exec -
klo=kubectl logs -
kpf=kubectl port-forward -
ksc=kubectl scale -
kdel=kubectl delete -
kcr=kubectl create
快速参考
- 创建 pod:
kubectl run -i --rm --tty <pod-name> --image=<image-name> - 进入 pod 容器:
kubectl exec -it <pod-name> /bin/bash - 显示 pod 日志:
kubectl logs -f <pod-name> - 删除 pod:
kubectl delete pod <pod-name>
Tips:记录一些额外的常用命令
1. 列出命名空间下的所有资源
kubectl api-resources --verbs=list --namespaced=true -o name | xargs -n 1 kubectl get -n <namespace>
2. 设置当前上下文的默认 namespace
kubectl config set-context --current --namespace=unit1
可以使用 --persist 来使设置持久化:
kubectl config set-context --current --namespace=unit1 --persist