Kubernetes-资源清单
一、k8s中的资源
什么是资源清单
我们跟kubernetes集群进行交互的时候,我们需要给K8S集群传输数据,传输信息,K8S才能按照我们的要求来运行,这个传输的文件,基本上都会通过资源清单进行传递。资源清单是我们跟集群进行有效交流的一个机制或一个格式。
1.什么是资源
K8s 中所有的内容都抽象为资源, 资源实例化之后,叫做对象
资源就是我们可以操作的一个又一个的类型,一个又一个特殊的内容的集合。
也就是说tomcat这个pod创建出来时,我们给他传递参数,他在创建的过程中,这个过程就叫实例化。过程执行以后,产生的pod,这个pod就叫对象。
一个资源可以抽象出多个对象,但是一个对象只能符合一个资源的特性。
2.k8s中存在哪些资源
(1)名称空间级别:
工作负载型资源: Pod、ReplicaSet、Deployment ...
服务发现及负载均衡型资源: Service、Ingress...
#service是四层负载均衡,ingress是七层负载均衡
配置与存储型资源:Volume(卷)、CSI(容器存储接口) ...
特殊类型的存储卷:ConfigMap(存配置文件的)、Secre(存密钥类型的) ...
#隔离单位,与linux内核中的空间含义不一样,别搞混了,只是k8s集群中的一个逻辑的分类而已
#名称空间只是一个逻辑性的隔离,并不是真正的隔离,跟docker里的和内核空间的是两回事
(2)集群级资源:
Namespace(名称空间)、Node(节点)、ClusterRole(集群角色)、ClusterRoleBinding(集群角色绑定)
#集群级别的资源,是不需要指定级别空间的
(3)元数据型资源:
HPA(资源扩容与容缩)、PodTemplate(pod模板)、LimitRange(资源限制)
#不能独立存在,必须要有依附
#HPA资源扩容与容缩,可以根据当前pod资源使用量情况,进行资源扩容与缩容
# PodTemplate:pod模板,必须依附在控制器里
# LimitRange:资源限制,必须依附在对应的pod上
二、资源清单
1.什么是资源清单
在 k8s 中,一般使用 yaml 格式的文件来创建符合我们预期期望的 pod ,这样的 yaml 文件我们一般称为资源清单。
资源实例化成对象,描绘中间这个过程,这个文件都叫资源清单。
资源清单不一定都是yaml模式,也可以是json格式。
kubectl get pod#获取pod资源对象kubectl get pod pod名 -o yaml#以yaml格式输出pod的信息kubectl get pod pod名 -o json#以json格式输出pod信息
2.资源清单的格式
(1)资源清单格式
apiVersion: group/apiversion
# 如果没有给定 group 名称,那么默认为 core,可以使用 kubectl api-versions
# 获取当前 k8s 版本上所有的 apiVersion 版本信息( 每个版本可能不同 )
kind:
#资源类别,标记创建的资源类型,k8s主要支持以下资源类别:
#Pod、ReplicaSet、Deployment、StatefulSet、DaemonSet、Job、Cronjob
metadata:
#资源元数据
name
#指定当前对象的名称,其所属的名称空间的同一类型中必须唯一
namespace
#指定当前对象隶属的名称空间,默认值为default
lables
#设定用于标识当前对象的标签,键值数据,常被用做挑选条件
annotations
#非标识键值数据,用来作为挑选条件,用于labels的补充。
主要目的是方便用户阅读查找
spec:
# 期望的状态(disired state)官方文件:单节点运行121个pod是一个比较固定的值。
status:
# 当前状态,本字段有 Kubernetes 自身维护,用户不能去定义。
<!--配置清单主要有五个一级字段,其中status用户不能定义,由k8s自身维护-->
apiVersion版本实验:
kubectl api-versions #查看组和版本,有些组名相同但是版本号不同,#最下方有个单独的v1版,这是默认的核心组v1版。#所谓核心组,可以理解为项目刚初始的时候,就加入公司创建那些基本功能的小组。#不同的k8s的版本,组和版本还不一样。kubectl explain pod #查看创建pod容器的版本信息。#查询到pod容器的版本是v1版,在apiVersion:v1这么写即可
kubectl explain deployment#查询deployment的版本
kubectl get pod pod名 -o yaml #以yaml文件输出pod的信息kubectl explain pod.spec.containers.image#不知道image怎么写的时候,查看帮助信息
kubectl explain pod.spec.containers#查看containers下面应该写哪些东西
(2)资源清单的常用命令
1)获取 apiversion 版本信息
[root@k8s-master01 ~]# kubectl api-versions
admissionregistration.k8s.io/v1beta1
apiextensions.k8s.io/v1beta1
apiregistration.k8s.io/v1
apiregistration.k8s.io/v1beta1
apps/v1
......(以下省略)
2)获取资源的 apiVersion 版本信息
[root@k8s-master01 ~]# kubectl explain pod
KIND: Pod
VERSION: v1
.....(以下省略)[root@k8s-master01 ~]# kubectl explain Ingress
KIND: Ingress
VERSION: extensions/v1beta1
3)获取字段设置帮助文档
[root@k8s-master01 ~]# kubectl explain pod
KIND: Pod
VERSION: v1DESCRIPTION:Pod is a collection of containers that can run on a host. This resource iscreated by clients and scheduled onto hosts.FIELDS:apiVersion <string>................
4)字段配置格式
apiVersion <string>#表示字符串类型
metadata <Object>#表示需要嵌套多层字段
labels <map[string]string>#表示由k:v组成的映射
finalizers <[]string>#表示字串列表
ownerReferences <[]Object>#表示对象列表
hostPID <boolean>#布尔类型
priority <integer>#整型
name <string> -required-#如果类型后面接 -required-,表示为必填字段
5)通过定义清单文件创建 Pod
apiVersion: v1 #核心组v1版本
kind: Pod #资源类别是Pod类别
metadata: #元数据name: pod-test #元数据当前Pod的名字叫pod-testnamespace: default #放在default名称空间里,如果这一行不写,默认也是default名称空间labels: #labels标签app: myapp #labels标签为app:myapp
spec: #期望containers: #容器组,pause不用指定,会自动创建- name: nginx #第一个容器名为myapp-1image: nginx:latest #使用的镜像为wangyanglinux/myapp:v1imagePullPolicy: IfNotPresent #镜像拉取策略为优先使用本地镜像。- name: busybox-1 #第二个容器名为busybox-1image: busybox:1.35.0 #使用的镜像为busybox:1.38.0,busybox是一个网络服务的工具包imagePullPolicy: IfNotPresentcommand: #command替换的不是cmd,替换的是inpoint。arts替换的是镜像里的cmd命令- "/bin/sh" - "-c"- "sleep 3600" #使busybox容器可以持久化运行3600秒。
#这样就相当于在一个pod中封装了两个mainC,一个mainC叫nginx,一个mainC叫busybox-1。
创建资源清单实验
vim pod-test.yamlapiVersion: v1
kind: Pod
metadata:name: pod-testnamespace: defaultlabels:app: nginx
spec:containers:- name: nginximage: nginx:latest- name: busybox-1image: busybox:1.35.0command:- "/bin/sh"- "-c"- "sleep 3600"kubectl create -f pod-test.yaml#运行资源清单,让资源实例化成对象kubectl get pod -o wide#查看pod的信息,以及部署的节点信息#状态有两个需要就绪,两个已经就绪,当前状态正在运行,重启次数0,创建时间2分29秒#如果重启次数1,2,3,4,5一直增加,说明当前的pod不稳定,原因有多种,例如:资源不够用;触发oome了;配置文件写错,运行运行着崩了。#也有可能刚开始不稳定,后来就稳定了,因为刚开始初始化不成功,后来成功了。#重启代表着内部的容器在重建。kubectl describe pod pod-test#查看pod的详情kubectl get events#获取整个集群的events事件信息kubectl get pod --show-labels#查看标签kubectl get pod -w#实时变化内容的展示#执行完之后,卡了,只有当前pod信息发生改变的时候,才会把改变的内容打印出来根据kubectl get pod -o wide命令查看pod运行的节点,登录节点。
docker ps -a | grep pod-test#可以看到有三个容器,nginx,busybox和pause
三、常用字段解释说明
相关文章:

Kubernetes-资源清单
一、k8s中的资源 什么是资源清单 我们跟kubernetes集群进行交互的时候,我们需要给K8S集群传输数据,传输信息,K8S才能按照我们的要求来运行,这个传输的文件,基本上都会通过资源清单进行传递。资源清单是我们跟集群进行…...

ABAP 笔记--内表结构不一致,无法更新数据库MODIFY和UPDATE
目录 ABAP 笔记内表结构不一致,无法更新数据库MODIFY和UPDATE ABAP 笔记 内表结构不一致,无法更新数据库 MODIFY和UPDATE 如果是使用MODIFY或者UPDATE...

机器学习-3降低损失(Reducing Loss)
机器学习-3降低损失(Reducing Loss) 学习内容来自:谷歌ai学习 https://developers.google.cn/machine-learning/crash-course/framing/check-your-understanding?hlzh-cn 本文作为学习记录1.降低损失:迭代方法 迭代学习 下图展示了机器学习算法用于训…...
蓝桥杯备战(AcWing算法基础课)-高精度-减-高精度
目录 前言 1 题目描述 2 分析 2.1 第一步 2.2 第二步 3 代码 前言 详细的代码里面有自己的理解注释 1 题目描述 给定两个正整数(不含前导 00),计算它们的差,计算结果可能为负数。 输入格式 共两行,每行包含一…...

AspNet web api 和mvc 过滤器差异
最近在维护老项目。定义个拦截器记录接口日志。但是发现不生效 最后发现因为继承的 ApiController不是Controller 只能用 System.Web.Http下的拦截器生效。所以现在总结归纳一下 Web Api: System.Web.Http.Filters.ActionFilterAttribute 继承该类 Mvc: System.Web.Mvc.Ac…...

HarmonyOS应用/服务发布:打造多设备生态的关键一步
目前 前言HarmonyOS 应用/服务发布的重要性使用HarmonyOS 构建跨设备的应用生态前期准备工作简述发布流程生成签名文件配置签名信息编译构建.app文件上架.app文件到AGC结束语 前言 随着智能设备的快速普及和多样化,以及编程语言的迅猛发展,构建一个无缝…...

【数据结构】双向带头循环链表实现及总结
简单不先于复杂,而是在复杂之后。 文章目录 1. 双向带头循环链表的实现2. 顺序表和链表的区别 1. 双向带头循环链表的实现 List.h #pragma once #include <stdio.h> #include <assert.h> #include <stdlib.h> #include <stdbool.h>typede…...

创建自己的Hexo博客
目录 一、Github新建仓库二、支持环境安装Git安装Node.js安装Hexo安装 三、博客本地运行本地hexo文件初始化本地启动Hexo服务 四、博客与Github绑定建立SSH密钥,并将公钥配置到github配置Hexo与Github的联系检查github链接访问hexo生成的博客 一、Github新建仓库 登…...

音箱、功放播放HDMI音频解决方案之HDMI音频分离器HHA
HDMI音频分离器HHA简介 HDMI音频分离器HHA具有一路HDMI信号输入,转换成一路HDMI信号、一路5.1光纤音频信号、一路5.1 SPDIF/同轴音频信号和一路模拟左右声道立体声信号输出,同时还支持EDID存储及兼容HDCP功能;分辨率最高支持1920*1080p&#…...

天猫数据分析:2023年坚果炒货市场年销额超71亿,混合坚果成多数消费者首选
近年来,随着人们生活水平和健康意识的提升,在休闲零食市场中,消费者们也越来越关注食品的营养价值,消费者这一消费偏好的转变也为坚果炒货食品行业带来了发展契机。 整体来看,坚果炒货市场的体量较大。根据鲸参谋电商…...

YouTrack 用户登录提示 JIRA 错误
就算输入正确的用户名和密码,我们也得到了下面的错误信息: youtrack Cannot retrieve JIRA user profile details. 解决办法 出现这个问题是因为 YouTrack 在当前的系统重有 JIRA 的导入关联。 需要把这个导入关联取消掉。 找到后台配置的导入关联&a…...
题目 1163: 排队买票
题目描述: 有M个小孩到公园玩,门票是1元。其中N个小孩带的钱为1元,K个小孩带的钱为2元。售票员没有零钱,问这些小孩共有多少种排队方法,使得售票员总能找得开零钱。注意:两个拿一元零钱的小孩,他们的位置互…...

【lesson9】高并发内存池Page Cache层释放内存的实现
文章目录 Page Cache层释放内存的流程Page Cache层释放内存的实现 Page Cache层释放内存的流程 如果central cache释放回一个span,则依次寻找span的前后page id的没有在使用的空闲span,看是否可以合并,如果合并继续向前寻找。这样就可以将切…...
Java基础面试题-6day
I/O流基础知识总结 (1) io即输入输出流, 如何区分输入还是输入流 以内存为中介,当我们是将数据存储到内存即为输入,反之存储到外部存储器,即为输出 在Java中分输入输出流,根据数据处理又可以分…...
【Oracle 集群】RAC知识图文详细教程(三)--RAC工作原理和相关组件
RAC 工作原理和相关组件 OracleRAC 是多个单实例在配置意义上的扩展,实现由两个或者多个节点(实例)使用一个共同的共享数据库(例如,一个数据库同时安装多个实例并打开)。在这种情况下,每一个单独…...
二级C语言笔试2
(总分100,考试时间90分钟) 一、选择题 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。 1. 下列叙述中正确的是( )。 A) 算法的效率只与问题的规模有关,而与数据的存储结构无关 B) 算法的时间复杂度是指执行算法所需要的计算工作量 …...

如何计算两个指定日期相差几年几月几日
一、题目要求 假定给出两个日期,让你计算两个日期之间相差多少年,多少月,多少天,应该如何操作呢? 本文提供网页、ChatGPT法、VBA法和Python法等四种不同的解法。 二、解决办法 1. 网页计算法 这种方法是利用网站给…...

再识C语言 DAY13 【递归函数(超详细)】
文章目录 前言一、函数递归什么是递归递归的两个重要条件练习一练习二 递归与迭代练习三练习四在练习三、四中出现的问题 如果您发现文章有错误请与我留言,感谢 前言 本文总结于此文章 一、函数递归 什么是递归 函数调用自身的编程技巧称为递归 (函数自…...

【Linux】权限管理
🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 一 、Linux中的用户1.1 Linux用户分类1.2 用户转换1.3 指令提权 二、Linux权限管…...

地理坐标系、空间坐标系、epsg查询网站
坐标系可用范围和详细信息的查询网站 简介 epsg.ruiduobao.com是一个可以查询gdal中所有坐标系信息的网站,可查询到坐标系的基准面、椭球体、中央子午线等相关信息,并对每个坐标系的可用范围在地图中进行了显示。详细信息可以看操作视频: e…...

系统思考:成长与投资不足
最近认识了一位95后年轻创业者,短短2年时间,他的公司从十几个人发展到几百人,规模迅速扩大。随着团队壮大,用户池也在持续扩大,但令人困惑的是,业绩增长却没有明显提升,甚至人效持续下滑。尽管公…...

如何以 9 种方式将照片从 iPhone 传输到笔记本电脑
您的 iPhone 可能充满了以照片和视频形式捕捉的珍贵回忆。无论您是想备份它们、在更大的屏幕上编辑它们,还是只是释放设备上的空间,您都需要将照片从 iPhone 传输到笔记本电脑。幸运的是,有 9 种方便的方法可供使用,同时满足 Wind…...

ARXML解析与可视化工具
随着汽车电子行业的快速发展,AUTOSAR标准在车辆软件架构中发挥着越来越重要的作用。然而,传统的ARXML文件处理工具往往存在高昂的许可费用、封闭的数据格式和复杂的使用门槛等问题。本文介绍一种基于TXT格式输出的ARXML解析方案,为开发团队提供了一个高效的替代解决方案。 …...

怎么快速判断一款MCU能否跑RTOS系统
最近有朋友在后台中私信我,说现在做项目的时候有时候总是会考虑要不要用RTOS,或者怎么考量什么时候该用RTOS比较好、 关于这个问题,我个人也是深有感触的,做开发这么久了,大大小小的产品都做过不少了。有用RTOS开发的…...

lesson04-简单回归案例实战(理论+代码)
理解线性回归及梯度下降优化 引言 在机器学习的基础课程中,我们经常遇到的一个重要概念就是线性回归。今天,我们将深入探讨这一主题,并通过具体的例子来了解如何利用梯度下降方法对模型进行优化。 线性回归简介 线性回归是一种统计方法&a…...
数据中心双活架构解决方案
数据中心双活架构解决方案 数据中心双活架构(Active-Active Data Center)旨在实现业务高可用、负载均衡和灾难自动切换。以下是完整的解决方案,涵盖架构设计、关键技术、实施步骤及最佳实践。 1. 双活架构设计 1.1 基本架构模型 同城双活(Metro Active-Active) 两个数据…...

基于SpringBoot+Redis实现RabbitMQ幂等性设计,解决MQ重复消费问题
解决MQ重复消费问题 一、实现方案 本方案参考 「RabbitMQ消息可靠性深度解析|从零构建高可靠消息系统的实战指南」,向开源致敬! 1、业务层幂等处理: 每个消息携带一个全局唯一ID,在业务处理过程中,首先检查…...

直线模组在手术机器人中有哪些技术挑战?
手术机器人在现代医疗领域发挥着越来越重要的作用,直线模组作为其关键部件,对手术机器人的性能有着至关重要的影响。然而,在手术机器人中使用直线模组面临着诸多技术挑战,具体如下: 1、高精度要求:手术…...

PHP与MYSQL结合中中的一些常用函数,HTTP协议定义,PHP进行文件编程,会话技术
MYSQL: 查询函数: 执行查询语句: 1.mysql_query("SQL语法"); 凡是执行操作希望拿到数据库返回的数据进行展示的(结果返回: 数据结果); 2.执行结果的处理:成功为结果集,失败为false; 成功返回结果:SQL指令没有错误,但是查询结果…...
读《Go语言圣经记录》(二):深入理解Go语言的程序结构
读《Go语言圣经记录》(二):深入理解Go语言的程序结构 在编程的世界里,Go语言以其简洁、高效和强大的并发能力而备受开发者青睐。今天,我将带大家深入探索Go语言的程序结构,通过详细解读《Go语言圣经》中的…...