理解什么是pod

  • pod基于deployment创建,删除deployment,pod也会被删除

基础pod的yaml文件的资源清单

点击查看列表
| 参数名                  | 类型   | 字段说明                                             |
| ----------------------- | ------ | ---------------------------------------------------- |
| apiVersion | String | K8S APl 的版本,可以用 kubectl api versions 命令查询 |
| kind | String | yam 文件定义的资源类型和角色 |
| metadata | Object | 元数据对象,下面是它的属性 |
| metadata.name | String | 元数据对象的名字,比如 pod 的名字 |
| metadata.namespace | String | 元数据对象的命名空间 |
| Spec | Object | 详细定义对象 |
| spec.containers[] | list | 定义 Spec 对象的容器列表 |
| spec.containers[].name | String | 为列表中的某个容器定义名称 |
| spec.containers[].image | String | 为列表中的某个容器定义需要的镜像名称 |
| spec.containers[].imagePullPolicy | string | 定义镜像拉取策略,有 Always、Never、IfNotPresent 三个值可选<br /> - Always(默认):意思是每次都尝试重新拉取镜像<br /> - Never:表示仅适用本地镜像<br /> - IfNotPresent:如果本地有镜像就使用本地镜像,没有就拉取在线镜像。 |
| spec.containers[].command[] | 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 | 设置存储卷路径的读写模式,ture 或者 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 参数 |
| 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,容器启动的初始化可用数量 |
| spec.restartPolicy | string | 定义 pod 的重启策略,可选值为 Always、OnFailure、Never,默认值为 Always。<br /> - Always:pod 一旦终止运行,则无论容器是如何终止的,kubelet 服务都将重启它。<br /> - OnFailure:只有 pod 以非零退出码终止时,kubelet 才会重启该容器。如果容器正常结束(退出码为0),则 kubectl 将不会重启它。<br /> - Never:Pod 终止后,kubelet 将退出码报告给 master,不会重启该 pod |
| spec.nodeSelector | Object | 定义 Node 的 label 过滤标签,以 key:value 格式指定 |
| spec.imagePullSecrets | Object | 定义 pull 镜像时使用 secret 名称,以 name:secretkey 格式指定 |
| spec.hostNetwork | Boolean | 定义是否使用主机网络模式,默认值为 false。设置 true 表示使用宿主机网络,不使用 docker 网桥,同时设置了 true将无法在同一台宿主机上启动第二个副本 |

写一个pod的yaml文件(例子

[root@master pods]# cat nginx-demo.yaml
apiVersion: v1 #api文档版本
kind: Pod #资源对象类型,也可以配置为像Development,StatuefulSet这一类的对象
metadata: # Pod 相关的元数据,用于描述pod的数据
name: nginx-demo #Pod 的名称
labels: #定义pod的标签
type: app # 自定义label标签,名字为type,值为
test: 1.0.0 # 自定义的pod版本号
namespace: 'default' #命名空间的配置
spec: #期望对一个pod按照这里面的描述进行创建
containers: # 对于pod中的容器的描述
- name: nginx # 容器的名称
image: nginx:1.7.9 # 指定容器的镜像
imagePullPolicy: IfNotPresent # 镜像拉取策略,指定如果本地有就用本地的,如果没
#有就拉取远程的
command: #指定容器启动时执行的命令
- nginx
- -g
- 'daemon off;' # nginx -g 'daemon off;'
workingDir: /use/share/nginx/html # 定义进入容器中默认进去的目录
ports:
- name: http # 端口名称
containerPort: 80 #描述容器内要暴露什么端口
protocol: TCP # 描述该端口是基于哪种协议通信的
env: # 环境变量
- name: JVM_OPTS # 环境变量名称
value: '-Xms128m -Xmx128m' # 环境变量的值
resources:
requests: # 最少需要多少资源
cpu: 100m # 限制cpu最多使用0.1个核心
memory: 128Mi # 限制内存最多使用128兆
limits: #最多可以用多少资源
cpu: 200m #限制cpu最多使用0.2个核心
memory: 256Mi # cpu最多使用 256兆
restartPolicy: OnFailure # 重启策略,只有失败的情况才会重启

k8s——pod的yaml文件的更多相关文章

  1. kubectl cp 从k8s pod 中 拷贝 文件到本地

    请查看官方的说明 kubectl cp --help 官方说使用cp , pod里需要有tar命令 从k8s pod 中 拷贝 文件到本地 这是我使用的命令 kubectl exec redis-6c ...

  2. k8s 执行 ingress yaml 文件报错: error when creating "ingress-myapp.yaml": Internal error occurred: failed calling webhook

    k8s 执行 ingress yaml 文件报错:错误如下: [root@k8s-master01 baremetal]# kubectl apply -f ingress-test.yaml Err ...

  3. k8s中pod的yaml文件全面解读

    apiVersion: v1 #必选,版本号,例如v1,版本号必须可以用 kubectl api-versions 查询到 . kind: Pod #必选,Pod metadata: #必选,元数据 ...

  4. K8s创建pod yaml文件详解

    kubernetes创建pod的yaml文件,参数说明 apiVersion: v1 #指定api版本,此值必须在kubectl apiversion中 kind: Pod #指定创建资源的角色/类型 ...

  5. [K8s]无yaml文件重启Pod

    在没有pod 的yaml文件时,强制重启某个pod kubectl get pod PODNAME -n NAMESPACE -o yaml | kubectl replace --force -f ...

  6. [置顶] kubernetes创建资源yaml文件例子--pod

    kubernetes创建pod的yaml文件,参数说明 apiVersion: v1 #指定api版本,此值必须在kubectl apiversion中 kind: Pod #指定创建资源的角色/类型 ...

  7. Kubernetes K8S之通过yaml文件创建Pod与Pod常用字段详解

    YAML语法规范:在kubernetes k8s中如何通过yaml文件创建pod,以及pod常用字段详解 YAML 语法规范 K8S 里所有的资源或者配置都可以用 yaml 或 Json 定义.YAM ...

  8. Kubernetes之YAML文件

    一.YAML 基础 YAML是专门用来写配置文件的语言,非常简洁和强大,使用比json更方便.它实质上是一种通用的数据串行化格式.后文会说明定义YAML文件创建Pod和创建Deployment. YA ...

  9. 入门Kubernetes - YAML文件

    前言 前篇文章中简单了解到如何把.Net Core 程序部署到k8s中,过程中使用了多个*.yaml文件,那么这些文件的格式及含义.语法是如何的呢? 接下来,进一步了解学习 一.YAML介绍: 1.简 ...

  10. [docker]Kubernetes的yaml文件

    yaml是一种专门用来写配置的语言,简洁强大 它的规则: 1.大小写敏感 2.使用缩进表示层级关系,但不支持tab缩进,只支持空格 3.缩进的数量不重要但至少一个空格,只要相同层级使用相同数量的空格即 ...

随机推荐

  1. 给蚂蚁金服 antv 提个 PR, 以为是改个错别字, 未曾想背后的原因竟如此复杂!

    前言 什么? 你不了解G2Plot? 没关系, 今天咱们要分享的内容和G2Plot的关系, 就像雷锋和雷峰塔的关系. 因此, 不必担心听不懂. 我一直觉得, 如果我写的文章有人看不懂, 那一定是我写的 ...

  2. LORS:腾讯提出低秩残差结构,瘦身模型不掉点 | CVPR 2024

    深度学习模型通常堆叠大量结构和功能相同的结构,虽然有效,但会导致参数数量大幅增加,给实际应用带来了挑战.为了缓解这个问题,LORS(低秩残差结构)允许堆叠模块共享大部分参数,每个模块仅需要少量的唯一参 ...

  3. 力扣554(java&python)-砖墙(中等)

    题目: 你的面前有一堵矩形的.由 n 行砖块组成的砖墙.这些砖块高度相同(也就是一个单位高)但是宽度不同.每一行砖块的宽度之和相等. 你现在要画一条 自顶向下 的.穿过 最少 砖块的垂线.如果你画的线 ...

  4. 面试官:在原生input上面使用v-model和组件上面使用有什么区别?

    前言 还是上一篇面试官:来说说vue3是怎么处理内置的v-for.v-model等指令? 文章的那个粉丝,面试官接着问了他另外一个v-model的问题. 面试官:vue3的v-model都用过吧,来讲 ...

  5. 在线工具的 UI 变迁

    V1. Ref:https://www.cnblogs.com/farwish/p/16823474.html

  6. [Caddy2] Caddyfile 使用其它 DNS provider

    安装 caddy 的 dns provider 模块. https://github.com/caddy-dns/cloudflare 如果是在 Docker 中 build 模块按文档进行,通过 c ...

  7. WPF 更改 DrawingVisual 的 RenderOpen 用到的对象的内容将持续影响渲染效果

    在 WPF 里面,可以通过 DrawingVisual 来进行使用底层的绘制方法,此方法需要调用 DrawingVisual 的 RenderOpen 拿到 DrawingContext 类型的对象, ...

  8. 云原生最佳实践系列 6:MSE 云原生网关使用 JWT 进行认证鉴权

    01 方案概述 MSE 网关可以为后端服务提供转发路由能力,在此基础上,一些敏感的后端服务需要特定认证授权的用户才能够访问.MSE 云原生网关致力于提供给云上用户体系化的安全解决方案,其中 JWT 认 ...

  9. maven的环境配置

    将maven压缩包解压到一个空文件夹中.比如:D盘中的maven文件夹(D:\maven\apache-maven-3.6.3) 注意:路径中不要包含中文.空格.数字等字符 2.新建变量名: MAVE ...

  10. blazor优雅的方式导入组件相关的js脚本

    基本的组件导入方式为: 1 await JsRuntime.InvokeVoidAsync("import", $"XXXXX.js"); 优雅的组件导入方式: ...