【K8S系列】第十讲:kubectl 命令大全

news2024/12/25 2:01:15

目录

序言

1.基本介绍

1.1 命令格式介绍

2 基础命令

2.1 create

2.2 delete

2.2.1 根据yaml删除资源

2.2.1  根据名称删除资源

2.3 get

2.3.1查看pod列表

2.3.2  查看node

2.3.3 查看svc

2.3.4 查看all

2.3.5 查看ns

2.3.4 查看deploy

2.3 run

 2.4 explain

2.5 edit

3.故障命令

3.1 describe

3.2 logs

3.2.1 查看容器快照

3.2.2 查看已停止的容器

3.3 exec

4.投票


序言

三言两语,不如细心探索。

今天整理了一下kubectl 命令,希望此文,能帮助读者对kubectl 命令有一个初步的了解

文章标记颜色说明:

  • 黄色:重要标题
  • 红色:用来标记结论
  • 绿色:用来标记一级论点
  • 蓝色:用来标记二级论点

1.基本介绍

kubectl 作为客户端CLI工具,可以通过命令行的方式对Kubernetes集群进行操作。

1.1 命令格式介绍

 kubectl命令行的语法如下:

$ kubectl [command] [TYPE] [NAME] [flags]
  1. command:子命令,用于操作Kubernetes集群资源对象的命令,例如create、delete、describe、get、apply等。
  2. TYPE:资源对象的类型,区分大小写能以单数形式、复数形式或者简写形式表示。例如以下3种TYPE是等价的。
  3. NAME:资源对象的名称,区分大小写。如果不指定名称,则系统将返回属于TYPE的全部对象的列表,例如$ kubectl get pods将返回所有Pod的列表
  4. flags:kubectl子命令的可选参数,例如使用“-s”指定apiserver的URL地址而不用默认值。
$ kubectl get pod podtest
$ kubectl get pods podtest
$ kubectl get po podtest

2 基础命令

先介绍一下几个基础命令

  • create
  • delete
  • get
  • run
  • expose
  • set
  • explain
  • edit

2.1 create

create 命令:根据文件或者输入来创建资源

创建Deployment和Service资源 

$ kubectl create -f test-deployment.yaml
$ kubectl create -f test-service.yaml

2.2 delete

delete 命令:删除资源

2.2.1 根据yaml删除资源

根据yaml文件删除对应的资源,但是yaml文件并不会被删除,如下

$ kubectl delete -f test-deployment.yaml 
$ kubectl delete -f test-service.yaml

2.2.1  根据名称删除资源

可以通过具体的资源名称来进行删除,使用这个删除资源,同时删除deployment和service资源

$ kubectl delete 具体的资源名称

$ kubectl delete test-deploy

2.3 get

get 命令 :获得资源信息

2.3.1查看pod列表

$ kubectl get pod

显示pod节点的标签信息 

$ kubectl get pod --show-labels

根据指定标签匹配到具体的pod

$ kubectl get pods -l app=demo

查看pod详细信息,可以查看pod具体运行在哪个节点上

$ kubectl get pod -o wide

2.3.2  查看node

查看node节点列表

$ kubectl get node 

 显示node节点的标签信息

$ kubectl get node --show-labels

2.3.3 查看svc

查看服务的详细信息,显示了服务名称,类型,集群ip,端口,时间等信息

$ kubectl get svc
$ kubectl get svc -n kube-system 

2.3.4 查看all

查看所有的资源信息

$ kubectl get all
$ kubectl get --all-namespaces

2.3.5 查看ns

$ kubectl get ns
$ kubectl get namespaces 

2.3.4 查看deploy

查看已经部署了的所有应用,可以看到容器,以及容器所用的镜像,标签等信息

$ kubectl get deploy -o wide
$ kubectl get deployments -o wide

2.3 run

run 命令:在集群中创建并运行一个或多个容器镜像。

语法:

run NAME --image=image [--env="key=value"] [--port=port] [--replicas=replicas] [--dry-run=bool] [--overrides=inline-json] [--command] -- [COMMAND] [args...]

示例:运行一个名称为nginx,副本数为3,标签为app=test,镜像为nginx:1.11,端口为80的容器实例

$ kubectl run nginx --replicas=3 --labels="app=test" --image=nginx:1.11 --port=80

 2.4 explain

explain 命令:用于显示资源文档信息

$ kubectl explain rs

2.5 edit

edit 命令: 用于编辑资源信息

编辑Deployment nginx的一些信息

$ kubectl edit deployment nginx

编辑service类型的nginx的一些信息
 

$ kubectl edit service/nginx

3.故障命令

故障排查和调试命令:

  1. describe
  2. logs
  3. exec
  4. attach
  5. port-foward
  6. proxy
  7. cp
  8. auth

3.1 describe

describe命令:显示特定资源的详细信息

查看test-nginx pod的详细状态

$ kubectl describe pod test-nginx

3.2 logs

logs命令:用于在pod中打印一个容器的日志

执行kubectl logs -h 可以查看kubectl logs的帮助信息

语法

  • kubectl  logs  [-f]   [-p]   POD    [-c CONTAINER]

-f:

  •  --follow[=false]: 指定是否持续输出日志
  • --interactive[=true]: 如果为true,当需要时提示用户进行输入。默认为true
  • --limit-bytes=0: 输出日志的最大字节数。默认无限制

-p:

  • --previous[=false]: 如果为true,输出pod中曾经运行过,但目前已终止的容器的日志
  • --since=0: 仅返回相对时间范围,如5s、2m或3h,之内的日志。默认返回所有日志。只能同时使用since和since-time中的一种
  • --since-time="": 仅返回指定时间(RFC3339格式)之后的日志。默认返回所有日志。只能同时使用since和since-time中的一种
  • --tail=-1: 要显示的最新的日志条数。默认为-1,显示所有的日志
  • --timestamps[=false]: 在日志中包含时间戳

-c:

  •  --container="": 容器名

3.2.1 查看容器快照

 返回仅包含一个容器的pod nginx的日志快照

$ kubectl logs nginx

3.2.2 查看已停止的容器

返回pod test中已经停止的容器web-test的日志快照
 

$ kubectl logs -p -c test web-1
# 持续输出pod ruby中的容器web-1的日志
$ kubectl logs -f -c ruby web-1

# 仅输出pod nginx中最近的20条日志
$ kubectl logs --tail=20 nginx

# 输出pod nginx中最近一小时内产生的所有日志
$ kubectl logs --since=1h nginx

3.3 exec

exec命令:用于进入pod中查看pod内部信息

kubectl exec -it podName  -c  containerName -n namespace -- shell comand
 -c: --container="": 容器名。如果未指定,使用pod中的一个容器。
 -p: --pod="": Pod名。
 -i: --stdin[=false]: 将控制台输入发送到容器。
 -t: --tty[=false]: 将标准输入控制台作为容器的控制台输入。

示例:

# 默认在pod test的第一个容器中运行“date”并获取输出
$ kubectl exec test date

# 在pod test的容器ruby-container中运行“date”并获取输出
$ kubectl exec test -c ruby-container date

# 切换到终端模式,将控制台输入发送到pod test的ruby-container的“bash”命令,并将其输出到控制台/
# 错误控制台的信息发送回客户端。
$ kubectl exec test -c ruby-container -i -t -- bash -il

4.投票

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/58829.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于PHP+MySQL珠宝销售网站的设计与开发

大多数时候珠宝是一种身份和高贵的象征,一个价值不菲的珠宝会给人一种高贵的感觉,同时珠光宝气也是人们非常喜欢的一种氛围,尤其是对女生来说,那种金光闪闪的东西总是会在无形中吸引她们的注意力,但是很多时候人们只能到商场或者专卖店购买珠宝,这种珠宝一方面鱼龙混杂,以次充好…

tinymce富文本编辑器的使用

tinymce富文本编辑器的使用 1、基本介绍 tinymce富文本官网:https://www.tiny.cloud/ 中文文档:http://tinymce.ax-z.cn/ tinymce-npm地址:https://www.npmjs.com/package/tinymce tinymce英文文档-示例地址:https://www.tin…

沟通管理风险管理采购管理@相关方管理

沟通管理目录概述需求:设计思路实现思路分析1.沟通管理绩效报告提供资源2.管理沟通3.监督沟通风险管理规划风险管理识别风险定性风险分析:定量分析风险规划风险应对实施分享应对监督风险采购管理:12.1 规划采购的管理12.2 实施采购控制采购相…

Bugku CTF杂项0和1的故事——01字符串生成二维码

个人说明 备赛半月后,因大多都是Web方向,于是自己将主要目标放在Misc和CryPto上,因为较之逆向和二进制更容易上手。 题目链接 1和0的故事 - Bugku CTF 题目简介如上,打开后是25X25的01字符串,先讲解正确高效做法&a…

SpringBoot 自动装配原理

什么是自动装配 springboot 定义一套接口规范,这套规范规定:springboot 在启动时会扫描外部引用 jar 包中的 META-INF/spring.factories 文件,将文件中配置的类型信息加载到 spring 容器,并执行类中定义的各种操作对于外部 jar 来…

Java并发编程—java内存模型1

文章目录Java内存模型的基础并发编程模型的两个关键性问题1、线程之间如何通信?(问题1)2、进程之间如何通信?(问题2)线程间通信机制:共享内存、消息传递1、共享内存2、消息传递java内存模型抽象结构指令重排序并发编程模型的分类happens-befo…

资料库的webrtc文件传输

一、一个看似简单的事情往往不简单 一个简单的事情往往会倾注你的心血,也许你看到很简单往往其实没那么简单;其实想想今年业余时间的大把代码,真正能成品的好像并不多。 马上年底了,写下这篇文章。每一行程序就像写小说一样&…

Egg 1. 快速开始 Quick Start 1.3 一步步 Step by Step 1.3.1 初始化 1.3.2 创建控制器

Egg Egg 本文仅用于学习记录,不存在任何商业用途,如侵删 文章目录Egg1. 快速开始 Quick Start1.3 一步步 Step by Step1.3.1 初始化1.3.2 创建控制器1. 快速开始 Quick Start 1.3 一步步 Step by Step 之前我们直接使用 npm init egg,选择了…

# 智慧社区管理系统-基础管理-04业主管理

一后端 1entity package com.woniu.community.entity;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;Data AllArgsConstructor NoArgsConstructor public class Owner {private int id;private String userName;private String …

Linux I2C驱动框架, 调试神奇I2C-Tools介绍

1. IIC协议 2. Linux的I2C体系结构分为3个组成部分: I2C核心( i2c-core.c ):   I2C核心提供了I2C总线驱动和设备驱动的注册、注销方法、I2C通信方法(”algorithm”)、与具体适配器无关的代码、探测设备、检测设备地址的上层代码等。 …

在线PDF查看器和PDF编辑器:GrapeCity Documents PDF (GcPdf)

跨平台 JavaScript PDF 查看器 使用我们的 JavaScript PDF 查看器在网络上阅读和编辑 PDF。跨浏览器和框架打开和打印。GrapeCity Documents PDF (GcPdf) 全功能的 JavaScript PDF 查看器和 PDF 编辑器 适用于所有现代浏览器和框架,包括 Edge、Chrome、Firefox、Op…

UML类图中 前缀符号 + - # ~ 的含义

UML类图中有各种符号,新手看着一脸懵逼,今天我就来讲一下各个符号到底是啥意思。 其实这些符号都是在描述类属性的可见性: UML中,可见性分为4级 1、public public 公用的用 前缀表示 ,该属性对所有类可见 2、prote…

算法篇-----回溯1

文章目录什么是回溯呢?力扣690-----员工的重要性(中等)力扣733-----图像渲染(简单)力扣463-----岛屿的周长(简单)力扣130------被围绕的区域(中等)力扣17--------电话号码的组合 &am…

kafka-consumer-offset位移

目录 1 offset的默认维护位置 1.1 消费offset案例 2 自动提交offset 3 手动提交offset 3.1 原理 3.2 代码示例 3.2.1 同步提交 3.2.2 异步提交(生产常用) 4 指定offset消费 5 指定时间消费 6 漏消费和重复消费分析 6.1 重复消费 6.2 漏消费 6.3 消费者事务 7 数据…

高通开发系列 - ALSA声卡驱动中tinymix返回时间过慢

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 问题背景问题分析验证第一个猜测验证第二个猜测问题原因解决方案问题背景 我们一个高通平台上出现一个问题: tingmix命令需要几秒钟…

一文带你深入理解Linux端口重用这一特性

【好文推荐】 需要多久才能看完linux内核源码? 概述Linux内核驱动之GPIO子系统API接口 一篇长文叙述Linux内核虚拟地址空间的基本概括 轻松学会Linux下查看内存频率,内核函数,cpu频率 大家好,我是Linux吴彦祖! 开篇我先考大家一个小问题&…

Golang Map 基本原理

Go 语言中的 map 即哈希表。哈希表把元素分到多个桶里,每个桶里最多放8个元素。在访问元素时,首先用哈希算法根据 key 和哈希表种子获得哈希值(暂将其命名为 h),然后利用 h 的低 bbb 位得到桶的序号。其中桶的个数为 2b2^b2b 个,是…

乐趣国学—品读“富润屋,德润身。”中的智慧

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 ✨当前专栏:国学周更-心性养成之路 …

java 基于 SpringMVC+Mybaties+ easyUI 快递公司管理系统 的 设计与实现

一.项目介绍 本系统 角色 权限 动态配置 默认配置了三种 第一种: 超级管理员 第二种: 运输公司 第三种: 订单跟踪人员 超级管理员拥有所有权限,包括车子、路线、订单、是否送达以及交易的统计报表 运输公司:车辆管理权…

使用 Python 和 Streamlit 创建一个很棒的 Web 应用程序

“我们如何制作一个机器学习脚本并将其转换为一个尽可能简单的应用程序,让它基本上感觉像是一个脚本练习?” — Adrien Treuille(Streamlit 的发明者) Web 应用程序是显示数据科学或机器学习项目结果的好方法。从头开始开发 Web 应用程序需要大量时间、精力和技术技能。另一…