资源清单

清单书写格式:
vim pod.yml ##创建一个yml文件

apiVersion: group/version ##指明api资源属于那个群组和版本,同一个组可以有多个版本
kind:  ##标记创建的资源类型,k8s主要支持以下资源类别Pod,ReplicaSet,Deployment,Statefulset,DaemonSet,Job,Cronjob   ##这些资源中选一个。
metadata:  ##元数据name:   ##对象名称namespace:  ##对象属于哪个命名空间labels:     ##指定资源标签,标签是一种键值数据
spec:   ##定义目标资源的期望状态

以上是一个清单的大概书写格式,在书写清单时我们也可以通过修改别人书写的清单来完成目标。前提是,我们得看懂清单里面的内容。接下来将一一讲解参数的含义。

参数名/字符类型 说明
version / String 这里指的是k8s API的版本,目前基本上是v1,可以用kubectl api-versions命令查询
Kind / String 这里指的是yaml文件定义的资源类型和角色。如pod
metadata / Object 元数据对象。固定值就写metadata
metadata.name / String 元数据对象的名字。这里由我们编写。比如命名pod的名字
metadata.namespace / String 元数据对象的命名空间,由我们自身定义
spec / Object 详细定义对象,固定值就写Spec
spec.containers[] / list 这里是Spec对象的容器列表定义,是个列表
spec.containers[].name / String 这里是定义容器的名字
spec.containers[].image / String 这里是定义要用到的镜像名称
spec.containers[].imagePullPolicy / String 定义镜像拉取策略,有Always,Nerver,IfNotPresent三个值可选。Always:意思是每次都尝试重新拉取镜像。Nerver:表示仅使用本地镜像。IfNotPresent:如果本地有镜像就使用本地镜像,没有就拉取在线镜像。上面三个值都没有设置的话,默认是Always。
spec.containers[].commaned / List 指定容器启动命令,因为是数组可以指定多个,不指定则使用镜像打包时使用的启动命令。
spec.containers[].args / List 指定容器启动命令参数因为是数组可以指定多个
spec.containers[].workingDir / String 指定容器的工作目录
spec.containers[].volumeMounts[] / List 指定容器内部的存储卷的配置
spec.containers[].volumeMounts[].name / String 指定可以被容器挂载的存储卷的名称
spec.containers[].volumeMounts[].mountPath / String 指定可以被容器挂载的存储卷的路径
spec.containers[].volumeMounts[].readOnly / String 设置存储卷路径的读写模式,true或者false,默认为读写模式
spec.containers[].ports[] / List 指定容器需要用到的端口列表
spec.containers[].ports[].name / String 指定端口名称
spec.containers[].ports[].containerPort / String 指定容器要监听的端口号
spec.containers[].ports[].hostPort / String 指定容器所在主机需要监听的端口号,默认根上面containerPort相同,注意设置了hostPort同一台主机无法启动改容器的相同副本(因为主机的端口号不能相同,这样会冲突)
spec.containers[].ports[].protocol / String 指定端口协议,支持TCP和UDP,默认值为TCP
spec.containers[].env[] / List 指定容器运行前需设置的环境变量列表
spec.containers[].env[].name / String 指定环境变量名称
spec.containers[].env[].value / String 指定环境变量值
spec.containers[].resources / Object 指定资源限制和资源请求的值(这里开始就是设置容器的资源上限)
spec.containers[].resources.limits / Object 指定设置容器运行时资源的运行上限
spec.containers[].resources.limits.cpu /String 指定CPU的限制,单位为core数,将用于docker run --cpu-shares参数(这里前面文章Pod资源限制有讲过)
spec.containers[].resources.limits.memory / String 指定MEM内存的限制,单位为MIB、GIB
spec.containers[].resources.requests / Object 指定容器启动和调度时的限制设置
spec.containers[].resources.requests.cpu / String CPU请求,单位为core数,容器启动时初始化可用数量
spec.containers[].resources.requests.memory / String 内存请求,单位为MIB 、GIB,容器启动的初始化可用数量
kubectl api-versions   ##查询api有哪些群组/版本



从上面选取某一个来指明api资源属于那个群组和版本。这里我们通常使用的是v1。

kubectl explain pod   ##查询帮助文档


kubectl explain pod.kind  ##查询kind项就直接pod.kind就行了。

kubectl explain plot.spec


我们来创建一个简单的清单文件:

mkdir mainfest  ##建立一个目录
cd mainfest  ##进入该目录中
vim pod.yml  ##创建.yml文件

kubectl create -f pod.yml  ##创建pod,这里因为pod是自主式pod所以可以使用create -f,用 apply -f 也可以,我们经常使用后者
kubectl get pod -o wide  ##查看一下pod

vim pod.yml  ##更改一下文件

kubectl delete -f pod.yml  ##将原来的myapp pod 删除掉
kubectl create -f pod.yml   ##创建新的pod
kubectl get pod  -o wide   ##查看pod


我们再来写一个清单,这次copy别人的清单。

\vi pod2.yml  ##创建pod2.yml清单,使用\是为了粘贴时转译一下。
vim pod2.yml  ##再次打开pod2.yml文件




kubectl apply -f pod2.yml  ##提交pod2.yml文件
kubectl get pod   ##查看pod
kubectl get pod --show-labels  ##查看pod标签


节点扩容:

vim  pod2.yml  ##编辑pod2.yml文件

kubectl apply -f pod2.yml
kubectl get pod  ##查看pod
kubectl get pod -o wide



镜像版本的更换。

vim pod2.yml   ##修改一下pod2.yml文件

kubectl delete -f pod2.yml
kubectl apply -f pod2.yml
kubectl get pod -o wide ##查看pod


kubectl delete -f pod.yml  ##删除使用此文件创建出来的pod
kubectl delete -f pod2.yml  ##删除使用此文件创建出来的pod


vim pod.yml   ##编辑pod.yml文件

kubectl apply -y pod.yml
kubectl get pod
kubectl describe pod myapp  ##查看myapp Pod的详细信息




kubectl delete -f pod.yml  ##删除掉刚才的myapp pod
vim pod.yml   ##编辑pod.yml

kubectl apply -f pod.yml
kubectl get pod


能看到还是有一个不能创建成功,这是因为busyboxplus他运行时会开启一个shell,然而目前没有人使用这个shell,所以他开启失败,而myapp镜像他是后台运行一个程序。

kubectl delete -f pod.yml
vim pod.yml

kubectl apply -f pod.yml
kubectl get pod


现在能看见俩个都运行成功。

Kubectl attche myapp -c demo -it   ##交互式运行Pod里面的指定容器

kubectl exec -it myapp -c myappv1 -- sh



imagePullPolicy 镜像的拉取设置:

vim pod.yml  ##编辑文件


containerPort 容器端口,hostPort 端口映射:

vim pod.yml

kuebctl delete -f pod.yml
kubectl apply -f pod.yml
kubectl get pod
kubectl get pod -o wide


端口映射我们走的是nat模型:


spec.hostNetwork:
这种方式是直接使用宿主机网络

vim pod.yml

kubectl get pod
kubectl delete -f pod.yml
kubectl apply -f pod.yml
kubectl get pod
kubectl get pod -o wide



restart Policy:

上面是通过命令行运行来实现pod不重启,我们当然也可以将他写在清单里面:

vim pod.yml

kubectl get pod
kubectl delete pod.yml
kubectl apply pod.yml
kubectl get pod



当我们在写清单时也可以查看以下文件来做参考:




resources.request, resources.limits:

vim pod.yml

kubectl get pod
kubectl delete -f pod.yml
kubectl apply -f pod.yml
kubectl get pod
kubectl describe pod myapp



labels 标签+节点标签选择器:

kubectl get pod --show-labels  ##查看pod的标签
kubectl get node  --show-labels   ##查看node节点的标签


kubectl get pod
kubectl delete -f pod.yml
vim pod.yml




kubectl apply -f pod.yml
kubectl get pod
kubectl get pod -o wide

kubectl delete -f pod.yml
vim pod.yml

kubectl apply -f pod.yml
kubectl get pod -o wide
kubectl get pod --show-labels   ##查看pod的标签


修改标签:

kubectl label pod myapp app=myapp --overwrite

Kubernete(k8s)—资源清单相关推荐

  1. k8s资源清单和Pod

    k8s资源清单和Pod 1 资源清单-介绍和常用字段 1.1 K8s中的资源分类 1.2 YAML格式 1.3 YAML数据类型 1.4 常用字段的解释 2.资源清单-容器的生命周期解析 2.1 Po ...

  2. k8s 命令 重启_快速入门Kubernetes(K8S)——资源清单

    上篇文章给搭建搭建了企业私有服务,本篇文章给大家介绍下k8s中的 资源清单 本篇文章大部分全都是理论.耐心看完将会刷新你对k8s的认知. 一. k8s中的资源 1.1 什么是资源? K8s中所有的内容 ...

  3. k8s资源清单注解大全

    文章目录 一.资源清单格式 二.字段配置格式 三.常用资源清单格式定义 1.通用字段 2.metadate相关字段 3.pod相关字段 1)mainC字段 1.探针字段 1.就绪探针 2.存活探针 2 ...

  4. K8s资源清单定义入门

    一.K8S中常见的资源 Kubernetes中把资源实例化以后称之为对象,这里先介绍K8S中常见的核心资源有哪些: 工作负载型资源(workload):Pod.ReplicaSet.Deploymen ...

  5. (三)k8s资源清单

    一.k8s中的资源 K8s中所有的内容都抽象为资源,资源实例化之后,叫做对象,那么这些资源不能在同一空间下重名 名称空间级别(namespace) 工作负载型资源( workload):Pod. Re ...

  6. k8s资源清单:常用字段说明及pod增删查示例

    查看参数的方法 kubectl explain pod #查看pod的字段 kubectl explain pod.apiVersion 必须存在的属性 额外参数项 pod示例 vim pod.yam ...

  7. k8s yaml资源清单格式

    k8s由于资源比较多,组合起来参数众多,不适合用cli传参的形式. 因此用yaml文件的形式传参给k8s. yaml文件相当于剧本,运维人员相当于制片人,k8s相当于导演,docker相当于剧务.po ...

  8. k8s集群部署——Pod管理和资源清单

    文章目录 一.Pod管理 二.资源清单 三.Pod生命周期 四.今日报错 一.Pod管理 Pod是可以创建和管理Kubernetes计算的最小可部署单元,一个Pod代表着集群中运行的一个进程,每个po ...

  9. @kubernetes(k8s)的kubectl的使用及资源类型pod生命周期与资源清单详解

    文章目录 kubernetes 一.kubernetes kubectl的使用 1.kubectl 的概述: 2.kubectl的使用 2.kubectl可操作的资源对象类型 3.kubectl子命令 ...

最新文章

  1. 太晚睡不着的落寞与开心(记近况)
  2. python_控制台输出带颜色的文字方法
  3. proteus仿真micropython_[MicroPython]TurniBit开发板DIY自动窗帘模拟系统
  4. 从入门到放弃,.net构建博客系统(二):依赖注入
  5. java scala 混合打包_scala和java混合开发打包
  6. 最热门的10个Java微服务框架
  7. 【MyBatis框架】Mybatis开发dao方法第二部分
  8. 无法卸载_六月累积更新又出问题:打印机故障 部分程序无法打开和卸载
  9. 计算机辅助园林设计常用软件,计算机辅助园林设计应用探讨.doc
  10. php页面采集正则,PHP simple_html_dom.php+正则 采集文章代码
  11. a good website to test OTP
  12. loadrunner11 linux服务器,loadrunner11监控linux服务器性能
  13. 怕被发垃圾邮件?用临时邮箱来注册账号
  14. EFcore数据库随机排序获取数据
  15. BigDecimal加减乘除计算
  16. 伊利诺伊香槟大学计算机专业排名,伊利诺伊大学香槟分校专业排名一览及最强专业推荐(QS世界大学排名)...
  17. Flask租房项目总结
  18. 5G NR 调度、帧结构相关
  19. 用vivo手机拍照一定要先打开这个设置,不然白浪费这么强大的手机
  20. LaTeX代码: 表格 ← 利用 tabular

热门文章

  1. Pytest自动化框架-权威教程05-Pytest fixtures:清晰 模块化 易扩展
  2. python TCP 通信
  3. calico网络原理分析
  4. 基于STM32的老人出行小助手设计与实现(OneNet)
  5. echarts 网格属性_echarts 绘制网格 教你使用graphic
  6. 联想计算机的未来发展,七成用户非常看好联想笔记本前景
  7. 你知道怎么健康安全的佩戴蓝牙耳机吗?双11五款高音质小清新蓝牙耳机推荐
  8. 【Android】系统自带的主题与样式(theme and style)
  9. python--读取config配置文件
  10. Word 怎么画三线表