Kubernetes 命令速查
kubectl 全命令速查手册,涵盖集群管理、工作负载、网络、存储、安全等,支持搜索和一键复制
集群信息(8)
查看集群信息
显示集群 Master 和服务的端点地址
kubectl cluster-info查看 API 版本
列出集群支持的 API 版本列表
kubectl api-versions查看 API 资源
列出集群中可用的 API 资源类型
kubectl api-resources查看组件状态
查看集群控制平面组件(scheduler、controller-manager 等)状态
kubectl get componentstatuses查看当前上下文
显示当前使用的 kubeconfig 上下文
kubectl config current-context切换上下文
切换到指定的集群上下文
kubectl config use-context <context-name>查看所有上下文
列出所有可用的 kubeconfig 上下文
kubectl config get-contexts设置默认命名空间
为当前上下文设置默认命名空间
kubectl config set-context --current --namespace=xxxNamespace(3)
查看命名空间
列出集群中所有命名空间
kubectl get namespaces
# 简写
kubectl get ns创建命名空间
创建新的命名空间
kubectl create namespace <name>
# 简写
kubectl create ns <name>删除命名空间
删除指定命名空间及其下所有资源
kubectl delete namespace <name>
kubectl delete ns <name>Pod 管理(8)
查看 Pod 列表
列出 Pod,支持多种输出格式和命名空间
kubectl get pods
# 显示更多列(节点、IP 等)
kubectl get pods -o wide
# 所有命名空间
kubectl get pods --all-namespaces
# 指定命名空间
kubectl get pods -n <namespace>查看 Pod 详情
显示 Pod 的详细配置、事件和状态
kubectl describe pod <pod-name>
kubectl describe pod <pod-name> -n <namespace>创建 Pod
使用 run 命令快速创建单容器 Pod
kubectl run nginx --image=nginx
kubectl run nginx --image=nginx --port=80
kubectl run nginx --image=nginx --restart=Never删除 Pod
删除指定 Pod
kubectl delete pod <pod-name>
kubectl delete pod <pod-name> -n <namespace>
# 强制删除
kubectl delete pod <pod-name> --force --grace-period=0进入容器
在运行中的 Pod 容器内执行命令
kubectl exec -it <pod-name> -- bash
kubectl exec -it <pod-name> -c <container-name> -- sh
# 执行单条命令
kubectl exec <pod-name> -- ls /app端口转发
将本地端口转发到 Pod 端口,用于本地访问
kubectl port-forward pod/<pod-name> 8080:80
kubectl port-forward svc/<svc-name> 8080:80 -n <namespace>复制文件
在 Pod 与本地之间复制文件
# 从 Pod 复制到本地
kubectl cp <namespace>/<pod-name>:/path/file ./local-file
# 从本地复制到 Pod
kubectl cp ./local-file <namespace>/<pod-name>:/path/file查看 Pod 资源使用
显示 Pod 的 CPU 和内存使用量(需 metrics-server)
kubectl top pod
kubectl top pod -n <namespace>
kubectl top pod --sort-by=cpuDeployment(9)
创建 Deployment
创建 Deployment 工作负载
kubectl create deployment nginx --image=nginx
kubectl create deployment nginx --image=nginx --replicas=3查看 Deployment
列出 Deployment 及其副本状态
kubectl get deployments
kubectl get deploy
kubectl get deploy -o wide更新镜像
更新 Deployment 中容器的镜像版本
kubectl set image deployment/<name> <container>=<image>:<tag>
kubectl set image deployment/nginx nginx=nginx:1.25扩缩容
调整 Deployment 的副本数量
kubectl scale deployment <name> --replicas=5
kubectl scale deploy nginx --replicas=3自动扩缩容 HPA
创建水平 Pod 自动扩缩容
kubectl autoscale deployment <name> --min=2 --max=10 --cpu-percent=80回滚
回滚到上一个或指定版本
kubectl rollout undo deployment/<name>
kubectl rollout undo deployment/nginx --to-revision=2查看发布历史
查看 Deployment 的滚动更新历史
kubectl rollout history deployment/<name>
kubectl rollout history deployment/nginx --revision=2暂停/恢复发布
暂停或恢复 Deployment 的滚动更新
kubectl rollout pause deployment/<name>
kubectl rollout resume deployment/<name>重启 Deployment
重启 Deployment 触发滚动更新
kubectl rollout restart deployment/<name>Service(4)
创建 Service
为 Deployment 或 Pod 创建 Service
kubectl expose deployment nginx --port=80 --target-port=80
kubectl expose pod nginx --port=80 --name=nginx-svc查看 Service
列出 Service 及其 ClusterIP、端口
kubectl get svc
kubectl get services
kubectl get svc -o wide查看 Endpoints
查看 Service 背后的 Pod IP 列表
kubectl get endpoints
kubectl get ep删除 Service
删除指定 Service
kubectl delete svc <service-name>
kubectl delete service nginx -n <namespace>ConfigMap & Secret(7)
创建 ConfigMap(literal)
从字面量创建 ConfigMap
kubectl create configmap my-config --from-literal=key1=value1 --from-literal=key2=value2创建 ConfigMap(from file)
从文件或目录创建 ConfigMap
kubectl create configmap my-config --from-file=config.yml
kubectl create configmap my-config --from-file=dir/查看 ConfigMap
列出和查看 ConfigMap 详情
kubectl get configmaps
kubectl get cm
kubectl describe configmap <name>创建 Secret(generic)
创建通用 Secret
kubectl create secret generic my-secret --from-literal=password=xxx
kubectl create secret generic my-secret --from-file=./secret.txt创建 Secret(tls)
创建 TLS 证书 Secret
kubectl create secret tls my-tls --cert=path/tls.crt --key=path/tls.key创建 Secret(docker-registry)
创建镜像拉取凭证 Secret
kubectl create secret docker-registry regcred --docker-server=registry.example.com --docker-username=user --docker-password=pass查看 Secret
列出 Secret,Base64 解码查看内容
kubectl get secrets
kubectl get secret <name> -o yaml
# 解码 base64
echo '<base64-value>' | base64 -d持久化存储(3)
PersistentVolume
查看集群中的 PV 资源
kubectl get pv
kubectl describe pv <pv-name>PersistentVolumeClaim
查看 PVC 及其绑定状态
kubectl get pvc
kubectl get pvc -n <namespace>
kubectl describe pvc <pvc-name>StorageClass
查看存储类
kubectl get sc
kubectl get storageclass
kubectl describe storageclass <name>Ingress(2)
查看 Ingress
列出 Ingress 资源
kubectl get ingress
kubectl get ing
kubectl describe ingress <name>创建 Ingress
创建 Ingress 定义路由规则
kubectl create ingress example --rule='example.com/=svc:80'
kubectl create ingress example --rule='foo.com/bar=svc:8080'Job & CronJob(4)
创建 Job
创建一次性任务 Job
kubectl create job my-job --image=busybox -- echo hello
kubectl create job my-job --from=cronjob/my-cronjob查看 Job
列出 Job 及其完成状态
kubectl get jobs
kubectl get job <name> -o yaml创建 CronJob
创建定时任务 CronJob
kubectl create cronjob my-cron --image=busybox --schedule='*/1 * * * *' -- echo hello查看 CronJob
列出 CronJob
kubectl get cronjobs
kubectl get cjRBAC 权限(5)
查看 ClusterRole
列出集群级别的角色
kubectl get clusterroles
kubectl describe clusterrole <name>创建 Role
创建命名空间级别的 Role
kubectl create role pod-reader --verb=get,list,watch --resource=pods创建 RoleBinding
将 Role 绑定到用户或组
kubectl create rolebinding read-pods --role=pod-reader --user=user1 --namespace=default创建 ClusterRoleBinding
将 ClusterRole 绑定到用户或组
kubectl create clusterrolebinding cluster-admin-binding --clusterrole=cluster-admin --user=user1检查权限
检查当前用户是否具有某操作的权限
kubectl auth can-i create pods
kubectl auth can-i --list
kubectl auth can-i create pods --as=user1节点管理(8)
查看节点
列出集群节点及其状态
kubectl get nodes
kubectl get nodes -o wide查看节点详情
显示节点的详细配置和资源
kubectl describe node <node-name>标记节点不可调度
将节点标记为不可调度(维护前)
kubectl cordon <node-name>恢复节点调度
取消 cordon,恢复节点调度
kubectl uncordon <node-name>驱逐节点上的 Pod
排空节点,将 Pod 迁移到其他节点
kubectl drain <node-name>
kubectl drain <node-name> --ignore-daemonsets --delete-emptydir-data给节点打标签
为节点添加或修改标签
kubectl label node <node-name> disk=ssd
kubectl label node <node-name> disk-给节点打污点
为节点添加污点,控制 Pod 调度
kubectl taint nodes <node-name> key=value:NoSchedule
kubectl taint nodes <node-name> key:NoSchedule-查看节点资源使用
显示节点的 CPU 和内存使用量
kubectl top node
kubectl top node --sort-by=memory日志与调试(6)
查看日志
查看 Pod 容器日志
kubectl logs <pod-name>
kubectl logs -f <pod-name>
kubectl logs <pod-name> --previous
kubectl logs <pod-name> -c <container>
kubectl logs <pod-name> --tail=100查看事件
查看集群事件
kubectl get events
kubectl get events -n <namespace> --sort-by='.lastTimestamp'运行调试容器
在 Pod 中运行临时调试容器
kubectl debug <pod-name> -it --image=busybox --target=<container>查看资源的 YAML
以 YAML 格式输出资源定义
kubectl get pod <name> -o yaml
kubectl get deploy <name> -o yaml试运行
模拟应用配置,不实际执行
kubectl apply --dry-run=client -o yaml -f deployment.yaml
kubectl apply --dry-run=server -f deployment.yaml解释资源字段
查看资源类型的字段说明
kubectl explain pod
kubectl explain pod.spec.containersHelm(8)
添加仓库
添加 Helm Chart 仓库
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update搜索 Chart
在仓库中搜索 Chart
helm search repo nginx
helm search repo bitnami/nginx安装 Chart
安装 Helm Release
helm install my-nginx bitnami/nginx
helm install my-nginx bitnami/nginx -f values.yaml
helm install my-nginx bitnami/nginx --set replicaCount=3查看 Release
列出已安装的 Helm Release
helm list
helm list -A
helm list --all升级 Release
升级 Helm Release 到新版本或配置
helm upgrade my-nginx bitnami/nginx
helm upgrade my-nginx bitnami/nginx -f values.yaml回滚 Release
回滚 Helm Release 到指定版本
helm rollback my-nginx
helm rollback my-nginx 2卸载 Release
卸载 Helm Release
helm uninstall my-nginx
helm uninstall my-nginx --keep-history查看 values
查看 Chart 的默认 values
helm show values bitnami/nginx
helm get values my-nginx