19-29-k8s-基本命令-yaml-kubectl

news2024/11/13 16:04:44

19-k8s-基本命令-yaml-kubectl:

Kubernetes 集群的命令行工具kubectl

1、kubectl 命令格式:

kubectl [command] [type] [name] [flags]
参数:
command:指定要对资源执行的操作,例如create、get、describe、delete
type:指定资源类型,资源类型是大小写敏感的,开发者能够以单数 、复数 和 缩略的形式
kubectl get pod pod1
kubectl get pods pod1
kubectl get po pod1
name:指定资源的名称,名称也是大小写敏感的,如果省略名称,则会显示所有的资源,例如
kubectl get pods
flags:指定可选的参数,例如,可用 -s 或者 -server参数指定Kubernetes API server的地址和端口

2、kubectl 帮助命令

# 获取kubectl的命令
kubectl --help
# 获取某个命令的介绍和使用
kubectl get --help
kubectl create --help

3、kubectl基础命令

命令介绍
create通过文件名或标准输入创建资源
expose将一个资源公开为一个新的Service
run在集群中运行一个特定的镜像
set在对象上设置特定的功能
get显示一个或多个资源
explain文档参考资料
edit使用默认的编辑器编辑一个资源
delete通过文件名,标准输入,资源名称或标签来删除资源

4、kubectl部署命令

命令介绍
rollout管理资源的发布
rolling-update对给定的复制控制器滚动更新
scale扩容或缩容Pod数量,Deployment、ReplicaSet、RC或Job
autoscale创建一个自动选择扩容或缩容并设置Pod数量

5、kubectl集群管理命令

命令介绍
certificate修改证书资源
cluster-info显示集群信息
top显示资源(CPU/M)
cordon标记节点不可调度
uncordon标记节点可被调度
drain驱逐节点上的应用,准备下线维护
taint修改节点taint标记

6、kubectl 其它命令

命令介绍
apply通过文件名或标准输入对资源应用配置
patch使用补丁修改、更新资源的字段
replace通过文件名或标准输入替换一个资源
convert不同的API版本之间转换配置文件
label更新资源上的标签
annotate更新资源上的注释
completion用于实现kubectl工具自动补全
api-versions打印受支持的API版本
config修改kubeconfig文件(用于访问API,比如配置认证信息)
help所有命令帮助
plugin运行一个命令行插件
version打印客户端和服务版本信息

Kubernetes 集群YAML文件详解

yaml菜鸟教程:https://www.runoob.com/w3cnote/yaml-intro.html

1、YAML 文件概述

k8s 集群中对资源管理和资源对象编排部署都可以通过声明样式(YAML)文件来解决,也就是可以把需要对资源对象操作编辑到 YAML 格式文件中,我们把这种文件叫做资源清单文件,通过 kubectl 命令直接使用资源清单文件就可以实现对大量的资源对象进行编排部署

2、YAML 文件书写格式

(1)YAML 介绍

YAML :仍是一种标记语言。为了强调这种语言以数据做为中心,而不是以标记语言为重点。

YAML 是一个可读性高,用来表达数据序列的格式。

(2)YAML 基本语法

* 使用空格做为缩进

* 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

* 低版本缩进时不允许使用 Tab 键,只允许使用空格

* 使用#标识注释,从这个字符一直到行尾,都会被解释器忽略

3、YAML 数据结构

对象:键值对的集合,又称为映射(mapping) / 哈希(hashes) / 字典(dictionary)

# 对象类型:对象的一组键值对,使用冒号结构表示
name: Tom
age: 18
# yaml 也允许另一种写法,将所有键值对写成一个行内对象
hash: {name: Tom, age: 18}

数组:

# 数组类型:一组连词线开头的行,构成一个数组
People
- Tom
- Jack

# 数组也可以采用行内表示法
People: [Tom, Jack]

4、YAML 组成部分

主要分为了两部分,一个是控制器的定义 和 被控制的对象。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-as3biRCT-1670132229157)(png/image-20220312145939459.png)]

在一个YAML文件的控制器定义中,有很多属性名称

属性名称介绍
apiVersionAPI版本
kind资源类型
metadata资源元数据
spec资源规格
replicas副本数量
selector标签选择器
templatePod模板
metadataPod元数据
specPod规格
containers容器配置

5、YAML 快速编写

一般借助工具来创建yaml

1、使用kubectl create命令

这种方式一般用于资源没有部署的时候,我们可以直接创建一个YAML配置文件

# 尝试运行,并不会真正的创建镜像
kubectl create deployment web --image=nginx -o yaml --dry-run

或者我们可以输出到一个文件中

kubectl create deployment web --image=nginx -o yaml --dry-run > hello.yaml

2、使用kubectl get命令导出yaml文件

可以首先查看一个目前已经部署的镜像

kubectl get deploy

然后我们导出 nginx的配置

kubectl get deploy nginx -o=yaml --export > nginx.yaml

然后会生成一个 nginx.yaml 的配置文件

6、k8s,yaml常用字段

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IfujlLCk-1670132229158)(png/image-20220312151149252.png)]

spec 主要对象

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yheSYMCf-1670132229159)(png/image-20220312151257438.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cBXhscao-1670132229159)(png/image-20220312151307404.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tsLZqJrW-1670132229159)(png/image-20220312151316681.png)]
在这里插入图片描述

额外的参数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GMYHZJV1-1670132229160)(png/image-20220312151331281.png)]

kubectl命令详解

kubectl更多命令 kubectl --help

https://kubernetes.io/docs/reference/kubectl/

1、kubectl子命令详解:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2、kubectl可操作的资源对象详解

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3、kubectl公共参数说明

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2Y7eGeDr-1670132229164)(png/image-20220312154300541.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TrIy9Ooa-1670132229164)(png/image-20220312154321423.png)]

每个子命令(如create、delete. get等)还有其特定的命令行参数,可以通过$ kubectl [command] --help命令进行查看。

4、kubectl格式化输出列表

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MWbtVIyg-1670132229165)(png/image-20220312154736406.png)]

kubectl常用操作实例

常用的输出格式示例如下。

(1)显示Pod的更多信息,例如NodeIP等:
$ kubectl get pod <pod-name> -o wide
(2)以YAML格式显示Pod的详细信息:
$ kubectl get pod <pod-name> -o yaml
(3)以自定义列名显示Pod的信息:
$ kubectl get pod <pod-name> -o custom-columns=NAME:.metadata.name,RSRC:.metadata.resourceVersion
(4)基于自定义列明配置文件进行输出
$ kubectl get pod <pod-name> -o custom-columns-file=template.txt

template.txt文件的内容如下:
NAME			RSRC
metadata.name	metadata.resourceVersion
输出结果为:
NAME		RERC
pod-name	52305
(5)将输出结果按某个字段排序,可以通过--sort-by 参数以jsonpath表达式进行指定
kubectl [command] [TYPE] [NAME] --sort-by=<jsonpath_exp>
kubectl get pods --sort-by=.metadata.name

kubectl apply (以文件或stdin 部署或更新一个或多个资源)

基于example service.yamn中的定义创建一个 Service资源:
kubectl apply -f example-service.yaml
使用example-controller.yaml中的定义创建一个Replication Controller资源:
kubectl apply -f example-controller.yaml
使用<directory>目录下所有:yaml、.yml 和.json文件中的定义进行创建:
kubectl apply -f <directory>

kubectl get (列出一个或多个资源对象的信息)

以文本格式列出所有Pod:
kubectl get pods
以文本格式列出所有Pod,包含附加信息( 如Node IP):
kubect1 get pods -0 wide
以文本格式列出指定名称的RC;
kobectl get replicationcontroller <rc-name>
以文本格式列出所有RC和Service
kubectl get rc services
以文本格式列出所有Dacemonset,包括未初始化的Daemonset:
kubectl get ds --include-uninitialized
列出在节点server01上运行的所有pod(仅显示namespace为default的):
kubectl get pods --field-selector=spec.nodeName=server01

kubectl describe(显示一个或多个资源的详细信息)

显示名称为<node name>的节点的详细信息:
Rubectl describe nodes	<node-name>
显示名称为<pod-name>的Pod的详细信息:
kubect1 describe pods/<pod-name>
显示名称为<rc name>的RC控制器管理的所有Pod的详细信息:
kubect1 describe pods <rc-name>
描述所有Pod的详细信息:
kubect1 describe pods

对kubectl get和kubectl describe命令说明如下。
kubectl get 命令常用于查看同资源类型的一个或多个资源对象, 可以使用-o 或–output参数自定义输出格式,还可以通过-w或–watch 参数开启对资源对象更新的监控。
kubectl describe命令更侧重于描述指定资源的各方面详细信息,通过对API Server的多个API调用来构建结果视图。例如通过kubetl describe node命令不仅会返回节点信息,还会返回在其上运行的Pod的摘要、节点事件等信息。

kubectl delete
该命令可以使用文件,stdin的输人删除指定的资源对象,还可以通过标签选择器、名称、资源选择器等条件来限定待删除的资源范围。
使用在pod.yaml文件中指定的类型和名称删除Pod:

kubectl delete -f pod.yaml
删除所有带有'<label-key>=<label-value>'标签的Pod和Service:
Kubectl delete pods,services -1 <label-key>=<label-value>
删除所有Pod.包括未初始化的Pod:
kubectl delete pods -al1

kubectl exec (在Pod的容器中运行命令)

在名称为<pod-name>的Pod的第1个容器中运行date命令并打印输出结果:
kubectl exec <pod-name> -- date
在指定的容器中运行date命令并打印输出结果:
Kubectl exec <pod-name> -c <container-name> - date
在Pod的第1个容器中运行/bin/bash命令进人交互式TTY终端界面:
kubectl exec -ti <pod-name> -- /bin/bash

kubectl logs ( 打印Pod中容器的日志)

kubect1 1ogs <pod-name>
显示Pod中名称为<container name>的容器输出到stdout的日志:
kubectl 1ogs <pod-name> -c <container-name>
持续监控显示Pod中的第1个容器输出到stdou的日志,类似于tail.f命令的功能:
kubectl logs -f <pod-name>

在线编辑运行中的资源对象
可以使用kubecl edit命令编辑运行中的资源对象,例如使用下面的命令编辑运行中的一个(部署)Deployment:
$ kubectl edit deploy nginx
在命令运行之后,会通过YAML格式展示该对象的文本格式定义,用户可以对代码进行编辑和保存,从而完成对在线资源的直接修改。

将Pod的端口号映射到宿主机
将pod 的80端口映射到宿主机的888端口,客户端即可通过http://:8888访问容器服务了:
kubectl port-forward --addres 0.0.0.0 \ pod/nginx-6ddbbc47fb-sfdcv 8888:80

在容器和Node之间复制文件
把Pod(默认为第1个容器)中的/etc/fstab 文件复制到宿主机的/tmp目录下:
kubectl cp nginx-6ddbbc47fb-sfdcv:etc/fstab /tmp/fstab

设置资源对象的标签
为名为“defult"的命名空间设置"testing=true" 标签:

kubectl label namespaces default testing-true

kubectl还可以自定义创建和使用命令行插件。

学习路径:https://space.bilibili.com/302417610/,如有侵权,请联系q进行删除:3623472230

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

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

相关文章

ARM异常处理(2):中断的输入和挂起的6种情况分析

本节将描述中断输入和挂起的分析&#xff0c;这也同样适用于NMI输入&#xff0c;NMI在大多数情况下都将立即执行&#xff0c;除非&#xff1a;已经在执行NMI中断处理程序、由调试器暂停或由于一些严重的系统错误导致芯片锁定。 1、 当一个中断输入时&#xff0c;它将被挂起&…

Process.Start() 报错:系统找不到指定文件

今天在工作中遇到调用浏览器打开页面&#xff0c;代码报错&#xff1a;System.ComponentModel.Win32Exception:“系统找不到指定的文件。” 代码如下&#xff1a; ProcessStartInfo info new ProcessStartInfo("chrome.exe");// 打开一个新的chrome独立窗体启动info…

TI DSP的中断

F28069的中断数是96个&#xff0c;分为12组 The PIE block can support 96 individual interrupts that are grouped into blocks of eight.Each group is fed into one of 12 core interrupt lines (INT1 to INT12) 比如常用的的CPU0定时器这个中断就是在第一组的第7个&#x…

Java项目:SSM新闻网站管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 管理员角色包含以下功能&#xff1a; 管理员登录,新闻管理,类别管理,用户管理,管理员管理,广告管理等功能。 用户角色包含以下功能&#xff1a;…

水溶性,非反应性,含有游离羧酸功能----cy染料 近红外荧光亲水CY7 COOH;Sulfo-CY5/CY7 COOH

近红外荧光亲水染料Sulfo-Cyanine7 carboxylic acid Sulfo-Cyanine7 carboxylic acid&#xff1b;SSulfo-Cyanine7 COOH;Sulfo-CY7 COOH;磺酸基-Cy7羧酸;磺化Cy7羧酸 产品名称&#xff1a;磺酸基-Cy3 羧酸 英文名称&#xff1a;Sulfo-Cyanine7 carboxylic acid 其他名称&#…

数据趣事:豪掷2200亿美元举办的世界杯有多精彩!世界杯趣事你知道哪些

2022卡塔尔世界杯正如火如荼的进行着&#xff0c;此次的卡塔尔世界杯也是中东和阿拉伯地区首次举办&#xff0c;为此卡塔尔更是豪掷2200亿美元&#xff0c;远超历届主办国。 本届世界杯共有32支来自不同国家的队伍&#xff0c;他们都有一个共同的奋斗目标——捧起大力神杯&…

[附源码]计算机毕业设计通用病例管理系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java网上私厨到家服务平台dp28s

做毕业设计一定要选好题目。毕设想简单&#xff0c;其实很简单。这里给几点建议&#xff1a; 1&#xff1a;首先&#xff0c;学会收集整理&#xff0c;年年专业都一样&#xff0c;岁岁毕业人不同。很多人在做毕业设计的时候&#xff0c;都犯了一个错误&#xff0c;那就是不借鉴…

消息队列的持久化、分发策略、高可用和高可靠

原文&#xff1a;消息队列 一、什么是消息的持久化&#xff1f; 简单来说就是将数据存入磁盘&#xff0c;而不是存在内存中随服务器重启断开而消失&#xff0c;使数据能够永久保存。 常见的持久化方式 二、消息队列的分发策略 MQ消息队列有如下几个角色 1&#xff1a;生产…

CNCC技术论坛|分布式数据库HTAP的探索与实践

本文转载自微信公众号“中国计算机学会” 编者按 12月8-10日&#xff0c;中国计算机协会即将全线上举办CNCC2022&#xff0c;大会覆盖118个计算行业、人工智能、云计算、教育、安全等30个热门专业领域的技术论坛&#xff0c;700余位专家将着力探讨计算技术与未来宏观发展趋势&a…

多通道LMMSE图像超分辨复原方法研究-附Matlab代码

⭕⭕ 目 录 ⭕⭕✳️ 一、引言✳️ 二、多通道LMMSE复原算法✳️ 三、实验验证✳️ 四、参考文献✳️ 五、Matlab程序获取与验证✳️ 一、引言 数字图像处理又称为计算机图像处理&#xff0c;是指运用计算机处理平台及相关理论知识&#xff0c;将图像信号转化为数字信号&#…

G120变频器输入输出端子功能定义配置方法及示例

G120变频器输入输出端子功能定义配置方法及示例 1. 数字量输入功能(适用机型:CU240B-2(DP)/CU240E-2(DP/PN)/CU250S-2(DP/PN)) CU240B-2提供4路数字量输入,CU240E-2提供6路数字量输入,CU250S-2提供11路数字量输入和4路可作为输入/输出的数字量端子。在有必要时,也可以将模…

Splunk UBA 导入IDS - firesight 数据

1: 先看一下Splunk IDS 文档: Splunk UBA category to Splunk CIM field mapping reference - Splunk Documentation 里面清楚的记录着哪些是必须字段: 2: 下面开始配这些字段SPL: 发现就是报如下的错: 3: 最后把tag 的字段增加:attack_ids 就可以了,真是奇怪: index…

leecode#查找重复的电子邮箱#从不订购的客户#颠倒二进制数#位1的个数

题目描述&#xff1a; 编写一个 SQL 查询&#xff0c;查找 Person 表中所有重复的电子邮箱。 分析&#xff1a; 所有电子邮箱都是小写字母 重复的电子邮箱存在多次。要计算每封电子邮件的存在次数&#xff0c;我们可以使用以下代码 代码&#xff1a; select Email from (s…

操作系统内存分配(隔离,分段和分页)

内存分配问题 进程的总体目标是希望每个进程从逻辑上来看都可以独占计算机的资源。操作系统的多任务功能使得CPU能够在多个进程之间很好地共享&#xff0c;从进程的角度看好像是它独占了CPU而不用考虑与其他进程分享CPU的事情。操作系统的I/O抽象模型也很好地实现了IO设备的共…

【增长的本质】-

关于作者 塞萨尔伊达尔戈&#xff0c;出生在智利&#xff0c;现在是美国麻省理工学院媒体实验室宏观联系研究团队的主管。他是一位著名的跨界物理学家&#xff0c;最擅长的就是利用物理概念来分析和解释经济、文化领域的大问题。他还长期致力于研究促进经济增长和繁荣的因素&a…

2022最新xcode打包IPA(完整详细图文)​

本文详细讲述iOS的App开发后如何进行证书的创建和项目中如何配置证书及上传到苹果App管理后台后如何新增与更新版本。​ 前期准备:​ ① Mac OS电脑​ ② 一款开发完毕的App​ ③ 99美元的开发者证书一个(此证书提供App上传到App Store),苹果的另外一个299美元一年的证书打…

F28069的cpu定时器

工程搭建参考&#xff1a;https://blog.csdn.net/feisy/article/details/126380289 F28069有三个32位的CPU定时器&#xff1a;0,1,2。0&#xff0c;1可用&#xff0c;如果程序未使用DIS/BIOS&#xff0c;定时器2也可用。 CPU定时器相关的有5个信号&#xff0c;四个输入信号&…

jenkins调用metersphere自动化接口

metersphere自动化测试场景&#xff0c;可以用过jenkins job配至界面化传参数&#xff0c;传递给metersphere动态执行脚本。 1.下载metersphere jenkins插件 Releases metersphere/jenkins-plugin GitHub 2.jenkins安装metersphere插件 Jenkins 的插件管理页面&#xff0c…

谷歌翻译不能用了

最近发现谷歌翻译不能使用了&#xff0c;对于英语不好的我是个问题呀。 解决办法&#xff1a; 网上说要执行 win r 然后 进行ipConfig 结果我试了&#xff0c;没有一点用。 来先试试这个吧&#xff0c;直接就成功了。 看 图 找到 C:\Windows\System32\drivers\etc\hosts文件 …