200字
K8S 常用命令大全 🚀
2025-12-03
2025-12-03
K8S

📦 一、集群信息查看

# 查看集群信息
kubectl cluster-info

# 查看节点信息
kubectl get nodes
kubectl get nodes -o wide  # 显示更详细信息

# 查看组件状态
kubectl get componentstatuses

🎯 二、资源管理(CRUD操作)

创建资源

# 从文件创建
kubectl create -f <文件名>.yaml
kubectl apply -f <文件名>.yaml  # 推荐,可更新

# 从目录批量创建
kubectl apply -f <目录>/

# 快速创建Deployment
kubectl create deployment nginx --image=nginx

查看资源

# 查看所有Pod
kubectl get pods
kubectl get pods -o wide  # 显示节点、IP等信息
kubectl get pods -A  # 查看所有命名空间的Pod

# 查看其他资源
kubectl get deployment
kubectl get service
kubectl get configmap
kubectl get secret

# 查看详细信息
kubectl describe pod <pod名称>
kubectl describe node <节点名称>

更新资源

# 应用配置更改
kubectl apply -f <文件名>.yaml

# 编辑资源
kubectl edit deployment <名称>

# 设置镜像
kubectl set image deployment/<名称> <容器名>=<新镜像>

删除资源

# 删除指定资源
kubectl delete pod <pod名称>
kubectl delete -f <文件名>.yaml

# 强制删除
kubectl delete pod <pod名称> --force --grace-period=0

🔍 三、Pod操作

# 查看Pod日志
kubectl logs <pod名称>
kubectl logs -f <pod名称>  # 实时跟踪
kubectl logs <pod名称> -c <容器名>  # 多容器Pod

# 进入Pod容器
kubectl exec -it <pod名称> -- /bin/bash
kubectl exec -it <pod名称> -c <容器名> -- /bin/sh

# 查看Pod资源使用
kubectl top pod
kubectl top pod <pod名称>

# 端口转发
kubectl port-forward <pod名称> 本地端口:容器端口

🔄 四、Deployment管理

# 扩缩容
kubectl scale deployment <名称> --replicas=3

# 滚动更新
kubectl rollout status deployment/<名称>
kubectl rollout history deployment/<名称>

# 回滚
kubectl rollout undo deployment/<名称>
kubectl rollout undo deployment/<名称> --to-revision=2

# 暂停/恢复发布
kubectl rollout pause deployment/<名称>
kubectl rollout resume deployment/<名称>

🌐 五、Service & 网络

# 创建Service
kubectl expose deployment <名称> --port=80 --target-port=8080

# 查看Service
kubectl get svc
kubectl describe svc <服务名>

# 查看Endpoints
kubectl get endpoints

📝 六、命名空间操作

# 查看命名空间
kubectl get namespace

# 创建命名空间
kubectl create namespace <名称>

# 切换默认命名空间
kubectl config set-context --current --namespace=<名称>

# 指定命名空间操作
kubectl get pods -n <命名空间>

🔐 七、配置管理

# ConfigMap
kubectl create configmap <名称> --from-file=<文件路径>
kubectl get configmap
kubectl describe configmap <名称>

# Secret
kubectl create secret generic <名称> --from-literal=key=value
kubectl get secret

📊 八、资源监控

# 查看资源使用情况
kubectl top nodes
kubectl top pods

# 查看事件
kubectl get events
kubectl get events --sort-by=.metadata.creationTimestamp

# 监控Pod状态变化
kubectl get pods -w  # watch模式

🛠️ 九、调试命令

# 临时运行Pod进行调试
kubectl run test --image=busybox -it --rm -- /bin/sh

# 复制文件
kubectl cp <pod名称>:<容器路径> <本地路径>
kubectl cp <本地路径> <pod名称>:<容器路径>

# 查看API资源
kubectl api-resources
kubectl explain pod

⚙️ 十、集群配置

# 查看当前配置
kubectl config view

# 查看上下文
kubectl config get-contexts

# 切换集群
kubectl config use-context <上下文名>

# 设置凭据
kubectl config set-credentials <用户名>

💡 实用技巧

# 使用别名简化命令
alias k=kubectl
alias kgp='kubectl get pods'
alias kgd='kubectl get deployments'

# 输出格式化
kubectl get pods -o json
kubectl get pods -o yaml
kubectl get pods -o jsonpath='{.items[*].metadata.name}'

# 标签选择器
kubectl get pods -l app=nginx
kubectl get pods --selector='env=prod,tier=frontend'

📚 常用组合示例

# 查看所有资源
kubectl get all -A

# 删除状态为Error的Pod
kubectl delete pods --field-selector status.phase=Failed

# 查找占用资源最多的Pod
kubectl top pods --all-namespaces | sort --reverse --key 3 --numeric

# 批量重启Pod
kubectl rollout restart deployment/<名称>

小贴士 💡:

  1. 大多数命令都支持 -n 指定命名空间

  2. 使用 --help 查看详细用法

  3. 善用 Tab 键自动补全(需安装补全脚本)

  4. 建议配置 kubectl 别名提高效率

评论