12.24 k8s yaml文件类型和介绍

k8s yaml文件类型和介绍

官方文档:https://kubernetes.p2hp.com/docs/tasks/configure-pod-container/assign-memory-resource/

这个是官方文档,可以根据需求和拓展进行了解

yaml 复制代码
apiVersion: v1
kind: Pod
metadata:
  name: memory-demo
  namespace: mem-example
spec:
  containers:
  - name: memory-demo-ctr
    image: polinux/stress
    resources:
      requests:
        memory: "100Mi"
      limits:
        memory: "200Mi"
    command: ["stress"]
    args: ["--vm", "1", "--vm-bytes", "150M", "--vm-hang", "1"]

这是自己在网上找的大佬的文档

参数名 类别 字段说明
apiVersion String k8s API的版本,可以用kubectl api versions的命令查询
kind String yam 文件定义的资源类型和角色
metadata Object 元数据对象,下面是他的属性
metadata.name String 元数据对象的名字,比如说pod的名称
Spec Object 详细定义对象
spec.containers\[\] list 定义Spec对象的容器列表
spec.containers\[\].name String 为列表中的某个容器定义名称
spec.containers\[\].image String 为列表中的某个容器定义需要的镜像名称
spec.containers\[\].imagePullPolicy String 定义镜像的拉取策略,有Always、Never、lfNotPresent - Always(默认):意思是每次都尝试重新拉取镜像 - Nerver:表示仅使用本地镜像 -lfNotpresent:如果本地有镜像就使用本地镜像,如果没有就在线拉取镜像
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\[\].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\[\].resourtces\[\].limits\[\].cpu string 指定cpu的限制,单位为Core数,将用于docker run-cpu-shares参数
spec.containers\[\].resourtces\[\].limits\[\].memory string 指定内存的限制,单位为MIB,GiB
spec.containers\[\].resourtces\[\].requests Object 指定容器启动和调度时的限制设置
spec.containers\[\].resourtces\[\].requests\[\].cpu string CPU请求,单位为core数,容器启动时初始化可用数量
spec.containers\[\].resourtces\[\].requests\[\].memory string 内存请求,单位为MiB,GiB,容器启动的初始化可用数量
spec.restartPolicy string 定义pod的重启策略,可选值为Always、ONfailure、Never,默认值为Alays -Alays:pod一旦终止运行,则无论容器是如何终止的,kubelet服务都将重启他 -ONfailure:只有pod以非零退出码终止时,kubelet才会重启该容器,如果容器正常结束(退出码为0),则不会重启该容器 -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将无法再同一台宿主机上启动第二个副本
yaml 复制代码
apiVersion: v1  # API 版本
kind: Pod  # 资源对象类型,这里是 Pod
metadata:
  name: nginx-demo  # Pod 的名称
  labels:  # Pod 的标签
    type: app  # 自定义 label 标签,名字为 type,值为 app
    version: 1.0.0  # 自定义 label 标签,描述 pod 版本号
  namespace: 'default'  # 命名空间
spec:
  containers:  # Pod 中的容器描述
  - name: nginx  # 容器的名称
    image: nginx:1.7.9  # 使用的 Docker 镜像及版本
    imagePullPolicy: IfNotPresent  # 镜像拉取策略,表示本地没有时才拉取
    command:  # 容器启动命令
    - nginx
    - '-g'
    - 'daemon off;'  # 使 nginx 在前台运行,避免容器退出
    workingDir: /usr/share/nginx/html  # 容器的工作目录
    ports:  # 容器暴露的端口
    - name: http  # 端口名称
      containerPort: 80  # 容器内暴露的端口
      protocol: TCP  # 使用的协议
    env:  # 容器的环境变量
    - name: JVM_OPTS
      value: '-Xms128m -Xmx128m'  # 设置 JVM 启动参数
    resources:  # 资源请求和限制
      requests:  # 最少需要多少资源
        cpu: 100m  # 请求最少 CPU 0.1 核
        memory: 128Mi  # 请求最少内存 128Mi
      limits:  # 最大可使用资源
        cpu: 200m  # 限制最多 CPU 0.2 核
        memory: 256Mi  # 限制最多内存 256Mi
  restartPolicy: OnFailure  # 重启策略,仅在失败时重启

然后运行这个yaml文件让其进行构建即可

yaml 复制代码
kubectl apply -f 文件名
相关推荐
liux352814 分钟前
K8s存储卷全解析:PV/PVC/StorageClass 关系
kubernetes
江华森3 小时前
从零搭建 Kubernetes 集群并部署 Kuboard v3 管理面板 —— 国内环境完整实战教程
容器·kubernetes
友莘居士4 小时前
KingbaseES Docker速查表
运维·docker·容器
小肥君5 小时前
docker镜像配置
运维·docker·容器
某林2127 小时前
Isaac Lab (v2.3.2) Docker 本地化部署与底层排障全解析
运维·docker·容器·架构·iassc
iDao技术魔方9 小时前
WSL 配 GPU 用 Docker 的折腾指南(2026 年版)
运维·docker·容器
步步为营DotNet9 小时前
.NET 11 中 Native AOT 在云原生场景下的深度剖析与实践
云原生·.net
跳动的世界线9 小时前
WSL 2 + Docker 本地全栈开发环境配置指南
运维·docker·容器
xiaogg367810 小时前
Rancher2.0搭建kubernetes(K8S)集群
云原生·容器·kubernetes