在讲资源清单之前,先给大家介绍一下究竟什么是Kubernetes资源?有几种资源?

① · 资源分类:

① · 1 工作负载:pod、rs(ReplicasSet)、deploy(Deployment)、sts(StatefulSet)、ds(DaemonSet)、job、cronjob

① · 2 服务发现及负载均衡:svc(Service)、ing(Ingress)

① · 3 配置与存储:cm(ConfigMap)、Secret、Volume、pv( persistentvolumes )、pvc、sc(StorageClasses)DownwardAPI

① · 4 集群级:ns(Namespace),Node,Role,ClusterRole,RoleBinding,ClusterRoleBinding

① · 5 元数据: HPA,PodTemplate,LimitRange

这么多种分类看完已经晕了,其实每种分类下面还有好多好多字段需要你自己定义 ,今天我们只介绍一种自主式清单 【pod自主式清单】 。

什么是自主式pod?和kubectl run的pod又有什么区别?

我们接触的pod大多数是控制器控制的pod,那么今天讲的是自主式pod(也就是由yaml文件来创建的pod),也就是pod自己去控制自己,防止pod被控制器杀死。(虽然这种pod应用的场景不是很多,但是只要熟悉了pod的清单,再理解其他几种类型的资源就会非常好理解) ② · 1 看看pod清单里面都有哪些字段

想要查看详细信息就使用kubectl explain pod 想要查看下面的子字段的话kubectl explain pod.apiVersion 即可~~ apiVersion kind metadata spec 这四个字段是必须有的,下面就看看一份简单的pod清单应该长什么样

apiVersion: v1        ##版本为v1
kind: Pod               ##资源类型为Pod
metadata:              ## 元数据,下面是需要配置的子字段,这里缩进字符要保持一致name: pod-demo      ## pod名namespace: default    ##pod所在的名称空间labels:                   ##标签-- 下面全用KV格式书写,这里我们给这个pod 打上两个标签  ↓app: pod-demo  release: bata
spec:           containers:              ##容器- name: app-container            ##容器名image: ikubernetes/myapp:v1     ##镜像地址

现在我们就试试用这个文件创建第一个自主式pod 创建命令 kubectl create -f pod-demo.yaml 删除命令 kubectl delete -f pod-demo.yaml

这样一个自主式pod就创建好了,但是好像还不够定制化,下面就详细介绍一下自主式pod可以定义那些字段 可定义的字段太多了,这里我总结了大部分常用指标,大家当字典看吧~

spec.nodeSelector <map[string]string>
pod.spec.nodeSelector: #指定对象的调度节点,节点必须存在
pod.spec.restartPolicy <string>
pod.spec.restartPolicy:#容器的重启策略。有三种Always(只有退出就重启),OnFailure(失败退出时不重启),Never(只要退出就不重启),kubelet重新启动的已退出容器将以指数退避延迟(10秒,20秒,40秒......)重新启动,上限为五分钟,并在成功执行十分钟后重置
spec.containers.image.imagePullPolicy  <string>        #镜像的下载策略。有三种:Always(总是去仓库下载) ,Never(从不去仓库下载) , IfNotPresent(如果本地没有就去仓库下载)
spec.containers.ports:        #容器公开的端口列表。在这里公开端口可以为系统提供关于容器使用的网络连接的额外信息,但主要是提供信息。在这里不指定端口不会阻止该端口被公开。任何监听容器内默认的“0.0.0.0”地址的端口都可以从网络访问
spec.containers.ports.containerPort <integer> -required-    #pod暴露的端口,此端口仅是额外的信息,对端口是否被暴露没有影响
spec.containers.ports.hostPort <integer>   #主机上公开的端口
spec.containers.ports.protocol <string>    #端口的协议
spec.containers.ports.hostIP   <string>    #指定要绑定的主机
spec.containers.command <[]string> #运行的程序,类似于docker中的entrypiont,并且这里的命令不会运行在shell中,如果没有这个字段docker镜像会运行自己entrypiont中的指令
spec.containers.args <[]string>  #向docker镜像中传递参数 如果定义了这个字段,docker镜像中cmd命令不会被执行,如果引用变量使用$(VAR_NAME)格式引用,如果想使用命令引用的的方式,需要使用$$(VAR_NAME)方式来引用
#关于args和command的官方文档链接:https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/ 
spec.containers.volumeMounts
spec.containers.volumeMounts.name
spec.containers.volumeMounts.mountPath #可以被容器挂载的存储卷的路径,路径不能包含':' 符号
spec.containers.volumeMounts.subPath #可以被容器挂载的存储卷的路径,并且不会覆盖挂载点中的文件
spec.containers.volumeMounts.readOnly #是否只读,默认为false
spec.containers.resources
spec.containers.resources.limits    #资源限制
spec.containers.resources.limits.cpu  #CPU 上限, 可以短暂超过, 容器也不会被停止
spec.containers.resources.limits.memory :# 内存上限, 不可以超过; 如果超过, 容器可能会被终止或调度到其他资源充足的机器上
spec.containers.resources.requests   #资源需求
spec.containers.resources.requests.cpu :# CPU 请求, 也是调度 CPU 资源的依据, 可以超过
spec.containers.resources.requests.memory : #内存请求, 也是调度内存资源的依据, 可以超过; 但如果超过, 容器可能会在 Node 内存不足时清理

pause pod 什么是pod_Kubernetes 自主式Pod清单 干货太多先马住慢慢看相关推荐

  1. k8s pod MySQL环境变量_Kubernetes 配置Pod和容器(一)定义容器环境变量

    此页展示了如何给运行在Kubernetes Pod中的容器定义环境变量. 开始之前 必须有一个Kubernets集群,和一个能和集群沟通的kubectl命令行工具.如果你还没有集群,你可以用Minik ...

  2. 借助 Pod 删除事件的传播实现 Pod 摘流

    原文标题:Gracefully Shutting Down Pods in a Kubernetes Cluster 发布时间:Jan 26, 2019 原文链接:https://blog.grunt ...

  3. Error syncing pod, skipping: failed to “StartContainer“ for “POD“ with ErrImagePull: “image pull fai

    kubernetes:关于创建pod中结点始终处于creating状态的问题解决(Error syncing pod, skipping: failed to "StartContainer ...

  4. 自主式模块化无人机设计

    目 录 摘 要 I Abstract II 1 绪论 1 1.1 研究背景与意义 1 1.2 国内外研究现状 1 1.3 主要研究内容 2 2自主式模块化无人机的总体结构设计 3 2.1结构形式 3 ...

  5. 活动单导学计算机课,活动单导学 自主式研学

    [摘 要]学业水平测试重视基本知识.基本技能的考查,课堂复习效率至关重要.实施"活动单导学,自主式研学"是高中历史学科"小高考复习"课堂构建的基本模式,其课堂气 ...

  6. 关于文件访问无权限,无法枚举容器内对象,访问被拒绝等问题的傻瓜式解决办法,超级简单,小白必看!

    关于文件访问无权限,无法枚举容器内对象,访问被拒绝等问题的傻瓜式解决办法,超级简单,小白必看! 以win10为例,其他windows系统原理基本相同 1.右键需要更改的文件夹-属性-安全-高级-权限, ...

  7. k8s pod之间不能通信_Kubernetes 同 Pod 内的容器使用共享卷通信

    本文旨在说明如何让一个 Pod 内的两个容器使用一个卷(Volume)进行通信. Before you begin You need to have a Kubernetes cluster, and ...

  8. 自主式BI数据分析价值

    一.什么是自助式分析 自助式数据可视化分析是主动式的企业数据分析模式,它能够让业务人员直接参与数据分析,无需专业分析团队,借助于专业智能数据分析平台充分分析探索数据,获取第一手的数据分析结果,辅助商业 ...

  9. 【无人机】【2013.06】自主式无人机在搜救中的应用

    本文为挪威科技大学(作者:Vegard B Hammerseth)的硕士论文,共212页. 本报告介绍了一种使用自主无人机加强搜救行动的方法,并采取了使该系统投入使用的第一步.通过使用无人驾驶飞机,救 ...

最新文章

  1. 【第44题】【062题库】2019年OCP认证062考试新题
  2. querySelector用法改进
  3. sata接口_固态硬盘应该怎么选?是SATA接口还是M.2接口好
  4. js如何获取服务器端时间?
  5. 拖动无边框的登入窗口
  6. 【Linux】Linux的常用远程工具
  7. ExtJS2.0.1 ColumnTree控件使用心得
  8. kettle8调度监控平台(kettle-scheduler)开源
  9. 前端jq实现视频跟图片一起混播
  10. AutoCAD中添加块和块参照(转载)
  11. 计算机打印机副机无法打印,打印机共享无法打印怎么办,教您解决电脑打印机共享无法打印...
  12. 计算机专业的创新方向和创业情况,计算机专业创新创业教育模式探究
  13. libVLC 事件机制
  14. 关于护肤那些事(程序员必知,女朋友要考的)
  15. Zigbee学习——基本概念和串口
  16. 忘记密码,如何解除Excel的限制保护?
  17. 刀塔传奇这种类型的arpg客户端战斗架构设计
  18. 2.深入浅出:晶体管共射极、共集电极、共基极接法的特点——参考《模拟电子技术基础》清华大学华成英主讲
  19. GStreamer连接 IP 网络摄像机的实际例子
  20. 工程图学及计算机绘图宋卫卫,工程图学及计算机绘图习题集

热门文章

  1. linux server.xml日志参数,Linux Log4j+Kafka+KafkaLog4jAppender 日志收集
  2. 【Python基础知识-pycharm版】第五节-字典\集合
  3. linux内核分成如下五个子系统,linux内核主要由5个子系统 Linux内核由哪几个子系统组成?...
  4. windows下python 使用CRF++ python接口的配置
  5. 服务器select与gevent
  6. Python基础(十)--文件相关
  7. Java什么是重用_深度解析:java必须掌握的知识点——类的重用
  8. 【重版】朴素贝叶斯与拣鱼的故事
  9. Java面试进阶:Dubbo、Zookeeper面试题锦集
  10. 论文浅尝 | 「知识图谱」领域近期值得读的 6 篇顶会论文