kubectl技能使用说明
2026-03-29
新闻来源:网淘吧
围观:12
电脑广告
手机广告
kubectl 技能
使用 kubectl命令行工具执行 Kubernetes 集群管理操作。
概述
此技能使代理能够:
- 查询资源— 列出并获取关于 Pod、部署、服务、节点等的详细信息。
- 部署与更新— 创建、应用、修补和更新 Kubernetes 资源。
- 调试与故障排除— 查看日志、在容器中执行命令、检查事件。
- 管理配置— 更新 kubeconfig、切换上下文、管理命名空间。
- 监控健康状态— 检查资源使用情况、滚动更新状态、事件和 Pod 状况。
- 执行操作— 扩缩容部署、排空节点、管理污点和标签。
先决条件
- kubectl 二进制文件已安装并可在 PATH 中访问(版本 1.20+)。
- kubeconfig配置了集群凭据的文件(默认:
~/.kube/config) - 到 Kubernetes 集群的活动连接
快速设置
安装 kubectl
macOS:
brew install kubernetes-cli
Linux:
apt-get install -y kubectl # Ubuntu/Debian
yum install -y kubectl # RHEL/CentOS
验证:
kubectl version --client
kubectl cluster-info # Test connection
基本命令
查询资源
kubectl get pods # List all pods in current namespace
kubectl get pods -A # All namespaces
kubectl get pods -o wide # More columns
kubectl get nodes # List nodes
kubectl describe pod POD_NAME # Detailed info with events
查看日志
kubectl logs POD_NAME # Get logs
kubectl logs -f POD_NAME # Follow logs (tail -f)
kubectl logs POD_NAME -c CONTAINER # Specific container
kubectl logs POD_NAME --previous # Previous container logs
执行命令
kubectl exec -it POD_NAME -- /bin/bash # Interactive shell
kubectl exec POD_NAME -- COMMAND # Run single command
部署应用
kubectl apply -f deployment.yaml # Apply config
kubectl create -f deployment.yaml # Create resource
kubectl apply -f deployment.yaml --dry-run=client # Test
更新应用
kubectl set image deployment/APP IMAGE=IMAGE:TAG # Update image
kubectl scale deployment/APP --replicas=3 # Scale pods
kubectl rollout status deployment/APP # Check status
kubectl rollout undo deployment/APP # Rollback
管理配置
kubectl config view # Show kubeconfig
kubectl config get-contexts # List contexts
kubectl config use-context CONTEXT # Switch context
常用模式
调试 Pod
# 1. Identify the issue
kubectl describe pod POD_NAME
# 2. Check logs
kubectl logs POD_NAME
kubectl logs POD_NAME --previous
# 3. Execute debug commands
kubectl exec -it POD_NAME -- /bin/bash
# 4. Check events
kubectl get events --sort-by='.lastTimestamp'
部署新版本
# 1. Update image
kubectl set image deployment/MY_APP my-app=my-app:v2
# 2. Monitor rollout
kubectl rollout status deployment/MY_APP -w
# 3. Verify
kubectl get pods -l app=my-app
# 4. Rollback if needed
kubectl rollout undo deployment/MY_APP
准备节点进行维护
# 1. Drain node (evicts all pods)
kubectl drain NODE_NAME --ignore-daemonsets
# 2. Do maintenance
# ...
# 3. Bring back online
kubectl uncordon NODE_NAME
输出格式
--output选项(-o) 标志支持多种格式:
table— 默认表格格式wide— 扩展表格,包含附加列json— JSON 格式(与jq配合使用非常有用)yaml— YAML 格式jsonpath— JSONPath 表达式custom-columns— 定义自定义输出列name— 仅资源名称
示例:
kubectl get pods -o json | jq '.items[0].metadata.name'
kubectl get pods -o jsonpath='{.items[*].metadata.name}'
kubectl get pods -o custom-columns=NAME:.metadata.name,STATUS:.status.phase
全局标志(适用于所有命令)
-n, --namespace=<ns> # Operate in specific namespace
-A, --all-namespaces # Operate across all namespaces
--context=<context> # Use specific kubeconfig context
-o, --output=<format> # Output format (json, yaml, table, etc.)
--dry-run=<mode> # Dry-run mode (none, client, server)
-l, --selector=<labels> # Filter by labels
--field-selector=<selector> # Filter by fields
-v, --v=<int> # Verbosity level (0-9)
试运行模式
--dry-run=client— 快速客户端验证(安全地测试命令)--dry-run=server- 服务端验证(更准确)--dry-run=none- 实际执行(默认)
务必先使用--dry-run=client进行测试:
kubectl apply -f manifest.yaml --dry-run=client
高级主题
如需查看详细的参考资料、逐命令文档、故障排除指南以及高级工作流,请参阅:
- references/REFERENCE.md- 完整的 kubectl 命令参考
- scripts/- 用于常见任务的辅助脚本
实用技巧
-
使用标签选择器进行批量操作:
kubectl delete pods -l app=myapp kubectl get pods -l env=prod,tier=backend -
实时监控资源:
kubectl get pods -w # Watch for changes -
使用
-A标志来指定所有命名空间:kubectl get pods -A # See pods everywhere -
保存输出以便后续比较:
kubectl get deployment my-app -o yaml > deployment-backup.yaml -
删除前务必检查:
kubectl delete pod POD_NAME --dry-run=client
获取帮助
kubectl help # General help
kubectl COMMAND --help # Command help
kubectl explain pods # Resource documentation
kubectl explain pods.spec # Field documentation
环境变量
KUBECONFIG— kubeconfig 文件的路径(可以包含多个路径,用:分隔)KUBECTL_CONTEXT— 覆盖默认上下文
资源
版本:1.0.0
许可证:MIT
兼容于:kubectl v1.20+, Kubernetes v1.20+
文章底部电脑广告
手机广告位-内容正文底部


微信扫一扫,打赏作者吧~