Kubernetes命令
一、基础操作命令
1、查看资源
kubectl get pods # 查看所有Pod
kubectl get pods -n chat-system # 查看指定命名空间
kubectl get pods -o wide # 显示详细信息(IP、节点)
kubectl get pods -o yaml # 以YAML格式输出
kubectl get pods --watch # 实时监控变化
2、查看所有资源类型
kubectl get all # 获取所有资源
kubectl get deployment,service,pod # 同时查看多种资源
kubectl api-resources # 查看所有API资源类型
3、描述资源
kubectl describe pod <pod-name> # Pod详细信息
kubectl describe service <svc-name> # Service详情
kubectl describe node <node-name> # Node详情
kubectl describe deployment <deploy-name> # Deployment详情
4、创建/更新资源
kubectl apply -f deployment.yaml # 创建或更新资源
kubectl create -f pod.yaml # 创建资源(仅新建)
kubectl replace -f deployment.yaml # 替换现有资源
5、 删除资源
kubectl delete pod <pod-name> # 删除Pod
kubectl delete -f deployment.yaml # 删除文件中定义的资源
kubectl delete deployment --all # 删除所有Deployment
kubectl delete ns chat-system # 删除命名空间(级联删除)
6、日志查看
kubectl logs <pod-name> # 查看Pod日志
kubectl logs <pod-name> -f # 实时跟踪日志
kubectl logs <pod-name> --tail=100 # 查看最后100行
kubectl logs <pod-name> -c <container> # 查看指定容器日志
7、进入容器
kubectl exec -it <pod-name> -- /bin/sh # 进入容器Shell
kubectl exec <pod-name> -- ls /app # 执行单条命令
kubectl exec -it <pod-name> -c <container> -- bash # 指定容器
8、端口转发
kubectl port-forward pod/<pod-name> 8080:9090 # Pod端口转发
kubectl port-forward svc/gateway-service 8080:80 # Service端口转发
二、高级操作命令
1、滚动更新
kubectl rollout status deployment/gateway-server # 查看更新状态
kubectl rollout history deployment/gateway-server # 查看更新历史
kubectl rollout undo deployment/gateway-server # 回滚到上一版本
kubectl rollout undo deployment/gateway-server --to-revision=3 # 回滚到指定版本
kubectl rollout pause deployment/gateway-server # 暂停更新
kubectl rollout resume deployment/gateway-server # 恢复更新
2、扩缩容
kubectl scale deployment/gateway-server --replicas=5 # 手动扩容
kubectl autoscale deployment/gateway-server --min=3 --max=10 --cpu-percent=80 # 自动扩缩容
3、配置管理
kubectl create configmap app-config --from-file=config.yaml # 从文件创建
kubectl create configmap app-config --from-literal=key=value # 从字面量创建
kubectl get configmap app-config -o yaml # 查看配置
kubectl edit configmap app-config # 在线编辑配置
4、密钥管理
kubectl create secret generic db-secret --from-literal=password=123456
kubectl create secret tls tls-secret --cert=path/to/cert --key=path/to/key
kubectl get secrets
kubectl describe secret db-secret
5、污点和容忍
kubectl taint nodes node1 key=value:NoSchedule # 添加污点
kubectl taint nodes node1 key=value:NoSchedule- # 删除污点
kubectl describe node node1 | grep Taints # 查看污点
6、节点管理
kubectl cordon node1 # 节点不可调度
kubectl uncordon node1 # 节点可调度
kubectl drain node1 # 驱逐节点(维护)
kubectl top nodes # 查看节点资源使用
kubectl top pods # 查看Pod资源使用
三、调试和故障排查
1、创建临时调试Pod
kubectl run debug-pod --image=busybox -it --rm --restart=Never -- sh
kubectl run debug-pod --image=nicolaka/netshoot -it --rm -- /bin/bash
2、网络调试
kubectl run netshoot --image=nicolaka/netshoot -it --rm -- bash
# 在容器内执行:
curl -v http://gateway-service:8080/health
nslookup redis-cluster
telnet mysql 3306
3、事件查看
kubectl get events --sort-by='.lastTimestamp' # 按时间排序
kubectl get events -n chat-system --watch # 实时监控事件
kubectl get events --field-selector type=Warning # 仅查看警告
4、资源使用监控
kubectl top pods -n chat-system # Pod资源使用
kubectl top nodes # Node资源使用
kubectl top pods --containers # 容器级别监控
5、批量操作
kubectl get pods -n chat-system -o name | xargs kubectl delete # 批量删除
kubectl get pods -l app=gateway -o name # 标签选择
6、API调试
kubectl proxy # 启动API代理
curl http://localhost:8001/api/v1/namespaces/chat-system/pods
kubectl get --raw /api/v1/namespaces/chat-system/pods | jq . # 直接API调用

浙公网安备 33010602011771号