网淘吧来吧,欢迎您!

kubectl技能使用说明

2026-03-29 新闻来源:网淘吧 围观:12
电脑广告
手机广告

kubectl 技能

使用 kubectl命令行工具执行 Kubernetes 集群管理操作。

概述

此技能使代理能够:

  • 查询资源— 列出并获取关于 Pod、部署、服务、节点等的详细信息。
  • 部署与更新— 创建、应用、修补和更新 Kubernetes 资源。
  • 调试与故障排除— 查看日志、在容器中执行命令、检查事件。
  • 管理配置— 更新 kubeconfig、切换上下文、管理命名空间。
  • 监控健康状态— 检查资源使用情况、滚动更新状态、事件和 Pod 状况。
  • 执行操作— 扩缩容部署、排空节点、管理污点和标签。

先决条件

  1. kubectl 二进制文件已安装并可在 PATH 中访问(版本 1.20+)。
  2. kubeconfig配置了集群凭据的文件(默认:~/.kube/config
  3. 到 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

高级主题

如需查看详细的参考资料、逐命令文档、故障排除指南以及高级工作流,请参阅:

实用技巧

  1. 使用标签选择器进行批量操作:

    kubectl delete pods -l app=myapp
    kubectl get pods -l env=prod,tier=backend
    
  2. 实时监控资源:

    kubectl get pods -w  # Watch for changes
    
  3. 使用-A标志来指定所有命名空间:

    kubectl get pods -A  # See pods everywhere
    
  4. 保存输出以便后续比较:

    kubectl get deployment my-app -o yaml > deployment-backup.yaml
    
  5. 删除前务必检查:

    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+

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
文章底部电脑广告
手机广告位-内容正文底部

相关文章

您是本站第326323名访客 今日有221篇新文章/评论