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

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资源扩容与容缩)、PodTemplatepod模板)、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集群进行交互的时候&#xff0c;我们需要给K8S集群传输数据&#xff0c;传输信息&#xff0c;K8S才能按照我们的要求来运行&#xff0c;这个传输的文件&#xff0c;基本上都会通过资源清单进行传递。资源清单是我们跟集群进行…...

ABAP 笔记--内表结构不一致,无法更新数据库MODIFY和UPDATE

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

机器学习-3降低损失(Reducing Loss)

机器学习-3降低损失(Reducing Loss) 学习内容来自&#xff1a;谷歌ai学习 https://developers.google.cn/machine-learning/crash-course/framing/check-your-understanding?hlzh-cn 本文作为学习记录1.降低损失&#xff1a;迭代方法 迭代学习 下图展示了机器学习算法用于训…...

蓝桥杯备战(AcWing算法基础课)-高精度-减-高精度

目录 前言 1 题目描述 2 分析 2.1 第一步 2.2 第二步 3 代码 前言 详细的代码里面有自己的理解注释 1 题目描述 给定两个正整数&#xff08;不含前导 00&#xff09;&#xff0c;计算它们的差&#xff0c;计算结果可能为负数。 输入格式 共两行&#xff0c;每行包含一…...

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结束语 前言 随着智能设备的快速普及和多样化&#xff0c;以及编程语言的迅猛发展&#xff0c;构建一个无缝…...

【数据结构】双向带头循环链表实现及总结

简单不先于复杂&#xff0c;而是在复杂之后。 文章目录 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密钥&#xff0c;并将公钥配置到github配置Hexo与Github的联系检查github链接访问hexo生成的博客 一、Github新建仓库 登…...

音箱、功放播放HDMI音频解决方案之HDMI音频分离器HHA

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

天猫数据分析:2023年坚果炒货市场年销额超71亿,混合坚果成多数消费者首选

近年来&#xff0c;随着人们生活水平和健康意识的提升&#xff0c;在休闲零食市场中&#xff0c;消费者们也越来越关注食品的营养价值&#xff0c;消费者这一消费偏好的转变也为坚果炒货食品行业带来了发展契机。 整体来看&#xff0c;坚果炒货市场的体量较大。根据鲸参谋电商…...

YouTrack 用户登录提示 JIRA 错误

就算输入正确的用户名和密码&#xff0c;我们也得到了下面的错误信息&#xff1a; youtrack Cannot retrieve JIRA user profile details. 解决办法 出现这个问题是因为 YouTrack 在当前的系统重有 JIRA 的导入关联。 需要把这个导入关联取消掉。 找到后台配置的导入关联&a…...

题目 1163: 排队买票

题目描述: 有M个小孩到公园玩&#xff0c;门票是1元。其中N个小孩带的钱为1元&#xff0c;K个小孩带的钱为2元。售票员没有零钱&#xff0c;问这些小孩共有多少种排队方法&#xff0c;使得售票员总能找得开零钱。注意&#xff1a;两个拿一元零钱的小孩&#xff0c;他们的位置互…...

【lesson9】高并发内存池Page Cache层释放内存的实现

文章目录 Page Cache层释放内存的流程Page Cache层释放内存的实现 Page Cache层释放内存的流程 如果central cache释放回一个span&#xff0c;则依次寻找span的前后page id的没有在使用的空闲span&#xff0c;看是否可以合并&#xff0c;如果合并继续向前寻找。这样就可以将切…...

Java基础面试题-6day

I/O流基础知识总结 &#xff08;1&#xff09; io即输入输出流&#xff0c; 如何区分输入还是输入流 以内存为中介&#xff0c;当我们是将数据存储到内存即为输入&#xff0c;反之存储到外部存储器&#xff0c;即为输出 在Java中分输入输出流&#xff0c;根据数据处理又可以分…...

【Oracle 集群】RAC知识图文详细教程(三)--RAC工作原理和相关组件

RAC 工作原理和相关组件 OracleRAC 是多个单实例在配置意义上的扩展&#xff0c;实现由两个或者多个节点&#xff08;实例&#xff09;使用一个共同的共享数据库&#xff08;例如&#xff0c;一个数据库同时安装多个实例并打开&#xff09;。在这种情况下&#xff0c;每一个单独…...

二级C语言笔试2

(总分100,考试时间90分钟) 一、选择题 下列各题A)、B)、C)、D)四个选项中&#xff0c;只有一个选项是正确的。 1. 下列叙述中正确的是( )。 A) 算法的效率只与问题的规模有关&#xff0c;而与数据的存储结构无关 B) 算法的时间复杂度是指执行算法所需要的计算工作量 …...

如何计算两个指定日期相差几年几月几日

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

再识C语言 DAY13 【递归函数(超详细)】

文章目录 前言一、函数递归什么是递归递归的两个重要条件练习一练习二 递归与迭代练习三练习四在练习三、四中出现的问题 如果您发现文章有错误请与我留言&#xff0c;感谢 前言 本文总结于此文章 一、函数递归 什么是递归 函数调用自身的编程技巧称为递归 &#xff08;函数自…...

【Linux】权限管理

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

地理坐标系、空间坐标系、epsg查询网站

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

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker &#xff1b;并安装。 基础操作不再赘述。 打开 macOS 终端&#xff0c;开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

jmeter聚合报告中参数详解

sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample&#xff08;样本数&#xff09; 表示测试中发送的请求数量&#xff0c;即测试执行了多少次请求。 单位&#xff0c;以个或者次数表示。 示例&#xff1a;…...

安卓基础(Java 和 Gradle 版本)

1. 设置项目的 JDK 版本 方法1&#xff1a;通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分&#xff0c;设置 Gradle JDK 方法2&#xff1a;通过 Settings File → Settings... (或 CtrlAltS)…...

Vue 模板语句的数据来源

&#x1f9e9; Vue 模板语句的数据来源&#xff1a;全方位解析 Vue 模板&#xff08;<template> 部分&#xff09;中的表达式、指令绑定&#xff08;如 v-bind, v-on&#xff09;和插值&#xff08;{{ }}&#xff09;都在一个特定的作用域内求值。这个作用域由当前 组件…...

Vue3 PC端 UI组件库我更推荐Naive UI

一、Vue3生态现状与UI库选择的重要性 随着Vue3的稳定发布和Composition API的广泛采用&#xff0c;前端开发者面临着UI组件库的重新选择。一个好的UI库不仅能提升开发效率&#xff0c;还能确保项目的长期可维护性。本文将对比三大主流Vue3 UI库&#xff08;Naive UI、Element …...