十三、Kubernetes yaml资源清单详解

news2024/11/19 10:30:11

1、概述

kubectl提供了各种命令,来管理集群中的pod,但是这些命令都是为了方便运维测试,实际生产部署还得用yaml文件来部署,所以弄清楚各类资源的字段是非常重要的。

资源清单就是k8s当中用来定义pod的文件,语法格式遵循yaml语法,在yaml当中可以定义控制器类型,元数据,容器端口号等等等....,也可以针对于清单对pod进行删除等操作。

2、yaml资源清单各个字段中文详解

以Deployment为例 ,详解常用字段

小提示:
        #   在这里,可通过一个命令来查看每种资源的可配置项
        #   kubectl explain 资源类型         查看某种资源可以配置的一级属性
        #   kubectl explain 资源类型.属性     查看属性的子属性

apiVersion: apps/v1             #必填,版本号
kind: Deployment                #必填,资源类型
metadata:                       #必填,元数据
  labels:                       #自定义标签列表
    app: mynginx
  name: mynginx                 #Deployment名称
  namespace: dev                #Deployment命名空间
spec:                           #必填,Deployment管理的pod信息
  replicas: 1                   #管理pod副本个数
  selector:                     #选择器
    matchLabels:                #匹配标签选择器
      app: mynginx              #匹配标签,本例意思:Deployment控制器管理拥有app=mynginx标签的pod
  template:                     #模板
    metadata:                   #模板元数据
      labels:                   #模板标签,意思是此模板下所有容器均增加此标签
        app: mynginx
    spec:                       #必填,Pod中容器的详细定义
      containers:               #模板下拥有的容器,最少1个
        - image: nginx          #容器使用的镜像
          name: nginx           #容器名称
          imagePullPolicy: [ Always|Never|IfNotPresent ]  #获取镜像的策略
          command: [string]     #容器的启动命令列表,如不指定,使用打包时使用的启动命令
          args: [string]        #容器的启动命令参数列表
          workingDir: string    #容器的工作目录
          volumeMounts:         #挂载到容器内部的存储卷配置
            - name: string      #引用pod定义的共享存储卷的名称,需用volumes[]部分定义的的卷名
              mountPath: string #存储卷在容器内mount的绝对路径,应少于512字符
              readOnly: boolean #是否为只读模式
          ports:                #需要暴露的端口库号列表
            - name: string        #端口的名称
              containerPort: int  #容器需要监听的端口号
              hostPort: int       #容器所在主机需要监听的端口号,默认与Container相同
              protocol: string    #端口协议,支持TCP和UDP,默认TCP
          env:                    #容器运行前需设置的环境变量列表
            - name: string        #环境变量名称
              value: string       #环境变量的值
          resources:              #资源限制和请求的设置
            limits:               #资源限制的设置
              cpu: string         #Cpu的限制,单位为core数,将用于docker run --cpu-shares参数
              memory: string      #内存限制,单位可以为Mib/Gib,将用于docker run --memory参数
            requests:             #资源请求的设置
              cpu: string         #Cpu请求,容器启动的初始可用数量
              memory: string      #内存请求,容器启动的初始可用数量
          lifecycle:              #生命周期钩子
            postStart:            #容器启动后立即执行此钩子,如果执行失败,会根据重启策略进行重启
            preStop:              #容器终止前执行此钩子,无论结果如何,容器都会终止
          livenessProbe:          #对Pod内各容器健康检查的设置,当探测无响应几次后将自动重启该容器
            exec:                #对Pod容器内检查方式设置为exec方式
              command: [string]   #exec方式需要制定的命令或脚本
            httpGet:              #对Pod内个容器健康检查方法设置为HttpGet,需要制定Path、port
              path: string
              port: number
              host: string
              scheme: string
              HttpHeaders:
                - name: string
                  value: string
            tcpSocket:            #对Pod内的容器健康检查方式设置为tcpSocket方式
              port: number
              initialDelaySeconds: 0       #容器启动完成后首次探测的时间,单位为秒
              timeoutSeconds: 0           #对容器健康检查探测等待响应的超时时间,单位秒,默认1秒
              periodSeconds: 0            #对容器监控检查的定期探测时间设置,单位秒,默认10秒一次
              successThreshold: 0
              failureThreshold: 0
              securityContext:
                privileged: false
      restartPolicy: [Always | Never | OnFailure]  #Pod的重启策略
      nodeName: <string>          #设置NodeName表示将该Pod调度到指定到名称的node节点上
      nodeSelector: obeject       #设置NodeSelector表示将该Pod调度到包含这个label的node上
      imagePullSecrets:           #Pull镜像时使用的secret名称,以key:secretkey格式指定
        - name: string
      hostNetwork: false          #是否使用主机网络模式,默认为false,如果设置为true,表示使用宿主机网络
      volumes:                    #在该pod上定义共享存储卷列表
        - name: string            #共享存储卷名称 (volumes类型有很多种)
          emptyDir: {}            #类型为emtyDir的存储卷,与Pod同生命周期的一个临时目录。为空值
          hostPath: string        #类型为hostPath的存储卷,表示挂载Pod所在宿主机的目录
            path: string                #Pod所在宿主机的目录,将被用于同期中mount的目录
          secret:               #类型为secret的存储卷,挂载集群与定义的secret对象到容器内部
            scretname: string
            items:
              - key: string
                path: string
          configMap:               #类型为configMap的存储卷,挂载预定义的configMap对象到容器内部
            name: string
            items:
              - key: string
                path: string
status: {}

重要详解:

  • apiversion

        用来指定api的版本,定义的语法格式为group/version,比如我们要定义deployment控制器,那么我们的apiVersion:apps/v1,如果我们要定义自主式pod,那么需要定义apiVersion:v1,如果要获取有哪些apiVersion可以用如下命令

  • kind

        kind字段主要用于定义控制器类型,指的是yml文件定义的资源类型和角色,比如:我们想定义一个自助式pod,那么我们就应该定义kind:Pod,如果我们要定义一个deployment控制器管理的pod,那么我们就应该定义kind:Deployment

  • metadate  

        对于metadata字段为元数据,我们已经知道k8s是通过标签选择器的方式管理pod,因此,在metadata当中最重要的就是标签,我们可以在metadata当中定义名称空间,标签等,我们如果想查看metadata下可以定义哪些元数据可以使用kubectl explain pod.metadata命令来查看

labels:标签选择器,labels的值决定service控制器关联pod的重要选项

name:这里是自主式pod名称,如果是控制器pod,这里是控制器名称

namespace:名称空间,默认为default名称空间

annotations:资源注解,这里跟labels很像,都是键值对,但是不同点是,不能用于挑选资源对象,仅用于“元数据”

  • spec字段

         spec字段用来定义期望容器达到的状态,在spec字段当中可以定义多个容器,容器的名称,容器的镜像,拖取容器镜像的方式,暴露的端口号,存储卷,容器个数等,也就是说真正定义pod是在spec字段当中定义的。

查看spec详细用法命令

kubectl explain pod.spec

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

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

相关文章

C#语言实例源码系列-实现ID卡的识别

专栏分享点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册 &#x1f449;关于作者 众所周知&#xff0c;人生是一个漫长的流程&#xff0c;不断克服困难&#xff0c;不断反思前进的过程。在这个过程中…

Vlan的原理与配置

传统以太网的问题 规模大了&#xff0c;之后导致性能也很差&#xff0c;广播会增加 解决&#xff1a;用Vlan&#xff0c;不受地域限制&#xff0c;同一Vlan内的设备才能直接进行二层通信 实验 首先配置以上vlan与电脑ip 配置IP之后可以进行ping命令测试刚开始是连通的&#x…

计算机视觉实战----AlexNet网络及使用colab跑YoloV5代码

系列文章目录 文章目录系列文章目录前言一、用colab薅羊毛二、使用百度飞浆操作三、二、使用步骤1.引入库2.读入数据总结前言 一、用colab薅羊毛 Colaboratory 简称“Colab”&#xff0c;是 Google Research 团队开发的一款产品。在 Colab 中&#xff0c;任何人都可以通过浏览…

分享107个PHP源码,总有一款适合您

链接&#xff1a;https://pan.baidu.com/s/1Su77mBUx87vk0lzSLyvnyw?pwdyo96 提取码&#xff1a;yo96 PHP源码 分享107个PHP源码&#xff0c;总有一款适合您 page_count 1 # 每个栏目开始业务content"text/html; charsetgb2312"base_url "https://down.c…

基于 Spring Boot 的 RESTful API 设计与实现

RESTful 是一种规范&#xff0c;符合 RESTful 的 Api 就是 RESTful Api。简单的说就是可联网设备利用 HTTP 协议通过 GET、POST、DELETE、PUT、PATCH 来操作具有 URI 标识的服务器资源&#xff0c;返回统一格式的资源信息&#xff0c;包括 JSON、XML、CSV、ProtoBuf、其他格式。…

OpenVINS 官方文档 第一部分

参考链接&#xff1a;OpenVINS https://docs.openvins.com/index.html 1. Getting Started 欢迎来到OpenVIINS项目&#xff01;以下指南将帮助新用户下载软件并在我们支持的数据集上运行。此外&#xff0c;我们还提供有关如何在我们的系统上运行您自己的传感器的信息&#xff0…

《500强高管谈VE价值工程》-对经营变革期下VE的期待

文章出处&#xff1a;日本VE协会杂志 文章翻译&#xff1a;泰泽项目部 关注泰泽&#xff1a;实现高利润企业 《500强高管谈VE价值工程》-对经营变革期下VE的期待 作者: 鹿岛建设常务董事小野馨喜 随着21世纪的到来&#xff0c;社会结构和经济环境正在发生重大转变&…

MobPush 创建推送

功能说明 MobPush提供遵循REST规范的HTTP接口&#xff0c;适用各开发语言环境调用。 IP绑定 工作台可以绑定服务器IP地址&#xff0c;未绑定之前所有IP均可进行REST API的调用&#xff0c;绑定后进仅绑定的IP才有调用权限。 调用地址 POSThttp://api.push.mob.com/v3/push/c…

东南亚开年大促必爆商品;2023Lazada家居家饰需求品类来袭

为持续提升商家体验&#xff0c;保障经营效率&#xff0c;2023年Lazada平台将调整Birthday sale生日大促的活动时间节奏 2023年6个国家站点&#xff08;印尼、马来西亚、菲律宾、新加坡、泰国、越南&#xff09;均会将生日大促提前至2023年3月3日开始。 家居家饰需求清单&…

什么是快速排序?

本文首发自「慕课网」&#xff0c;想了解更多IT干货内容&#xff0c;程序员圈内热闻&#xff0c;欢迎关注&#xff01; 作者| 慕课网精英讲师 JdreamZhang 快速排序&#xff08;Quick Sort&#xff09;&#xff0c;是计算机科学与技术领域中非常经典的一种排序算法&#xff0…

华为云工程师HCIA——桌面云解决方案概述

一、桌面云解决方案概述 瘦终端和胖终端 瘦终端&#xff1a;提供屏幕&#xff0c;和很小的计算能力胖终端&#xff1a;提供主要计算能力 桌面云架构VDI与IDV 华为桌面云解决方案逻辑架构 FusionCompute云平台架构 桌面云的优势 二、桌面云组件介绍 接入和访问控制层 WI&…

图像处理(2)——图像特征提取LBP

图像处理&#xff08;2&#xff09;——图像特征提取LBP 其实现在大家都说图像处理&#xff0c;其实计算机是不认识图片的&#xff0c;之所以可以处理图像&#xff0c;其实图像就是一个个矩阵&#xff0c;其实是数字&#xff0c;转而其实都是在处理数字。深度学习在图像上的建…

数字图像处理实验——数字图像处理初步

一、实验目的与要求 1.熟悉及掌握在MATLAB中能够处理哪些格式的图像&#xff1b; 2.熟练掌握在MATLAB中如何读取图像及图像的属性信息&#xff08;大小、颜色、亮度&#xff08;灰度&#xff09;、宽度、高度等&#xff09;&#xff1b; 3.掌握如何在MATLAB中按照指定要求存储一…

Windows 内核安全编程技术实践

《Windows 内核安全编程技术实践》&#xff0c;这是一本Windows 10内核安全开发系列丛书&#xff0c;探索 AntiRootKit 反内核工具核心原理与技术实现细节&#xff0c;揭开ARK工具的神秘面纱&#xff0c;本书以实战角度出发摒弃了大量无用的专业术语&#xff0c;欢迎阅读并提出…

在Qt中设置窗体背景颜色及透明度的方法介绍

本文主要介绍在 Qt 中设置窗体背景颜色及透明度的方法。 说明&#xff1a; 本文中的应用程序是面向 Windows 操作系统的&#xff1b;本文中使用的 Qt Creator 版本号为&#xff1a;7.0.0&#xff1b;本文中使用的 Qt 版本号为&#xff1a;5.14.2。 1 利用样式表&#xff08;S…

Github每日精选(第82期):还在用logging试试loguru

Loguru 如果你还在使用logging&#xff0c;不妨花点时间来看看Loguru&#xff0c;Loguru是一个Python日志记录的库。 您是否曾懒于配置记录器而使用print&#xff08;&#xff09;&#xff1f;。。。 我确实这样做了&#xff0c;但日志记录对于每个应用程序来说都是基本的&a…

Redis集群系列十二 —— 故障转移二

场景 模拟集群中有一个 master 宕机场景。 故障转移自动故障转移和手动故障转移。 自动故障转移 打开日志监控 为了更好折查看效果&#xff0c;通过 watch 命令实时查看集群的动态日志变化&#xff0c;如图&#xff1a; watch redis-cli -p 30001 cluster nodes 注意&#…

用SQL语句进行数据库查询(复杂查询)

前言 &#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏: &#x1f354;&#x1f35f;&#x1f32f; c语言初阶 &#x1f511;个人信条: &#x1f335;知行合一 &#x1f349;本篇简介:>:上一篇学习了如何使用SQL语句进行简单的数据查询,本篇…

C++ 简单工厂模式 与 工厂模式

简单工厂模式&#xff1a; 一个工厂&#xff0c;多个产品。产品需要有一个虚基类。通过传入参数&#xff0c;生成具体产品对象&#xff0c;并利用基类指针指向此对象。通过工厂获取此虚基类指针&#xff0c;通过运行时多态&#xff0c;调用子类实现。 注意&#xff1a;简单工厂…

S32K144—autoMBD是什么?

基于模型的设计&#xff08;Model-Based Design&#xff0c;MBD&#xff09;是一项非常具有发展潜力的技术&#xff0c;autoMBD 致力于分享和传播 MBD 相关技术&#xff0c;让更多人可以快速、高效地在项目开发中使用 MBD。 MBD能做什么&#xff1f; 从大的范围来说&#xff…