运维常用K8S命令

以下为Kubernetes常用运维命令的整理,结合集群管理、资源操作、故障排查等场景分类整理,并标注核心用途及示例:


一、集群与节点管理

  1. 查看集群状态
    • kubectl cluster-info:查看控制平面及核心组件地址 。
    • kubectl get nodes -o wide:显示所有节点及IP、资源状态 。
    • kubectl top nodes:查看节点CPU/内存使用情况 。
    • kubectl describe node :查看节点详细信息(污点、标签、资源分配) 。
  2. 节点操作
    • kubectl cordon :标记节点不可调度 。
    • kubectl drain --ignore-daemonsets:排空节点并驱逐Pod 。
    • kubectl taint nodes key=value:NoSchedule:为节点添加污点 。

二、资源对象管理

  1. Pod操作
    • kubectl get pods -n -o wide:查看Pod列表及运行节点 。
    • kubectl describe pod :查看Pod事件、状态、容器详情 。
    • kubectl logs -f -c :实时查看容器日志 。
    • kubectl exec -it -- /bin/bash:进入Pod容器执行命令 。
    • kubectl delete pod --grace-period=0 --force:强制删除Pod 。
  2. Deployment与Service
    • kubectl scale deployment --replicas=3:扩缩容副本数 。
    • kubectl rollout status deployment/:查看滚动更新状态 。
    • kubectl expose deployment --type=NodePort --port=80:创建Service暴露端口 。
    • kubectl edit svc :在线编辑Service配置 。
  3. 配置与存储
    • kubectl get configmap -o yaml:查看ConfigMap内容 。
    • kubectl create secret generic --from-file=key=file.txt:从文件创建Secret 。
    • kubectl get pv/pvc:查看持久卷及声明状态 。

三、网络与存储

  1. 网络诊断
    • kubectl get svc -n :查看服务端口及ClusterIP 。
    • kubectl get ingress:列出所有Ingress规则 。
    • kubectl run net-tool --image=nicolaka/netshoot --rm -it -- /bin/bash:启动临时网络诊断Pod 。
  2. 存储管理
    • kubectl describe pvc :查看PVC绑定状态及事件 。
    • kubectl cp :/path/file /local/path:从Pod复制文件到本地 。

四、故障排查与调试

  1. 事件与状态
    • kubectl get events --sort-by=.metadata.creationTimestamp:按时间排序查看集群事件 。
    • kubectl get pods --field-selector status.phase=Running:过滤特定状态Pod 。
  2. 资源监控
    • kubectl top pod -n :查看Pod资源消耗 。
    • kubectl attach -c :附加到运行中的容器 。
  3. 高级调试
    • kubectl port-forward 8080:80:端口转发至本地调试 。
    • kubectl debug -it --image=busybox:启动临时调试容器 。

五、配置与版本管理

  1. YAML操作
    • kubectl apply -f deploy.yaml:应用配置文件(声明式更新) 。
    • kubectl diff -f deploy.yaml:对比当前配置与文件的差异 。
    • kubectl get deploy -o yaml > backup.yaml:导出资源配置备份 。
  2. 版本控制
    • kubectl rollout history deployment/:查看部署历史版本 。
    • kubectl rollout undo deployment/ --to-revision=2:回滚到指定版本 。

六、标签与注解管理

  • kubectl label pod env=prod:为Pod添加标签 。
  • kubectl annotate pod description='production':添加注解 。

附:常用命令速查表

场景

命令示例

快速创建Pod

kubectl run nginx --image=nginx --restart=Never

查看所有资源

kubectl get all -n

强制删除资源

kubectl delete --grace-period=0 --force


注意事项

  • 使用 --dry-run=client 测试命令效果而不实际执行(如 kubectl create deploy --dry-run=client) 。
  • 结合 -o json/yaml 输出结构化信息,便于脚本处理(如 kubectl get pod -o jsonpath='{.status.podIP}') 。

你可能感兴趣的:(docker,容器,运维,k8s)