当前位置: 首页 > web >正文

kubectl 命令

1. 获取资源信息 (get)

用途:查看 Kubernetes 资源的状态和信息。
示例

kubectl get pods

说明:列出当前命名空间下所有 Pod。
其他常用参数

  • -n <namespace>:指定命名空间。
  • -o wide:显示更多列(如 IP、节点等)。
  • --all-namespaces 或 -A:查看所有命名空间的资源。
  • --sort-by <字段>:按字段排序(如 --sort-by=age)。

2. 查看资源详细信息 (describe)

用途:显示资源的详细状态、事件、配置等。
示例

kubectl describe pod <pod-name>

说明:查看某个 Pod 的详细信息,包括事件、状态、IP 等。


3. 查看资源日志 (logs)

用途:查看 Pod 中容器的日志。
示例

kubectl logs <pod-name>

说明

  • -f:实时跟踪日志(类似 tail -f)。
  • -c <container-name>:指定容器(如果 Pod 有多个容器)。

4. 创建资源 (create)

用途:直接创建 Kubernetes 资源(如 Pod、Deployment)。
示例

说明:创建一

kubectl create deployment nginx-deployment --image=nginx

个名为 nginx-deployment 的 Deployment,使用 nginx 镜像。


5. 应用配置文件 (apply)

用途:通过 YAML/JSON 文件创建或更新资源。
示例

kubectl apply -f deployment.yaml

说明

  • 如果资源不存在则创建,存在则更新。
  • 支持 ConfigMapServiceDeployment 等资源类型。

6. 删除资源 (delete)

用途:删除指定的资源。
示例

kubectl delete pod <pod-name>

说明

  • -n <namespace>:指定命名空间。
  • --all:删除所有资源(需谨慎)。

7. 进入容器执行命令 (exec)

用途:在运行的容器中执行命令(如调试)。
示例

kubectl exec -it <pod-name> -- /bin/bash

说明

  • -it:交互模式(Interactive Terminal)。
  • --:分隔符,后接命令(如 /bin/sh)。

8. 管理滚动更新 (rollout)

用途:管理 Deployment 的滚动更新、回滚等。
示例

kubectl rollout status deployment <deployment-name>

说明

  • status:查看滚动更新状态。
  • history:查看历史版本。
  • rollback:回滚到之前的版本。

9. 扩容/缩容 (scale)

用途:调整 Deployment 的副本数。
示例

kubectl scale deployment <deployment-name> --replicas=3

说明:将 Deployment 的副本数设置为 3。


10. 查看事件 (events)

用途:查看集群或命名空间中的事件(如错误、创建资源等)。
示例

kubectl get events -n <namespace>

说明:帮助排查资源创建失败或异常问题。


11. 管理服务暴露 (expose)

用途:为 Pod 或 Deployment 创建 Service。
示例

kubectl expose deployment <deployment-name> --type=LoadBalancer --port=80

说明:为 Deployment 创建一个 LoadBalancer 类型的 Service,端口 80。


12. 查看节点信息 (node)

用途:查看 Kubernetes 节点的状态。
示例

kubectl get nodes

说明

  • -o wide:显示节点 IP、版本等信息。
  • kubectl describe node <node-name>:查看节点详细信息。

13. 管理命名空间 (namespace)

用途:创建、删除、切换命名空间。
示例

kubectl create namespace ai-namespace

说明

  • kubectl config set-context --current --namespace=ai-namespace:切换默认命名空间。
  • kubectl delete namespace ai-namespace:删除命名空间(谨慎操作)。

14. 管理配置 (config)

用途:管理 kubeconfig 文件(如上下文、用户、集群)。
示例

kubectl config get-contexts

说明

  • use-context <context-name>:切换上下文。
  • view:查看当前 kubeconfig 内容。

15. 管理自动扩展 (autoscale)

用途:配置水平自动扩展(HPA)。
示例

kubectl autoscale deployment <deployment-name> --min=1 --max=5 --cpu-percent=80

说明:当 CPU 使用率超过 80% 时,自动扩展副本数(1~5)。


16. 管理密钥 (secrets)

用途:创建、查看、删除 Secret(敏感信息)。
示例

kubectl create secret generic db-secret --from-literal=username=admin --from-literal=password=123456

说明:创建一个包含用户名和密码的 Secret。


17. 管理持久化卷 (pv/pvc)

用途:查看持久化卷(PV)和持久化卷声明(PVC)。
示例

kubectl get pvc -n <namespace>

说明:查看指定命名空间下的 PVC 状态。


18. 管理网络策略 (networkpolicy)

用途:查看或创建网络策略(NetworkPolicy)。
示例

kubectl get networkpolicy

说明:列出所有网络策略(需集群支持 Calico 等网络插件)。


19. 管理服务账户 (serviceaccount)

用途:查看或创建服务账户(ServiceAccount)。
示例

kubectl create serviceaccount my-sa

说明:创建一个名为 my-sa 的服务账户。


20. 查看版本信息 (version)

用途:查看 Kubernetes 客户端和服务器版本。
示例

kubectl version --short

说明:显示客户端和服务器的版本号(如 Client Version: v1.25.3)。


21. 查看帮助 (help)

用途:查看命令的帮助信息。
示例

kubectl help

说明:列出所有可用命令,或使用 kubectl <command> --help 查看具体命令的帮助。


22. 管理 CRD(自定义资源)

用途:管理自定义资源定义(CustomResourceDefinition)。
示例

kubectl get crd

说明:列出所有自定义资源类型(如 IngressOperator 等)。


23. 查看资源使用情况 (top)

用途:查看资源使用情况(需 Heapster 或 Metrics Server)。
示例

kubectl top pods

说明:显示 Pod 的 CPU 和内存使用情况。


24. 管理 RBAC 权限

用途:管理角色(Role)、角色绑定(RoleBinding)。
示例

kubectl create role my-role --verb=get --resource=pods

说明:创建一个允许 get 操作 Pod 的 Role。


25. 查看标签 (label)

用途:为资源添加或修改标签(Label)。
示例

kubectl label pods <pod-name> env=prod

说明:为 Pod 添加标签 env=prod,后续可通过 kubectl get pods -l env=prod 查询。


26. 查看注解 (annotate)

用途:为资源添加注解(Annotation)。
示例

kubectl annotate pods <pod-name> description="Production Pod"

说明:为 Pod 添加描述信息。


27. 管理 Ingress

用途:查看或创建 Ingress 资源。
示例

kubectl get ingress

说明:列出所有 Ingress 规则(需 Ingress 控制器支持)。


28. 查看调试信息 (debug)

用途:调试资源(如注入调试容器)。
示例

kubectl debug -it <pod-name> --image=busybox --target=<container-name>

说明:为指定 Pod 注入调试容器并进入交互模式。


29. 查看 API 资源 (api-resources)

用途:列出所有支持的 API 资源类型。
示例

kubectl api-resources

说明:显示所有可操作的资源(如 podsservicesdeployments 等)。


30. 查看 API 版本 (api-versions)

用途:列出所有支持的 API 版本。
示例

kubectl api-versions

说明:显示 Kubernetes 集群支持的 API 版本(如 apps/v1batch/v1 等)。

31. 复制

旧版命令(v1.24 及以下)
kubectl cp [POD_NAME]:[容器内路径] [本地路径] # 或 kubectl cp [本地路径] [POD_NAME]:[容器内路径]

示例

  1. 从 Pod 复制到本地

    kubectl cp my-pod:/app/data.txt ./local-folder/kubectl cp /path/to/local/file <namespace>/<pod-name>:/path/in/pod
    

    说明:将 Pod my-pod 中的 /app/data.txt 复制到本地 ./local-folder/

  2. 从本地复制到 Pod

    kubectl cp ./local-file.txt my-pod:/app/kubectl cp ./expense_report.xlsx 命名空间/node名字:/workspace/tmp
    kubectl cp ./myfile.txt default/my-pod:/app/
    

    说明:将本地 ./local-file.txt 复制到 Pod my-pod 的 /app/ 目录。


4. Kubernetes 新版(v1.25+)替代方案

方法 1:通过 kubectl exec 和 tar
  1. 从本地复制到 Pod

    tar cf - ./local-file.txt | kubectl exec -i my-pod -- tar xf - -C /app/

    说明:将本地 ./local-file.txt 打包并通过 kubectl exec 解压到 Pod 的 /app/ 目录。

  2. 从 Pod 复制到本地

    kubectl exec my-pod -- tar cf - -C /app/ data.txt | tar xf - -O > ./local-data.txt

    说明:从 Pod 的 /app/data.txt 读取并保存到本地 ./local-data.txt

总结

命令用途示例
get查看资源列表kubectl get pods
describe查看资源详情kubectl describe pod <pod-name>
logs查看容器日志kubectl logs <pod-name>
apply应用配置文件kubectl apply -f deployment.yaml
delete删除资源kubectl delete pod <pod-name>
exec进入容器执行命令kubectl exec -it <pod-name> -- /bin/bash
rollout管理滚动更新kubectl rollout status deployment <deployment-name>

http://www.xdnf.cn/news/12250.html

相关文章:

  • docker 搭建php 开发环境 添加扩展redis、swoole、xdebug(2)
  • 游戏设计模式 - 子类沙箱
  • 计算机网络备忘录
  • SDC命令详解:使用set_fanout_load命令进行约束
  • AI Agent 项目 SUNA 部署环境搭建 - 基于 MSYS2 的 Poetry+Python3.11 虚拟环境
  • 鸿蒙jsonToArkTS_工具exe版本来了
  • 上门服务小程序会员系统框架设计
  • 鸿蒙UI(ArkUI-方舟UI框架)- 使用弹框
  • 【react+antd+vite】优雅的引入svg和阿里巴巴图标
  • 八、Python模块、包
  • 华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)
  • linux systemd 服务配置
  • 基础线性代数
  • Android协程学习
  • GPU加速与非加速的深度学习张量计算对比Demo,使用PyTorch展示关键差异
  • 面试总结一
  • 微服务架构下的服务注册与发现:Eureka 深度解析
  • Dify源码教程:账户和密码传递分析
  • 十六进制数字接收的方式
  • Linux程序运行日志总结
  • 面试题:SQL 中如何将 多行合并为一行(合并行数据为列)?
  • 第46节:多模态分类(图像+文本)
  • 学习路之PHP--webman安装及使用
  • 11.MySQL事务管理详解
  • 十八、【用户认证篇】安全第一步:基于 JWT 的前后端分离认证方案
  • 物流瘫痪预警:亚马逊多仓爆仓,卖家如何抢占夏季性价比市场?
  • 【Android基础回顾】五:AMS(Activity Manager Service)
  • 【Java Web】9.Maven高级
  • AI编程助手入门指南:GitHub Copilot、Cursor与Claude的安装与基础使用
  • [ Qt ] | 与系统相关的操作(三):QFile介绍和使用