news 2026/6/15 17:38:28

第三篇:《Kubectl 常用命令与资源管理》

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第三篇:《Kubectl 常用命令与资源管理》

kubectl 是 Kubernetes 的命令行工具,也是你与集群交互的主要方式。掌握常用命令、资源查看、对象管理、调试技巧,能让你高效地操作任何 K8s 集群。本文系统讲解 kubectl 的基本语法、常用子命令、资源类型缩写、输出格式定制,以及配置管理,并给出大量实战示例。

一、Kubectl 基本语法

kubectl[command][TYPE][NAME][flags]

command:对资源执行的操作,如 get, describe, create, apply, delete, logs, exec。

TYPE:资源类型(如 pod, deployment, service, node),支持单数和复数缩写(po, deploy, svc, no)。

NAME:资源名称,省略时表示所有资源(受命名空间限制)。

flags:可选参数,如 -n namespace、-o wide、–context。

二、常用命令速查表

三、资源类型与缩写
常用资源的完整名称和缩写(kubectl api-resources 查看全部):

技巧:使用 kubectl api-resources 快速查看所有支持的资源及其短名称。

四、输出格式定制
通过 -o 或 --output 控制输出格式:

实用 jsonpath 示例:

# 获取所有 Pod 的名称kubectl get pods-ojsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}'# 获取特定节点的 Pod 名称kubectl get pods-ojsonpath='{.items[?(@.spec.nodeName=="node1")].metadata.name}'

五、资源创建与更新
5.1 声明式管理(推荐)
使用 YAML 或 JSON 文件定义资源,然后执行 apply:

kubectl apply-fdeployment.yaml kubectl apply-f./manifests/# 应用目录下所有 YAMLkubectl apply-fhttps://example.com/deploy.yaml

apply 使用 last-applied-configuration 注解执行增量更新,适合长期维护。

5.2 命令式管理(临时调试用)

# 创建 Deploymentkubectl create deployment nginx--image=nginx--replicas=3# 创建 Servicekubectl expose deployment nginx--port=80--type=LoadBalancer# 创建 ConfigMap 从文件kubectl create configmap app-config --from-file=./app.conf# 创建 Secret 从字面值kubectl create secret generic db-secret --from-literal=password=123456

生产环境推荐使用声明式(YAML + GitOps),便于版本控制和审计。

六、查看与调试
6.1 查看资源

kubectl get pods --show-labels# 显示标签kubectl get pods-lapp=nginx# 按标签筛选kubectl get pods-nkube-system# 指定命名空间kubectl get pods --field-selectorstatus.phase=Running# 按字段筛选

6.2 描述资源
describe 命令输出资源的详细状态、事件、最新变更:

kubectl describe pod my-pod kubectl describenodenode1

查看 Events 部分对排查故障非常有用(如拉取镜像失败、调度失败、探针错误)。

6.3 实时监控

kubectl get pods-w# 持续监听变化kubectl get events--watch# 实时事件流kubectl get pods-owide--watch# 组合使用

6.4 日志查看

kubectl logs my-pod# 单容器 Podkubectl logs my-pod-csidecar-container# 多容器 Pod 指定容器kubectl logs-lapp=nginx--tail=20# 按标签筛选,最后20行kubectl logs-fmy-pod# 实时跟踪kubectl logs my-pod--previous# 查看上一个崩溃容器的日志

6.5 进入容器执行命令

kubectlexecmy-pod --ls-l/tmp kubectlexec-itmy-pod -- /bin/bash# 交互式 Shellkubectlexec-itmy-pod-csidecar --sh# 多容器时指定容器

6.6 端口转发
将本地端口转发到 Pod 或 Service 的端口,便于调试:

kubectl port-forward pod/my-pod8080:80 kubectl port-forward service/my-service8080:80

七、标签与选择器
标签是 Kubernetes 组织资源的核心机制。为资源添加标签:

kubectl label pods my-podapp=webversion=v1 kubectl label pods my-pod version-# 删除标签

选择器(-l)支持等值(=、==、!=)和集合(in、notin):

kubectl get pods-l'app in (web,api),version!=v2'

八、命名空间管理
命名空间用于资源隔离(如环境、团队)。

kubectl create namespace dev kubectl get namespaces kubectl config set-context--current--namespace=dev# 切换默认命名空间kubectl run nginx--image=nginx-ndev# 指定命名空间kubectl delete namespace dev# 删除命名空间(会删除其下所有资源)

九、常用别名与自动补全
提高效率的配置:

# 设置别名aliask=kubectlaliaskgp='kubectl get pods'aliaskd='kubectl describe'aliaskdel='kubectl delete'aliaskexec='kubectl exec -it'aliasklogs='kubectl logs'# Bash 自动补全(永久生效)echo'source <(kubectl completion bash)'>>~/.bashrcecho'alias k=kubectl'>>~/.bashrcecho'complete -o default -F __start_kubectl k'>>~/.bashrcsource~/.bashrc

十、配置管理(kubeconfig)
默认配置文件为 ~/.kube/config,支持多集群、多上下文。

kubectl config view# 查看当前配置kubectl config get-contexts# 列出所有上下文kubectl config current-context# 当前上下文kubectl config use-context<name># 切换上下文kubectl config set-credentials...# 设置用户认证kubectl config set-cluster...# 设置集群

十一、常见故障排查流程

十二、小结
kubectl 是管理 K8s 集群的强大工具。掌握常用命令、输出格式、标签选择器、命名空间、调试技巧,能让你应对日常运维和开发需求。建议熟记资源缩写、善于使用 describe 和 logs 排查问题,并结合 apply -f 进行声明式管理。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/12 3:57:43

Chatbox 极简配置教程

下载地址&#xff1a;Chatbox AI官网&#xff1a;办公学习的AI好助手&#xff0c;全平台AI客户端&#xff0c;官方免费下载打开 Chatbox&#xff0c;点击左下角设置 模型提供方 --> 添加 --> 输入名称 OneAPI Chat&#xff0c;默认选择&#xff1a;OpenAI兼容 --> 点击…

作者头像 李华
网站建设 2026/6/12 1:19:00

跟着 MDN 学JavaScript day_16:技能测试——循环实战演练

引言理论知识的学习为我们搭建了理解循环的框架&#xff0c;但真正的编程能力需要在解决具体问题的过程中锤炼。今天&#xff0c;我们进入循环的技能测试环节&#xff0c;通过三道精心设计的题目来检验你是否真正掌握了 for、while 和 do...while 循环的用法&#xff0c;以及 b…

作者头像 李华
网站建设 2026/6/12 3:09:22

从零搭建企业网:手把手教你用eNSP模拟千人校园网络规划

从零搭建企业网&#xff1a;手把手教你用eNSP模拟千人校园网络规划当第一次接触企业级网络规划时&#xff0c;很多人会被复杂的拓扑结构和专业术语吓退。但事实上&#xff0c;只要掌握正确的方法论和工具&#xff0c;即使是千人规模的校园网络也能通过模拟环境轻松搭建。华为eN…

作者头像 李华
网站建设 2026/6/11 23:33:50

AI建站工具选型指南:3大维度对比,找到最适合你的那个

AI建站工具选型指南&#xff1a;3大维度对比&#xff0c;找到最适合你的那个面对市面上五花八门的AI建站工具&#xff0c;很多用户都会陷入选择困难&#xff1a;有的号称全AI生成&#xff0c;有的主打模板丰富&#xff0c;还有的低价吸引人。到底哪个靠谱&#xff1f;哪个最适合…

作者头像 李华
网站建设 2026/6/12 2:46:46

别再手动输坐标了!用Excel+Arcmap批量导入点位,5分钟搞定一张地图

ExcelArcmap批量导入点位全攻略&#xff1a;从数据整理到地图生成的高效工作流每次面对成百上千个点位坐标时&#xff0c;手动输入不仅耗时耗力&#xff0c;还容易出错。本文将带你掌握一套完整的Excel预处理与Arcmap批量导入技术方案&#xff0c;让地图制作效率提升10倍以上。…

作者头像 李华
网站建设 2026/6/12 3:43:43

从传感器噪声到平滑点云:一篇讲透深度相机数据处理的‘内功心法’

深度相机数据处理实战&#xff1a;从噪声抑制到边缘修复的完整方法论深度相机在工业质检、机器人抓取和AR/VR等领域的应用越来越广泛&#xff0c;但原始数据质量往往成为制约精度的瓶颈。物体边缘数据丢失、深度值跳变和时序不稳定等问题&#xff0c;让许多工程师在项目落地时遭…

作者头像 李华