pod是k8s api中的核心资源类型,它可以定义在json或yaml格式的资源清单中,由资源管理命令进行陈述式或声明式管理。创建时,用户可通过create或apply命令将请求提交到apiserver,并将其保存至集群状态存储系统etcd中,而后由调度器将其调度至最佳目标节点,并被相应节点的kubelet借助于容器引擎创建并启动。这种由用户直接通过api创建的pod对象也称为自助式pod。

一、陈述式对象配置管理方式

陈述式对象配置管理机制是由用户通过配置文件指定要管理的目标资源对象,而后再由用户借助于命令直接指定k8s系统要执行的管理操作的管理方式。常用命令有create、delete、replace、get和describe等。

1、创建pod资源

pod是标准的k8s api资源,在配置清单中使用kind、apiVersion、metadata和spec字段进行定义,status字段在对象创建后由系统自行维护。pod对象的核心功用在于运行容器化应用,在其spec字段中嵌套的必选字段是containers,它的值是一个容器对象列表,支持嵌套创建多个容器。使用kubectl create -f example.yaml 命令创建资源对象,-f选项也支持使用目录路径或URL,而且目标路径为目录时,还支持使用-R选项进行子目录递归。另外,--record选项可以将命令本身记录为目标对象的注解信息,而--save-config则能将提供给命令的资源对象配置信息保存于对象的注解信息中。

2、查看pod状态

get命令默认显示资源对象最为关键的状态信息,而describe命令则能打印出资源对象的详细状态,kubectl get命令既可以使用-o yaml或-o json选项输出资源对象的配置数据及状态,也能借助于--custom-columns选项定义要显示的字段。

3、更新pod资源

对于pod资源对象那些支持修改的属性,比如,容器的images字段,可将其完整的配置清单导出到配置文件中并更新相应的配置数据,而后使用replace命令基于陈述式对象配置的管理机制进行资源对象的更新,更新活动对象的配置时,replace命令要重构整个资源对象,因此,它必须基于完整格式的配置信息才能进行活动对象的完全替换。若要基于此前的配置文件进行替换,必须使用--force选项删除此前的活动对象,而后进行新建操作。如:“kubectl replace -f example.yaml --force”

4、删除pod资源

删除pod资源可用delete命令使用-f选项指定配置清单即可,如:“kubectl delete -f example.yaml”

二、声明式对象配置管理方式

陈述式对象配置清单管理机制中,同时指定的多个资源必须运行同一种操作,而且其replace命令是通过完全替换现有的活动对象来进行资源的更新操作,对于生产环境来说,这并非理想选择。声明式对象配置操作在管理资源对象时将配置信息保存于目标对象的注解中,并通过比较活动对象的当前配置、前一次管理操作时保存于注解中的配置,以及当前命令提供的配置生成更新补丁从而完成活动对象的补丁式更新操作。此类管理操作的命令由apply和patch等。如:“kubectl apply -f example.yaml”

而更新对象的操作,可在直接修改原有资源清单文件后再次对其执行apply命令来完成。此类操作也完全能够使用patch命令直接进行补丁操作。而资源对象的删除操作依然可以使用apply命令,但要同时使用--prune选项,如:“kubectl apply -f example.yaml --prune -l $LABEL”,但是此命令及其凶险,因为它将基于标签选择器过滤出来的对象,并检查由-f指定的目录中是否存在某配置文件已经定义了相应的资源对象,那些不存在的相应定义的资源对象将被删除。因此,删除资源对象的操作依然建议使用陈述式对象配置方式的命令“kubectl delete”进行,这样的命令格式操作目标明确且不易出现偏差。

转载于:https://www.cnblogs.com/caibao666/p/11159115.html

k8spod资源的基础管理操作相关推荐

  1. 啃Docker之必备基础管理操作

    啃Docker之必备基础管理操作 前言 一:环境准备 二:镜像的常规操作 三:容器的常规操作 前言 对于理论可以看我之前的博客 链接: https://blog.csdn.net/m0_4721994 ...

  2. K8sPod资源基础管理操作

    Pod是kubernets API中的核心资源类型,它可以定义在JSON或YAML格式的资源清单中,由资源管理命令进行陈述式或声明式管理.Pod是一组容器的集合,这些容器共享NetWORK.UTS及I ...

  3. git基础管理--操作远程仓库

    1. 查看远程仓库 查看远程仓库的名字 git remote 复制代码 项目clone下来时有默认的仓库名origin 查看详细的仓库名对应的 url git remote -v 复制代码 2. 添加 ...

  4. php实现文件夹管理器,php实现文件管理与基础功能操作

    文件的基本操作 先来看一下PHP文件基础操作,请看强大注释 var_dump(filetype("./img/11.png")); //判断返回得是文件还是目录,返回sile为文件 ...

  5. 利用文件摘要简化游戏资源的引用管理

    资源的引用管理是个有趣的话题,最近我在代码里实践了一种做法,可以在某些方面简化资源的管理,完成之后简单记录在这里.这篇文章先介绍传统的各种方式,然后简单说明一下,这个实践在传统方式的基础上做了哪些改善 ...

  6. UltraScale时钟资源和时钟管理模块

    UltraScale时钟资源和时钟管理模块 绪论 图2.1和2.2给出了UltraScale结构的时钟结构.从图中可以看出,基本的结构是由表示分段时钟行和列的CR块构成的CR以一个单元的方式排列,从而 ...

  7. php实现浏览文件夹按钮,php实现文件管理与基础功能操作

    php实现文件管理与基础功能操作2020-06-17 11:59:15 文件的基本操作 先来看一下PHP文件基础操作,请看强大注释 var_dump(filetype("./img/11.p ...

  8. 计算机应用基础操作题ppt,统考计算机应用基础PPT操作题.doc

    统考计算机应用基础PPT操作题.doc (2页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.90 积分 全国统考计算机应用基础ppt操作题1.打开考 ...

  9. Cisco Packet Tracer中的基础命令操作以及组织网络实验

    基于思科模拟器的路由基础命令操作 4.路由器的模式切换 5.路由器基本命令及实现功能 路由器命令小结: 基于思科模拟器的路由基础命令操作 1.打开Cisco packet tracer,选取路由器Ro ...

最新文章

  1. Android中对Log日志文件的分析[转]
  2. 什么是Android PendingIntent?
  3. 纵向表格_Excel如何把横向数据变纵向?教你一键快速实现
  4. python为什么中文要encoding-python 中文编码问题如何解决?
  5. Flash正式成为Googel Chrome浏览器内置插件
  6. 十七、爬虫实战,多线程抓取大搜网新车的数据
  7. 第三章计算机试题,计算机等级考试二级VB测试题(第三章)
  8. tp5更改入口文件到根目录的方法分享
  9. NET问答:null != variable 和 variable != null 到底有什么区别?
  10. c++ map iterator 获取key_Java遍历Map的4种方法
  11. anaconda安装keras_关于yolo模型的试安装及关于现阶段安排的一点想法
  12. java 消费者模式 多线程_[Java并发-24-并发设计模式] 生产者-消费者模式,并发提高效率...
  13. 【报告分享】女性自我保护手册,教你应对10种常见危险处境.pdf(附189页pdf下载链接)...
  14. 【论文写作】Springboot人才招聘网站如何画系统流程图
  15. 有专用DHCP服务器的网络的简单配置
  16. Windows Insider 最新重大升级
  17. 练习-Java类和对象之包的定义
  18. 牛客 NC24858 [USACO 2009 Nov S]Job Hunt
  19. 人脸识别之DeepID模型
  20. Unity之ASE从入门到精通 目录

热门文章

  1. ARM Linux异常处理之data abort(一)
  2. CRC循环冗余校验是如何纠错的
  3. pprint和print区别
  4. Day04 利用flex布局完成PC端网页设计CSS+html部分
  5. verification和validation的区别
  6. Qt 一个简单的word文档编辑器
  7. 下划线命名法 vs 驼峰命名法
  8. JS字符串padStart()方法,padEnd()方法
  9. App前端,Web前端,后端,微信小程序到底该学啥?
  10. 未来科技的五大发展趋势